-var pveapi = [
+const apiSchema = [
{
- "leaf" : 0,
- "text" : "cluster",
"children" : [
{
- "leaf" : 0,
- "text" : "firewall",
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Mark replication job for removal.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "force" : {
+ "default" : 0,
+ "description" : "Will remove the jobconfig entry, but will not cleanup.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "id" : {
+ "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
+ "format" : "pve-replication-job-id",
+ "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
+ "type" : "string"
+ },
+ "keep" : {
+ "default" : 0,
+ "description" : "Keep replicated data at target (do not remove).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read replication job configuration.",
+ "method" : "GET",
+ "name" : "read",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
+ "format" : "pve-replication-job-id",
+ "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
+ "user" : "all"
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update replication job configuration.",
+ "method" : "PUT",
+ "name" : "update",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disable" : {
+ "description" : "Flag to disable/deactivate the entry.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "id" : {
+ "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
+ "format" : "pve-replication-job-id",
+ "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
+ "type" : "string"
+ },
+ "rate" : {
+ "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (1 - N)"
+ },
+ "remove_job" : {
+ "description" : "Mark the replication job for removal. The job will remove all local replication snapshots. When set to 'full', it also tries to remove replicated volumes on the target. The job then removes itself from the configuration file.",
+ "enum" : [
+ "local",
+ "full"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "schedule" : {
+ "default" : "*/15",
+ "description" : "Storage replication schedule. The format is a subset of `systemd` calendar events.",
+ "format" : "pve-calendar-event",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "source" : {
+ "description" : "For internal use, to detect if the guest was stolen.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/replication/{id}",
+ "text" : "{id}"
+ }
+ ],
"info" : {
"GET" : {
- "name" : "index",
+ "allowtoken" : 1,
+ "description" : "List replication jobs.",
"method" : "GET",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0
},
+ "permissions" : {
+ "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
+ "user" : "all"
+ },
"returns" : {
"items" : {
- "type" : "object",
- "properties" : {}
+ "properties" : {},
+ "type" : "object"
},
- "type" : "array",
"links" : [
{
- "href" : "{name}",
+ "href" : "{id}",
"rel" : "child"
}
- ]
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a new replication job",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disable" : {
+ "description" : "Flag to disable/deactivate the entry.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "id" : {
+ "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
+ "format" : "pve-replication-job-id",
+ "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
+ "type" : "string"
+ },
+ "rate" : {
+ "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (1 - N)"
+ },
+ "remove_job" : {
+ "description" : "Mark the replication job for removal. The job will remove all local replication snapshots. When set to 'full', it also tries to remove replicated volumes on the target. The job then removes itself from the configuration file.",
+ "enum" : [
+ "local",
+ "full"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "schedule" : {
+ "default" : "*/15",
+ "description" : "Storage replication schedule. The format is a subset of `systemd` calendar events.",
+ "format" : "pve-calendar-event",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "source" : {
+ "description" : "For internal use, to detect if the guest was stolen.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "target" : {
+ "description" : "Target node.",
+ "format" : "pve-node",
+ "optional" : 0,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Section type.",
+ "enum" : [
+ "local"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
},
- "description" : "Directory index.",
"permissions" : {
- "user" : "all"
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
+ "leaf" : 0,
+ "path" : "/cluster/replication",
+ "text" : "replication"
+ },
+ {
"children" : [
{
- "leaf" : 0,
- "text" : "groups",
- "path" : "/cluster/firewall/groups",
"children" : [
{
- "children" : [
- {
- "leaf" : 1,
- "text" : "{pos}",
- "info" : {
- "PUT" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "parameters" : {
- "properties" : {
- "iface" : {
- "maxLength" : 20,
- "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
- "optional" : 1,
- "minLength" : 2,
- "format" : "pve-iface",
- "type" : "string"
- },
- "digest" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40
- },
- "source" : {
- "optional" : 1,
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "format" : "pve-fw-addr-spec",
- "type" : "string"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "action" : {
- "type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "maxLength" : 20,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "optional" : 1
- },
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "optional" : 1,
- "type" : "integer",
- "minimum" : 0
- },
- "dest" : {
- "format" : "pve-fw-addr-spec",
- "type" : "string",
- "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "optional" : 1
- },
- "type" : {
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "optional" : 1,
- "type" : "string"
- },
- "proto" : {
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
- "optional" : 1,
- "format" : "pve-fw-protocol-spec",
- "type" : "string"
- },
- "enable" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1
- },
- "moveto" : {
- "optional" : 1,
- "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
- "minimum" : 0,
- "type" : "integer"
- },
- "dport" : {
- "format" : "pve-fw-dport-spec",
- "type" : "string",
- "optional" : 1,
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges."
- },
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "optional" : 1,
- "format" : "pve-configid-list",
- "type" : "string"
- },
- "sport" : {
- "format" : "pve-fw-sport-spec",
- "type" : "string",
- "optional" : 1,
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges."
- },
- "group" : {
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 20,
- "description" : "Security Group name.",
- "type" : "string"
- },
- "macro" : {
- "optional" : 1,
- "maxLength" : 128,
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : null,
- "description" : "Modify rule data.",
- "returns" : {
- "type" : "null"
- },
- "name" : "update_rule",
- "method" : "PUT"
- },
- "DELETE" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "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"
- ]
- ]
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Remove Metric server.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "path" : "/cluster/firewall/groups/{group}/{pos}"
- }
- ],
- "info" : {
- "GET" : {
"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" : {
+ "allowtoken" : 1,
+ "description" : "Read metric server configuration.",
+ "method" : "GET",
+ "name" : "read",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "group" : {
- "description" : "Security Group name.",
- "maxLength" : 20,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
+ "id" : {
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "protected" : 1,
- "description" : "Delete security group.",
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
+ },
+ "returns" : {
+ "type" : "object"
}
},
"POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a new external metric server config",
+ "method" : "POST",
+ "name" : "create",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "group" : {
+ "api-path-prefix" : {
+ "description" : "An API path prefix inserted between '<host>:<port>/' and '/api2/'. Can be useful if the InfluxDB service runs behind a reverse proxy.",
+ "optional" : 1,
"type" : "string",
- "maxLength" : 20,
- "description" : "Security Group name.",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+"
+ "typetext" : "<string>"
},
- "comment" : {
+ "bucket" : {
+ "description" : "The InfluxDB bucket/db. Only necessary when using the http v2 api.",
+ "optional" : 1,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
- "action" : {
+ "disable" : {
+ "description" : "Flag to disable the plugin.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "id" : {
+ "description" : "The ID of the entry.",
+ "format" : "pve-configid",
"type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "optional" : 0,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "maxLength" : 20
+ "typetext" : "<string>"
},
- "pos" : {
- "description" : "Update rule at position <pos>.",
+ "influxdbproto" : {
+ "default" : "udp",
+ "enum" : [
+ "udp",
+ "http",
+ "https"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "max-body-size" : {
+ "default" : 25000000,
+ "description" : "InfluxDB max-body-size in bytes. Requests are batched up to this size.",
+ "minimum" : 1,
"optional" : 1,
"type" : "integer",
- "minimum" : 0
+ "typetext" : "<integer> (1 - N)"
},
- "dest" : {
- "format" : "pve-fw-addr-spec",
- "type" : "string",
+ "mtu" : {
+ "default" : 1500,
+ "description" : "MTU for metrics transmission over UDP",
+ "maximum" : 65536,
+ "minimum" : 512,
"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" : "integer",
+ "typetext" : "<integer> (512 - 65536)"
},
- "macro" : {
+ "organization" : {
+ "description" : "The InfluxDB organization. Only necessary when using the http v2 api. Has no meaning when using v2 compatibility api.",
+ "optional" : 1,
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "path" : {
+ "description" : "root graphite path (ex: proxmox.mycluster.mykey)",
+ "format" : "graphite-path",
"optional" : 1,
- "maxLength" : 128
+ "type" : "string",
+ "typetext" : "<string>"
},
- "type" : {
+ "port" : {
+ "description" : "server network port",
+ "maximum" : 65536,
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 65536)"
+ },
+ "proto" : {
+ "description" : "Protocol to send graphite data. TCP or UDP (default)",
"enum" : [
- "in",
- "out",
- "group"
+ "udp",
+ "tcp"
],
- "optional" : 0,
+ "optional" : 1,
"type" : "string"
},
- "proto" : {
+ "server" : {
+ "description" : "server dns name or IP address",
+ "format" : "address",
"type" : "string",
- "format" : "pve-fw-protocol-spec",
+ "typetext" : "<string>"
+ },
+ "timeout" : {
+ "default" : 1,
+ "description" : "graphite TCP socket timeout (default=1)",
+ "minimum" : 0,
"optional" : 1,
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'."
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "iface" : {
- "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.",
+ "token" : {
+ "description" : "The InfluxDB access token. Only necessary when using the http v2 api. If the v2 compatibility api is used, use 'user:password' instead.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Plugin type.",
+ "enum" : [
+ "graphite",
+ "influxdb"
+ ],
+ "format" : "pve-configid",
+ "type" : "string"
+ },
+ "verify-certificate" : {
+ "default" : 1,
+ "description" : "Set to 0 to disable certificate verification for https endpoints.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update metric server configuration.",
+ "method" : "PUT",
+ "name" : "update",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "api-path-prefix" : {
+ "description" : "An API path prefix inserted between '<host>:<port>/' and '/api2/'. Can be useful if the InfluxDB service runs behind a reverse proxy.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "bucket" : {
+ "description" : "The InfluxDB bucket/db. Only necessary when using the http v2 api.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
"optional" : 1,
"type" : "string",
- "format" : "pve-iface"
+ "typetext" : "<string>"
},
"digest" : {
"description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
"maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disable" : {
+ "description" : "Flag to disable the plugin.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "id" : {
+ "description" : "The ID of the entry.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "influxdbproto" : {
+ "default" : "udp",
+ "enum" : [
+ "udp",
+ "http",
+ "https"
+ ],
+ "optional" : 1,
"type" : "string"
},
- "enable" : {
+ "max-body-size" : {
+ "default" : 25000000,
+ "description" : "InfluxDB max-body-size in bytes. Requests are batched up to this size.",
+ "minimum" : 1,
"optional" : 1,
- "minimum" : 0,
- "type" : "integer"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "dport" : {
- "format" : "pve-fw-dport-spec",
+ "mtu" : {
+ "default" : 1500,
+ "description" : "MTU for metrics transmission over UDP",
+ "maximum" : 65536,
+ "minimum" : 512,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (512 - 65536)"
+ },
+ "organization" : {
+ "description" : "The InfluxDB organization. Only necessary when using the http v2 api. Has no meaning when using v2 compatibility api.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "path" : {
+ "description" : "root graphite path (ex: proxmox.mycluster.mykey)",
+ "format" : "graphite-path",
+ "optional" : 1,
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "port" : {
+ "description" : "server network port",
+ "maximum" : 65536,
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 65536)"
+ },
+ "proto" : {
+ "description" : "Protocol to send graphite data. TCP or UDP (default)",
+ "enum" : [
+ "udp",
+ "tcp"
+ ],
"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" : {
+ "server" : {
+ "description" : "server dns name or IP address",
+ "format" : "address",
"type" : "string",
- "format" : "pve-fw-addr-spec",
+ "typetext" : "<string>"
+ },
+ "timeout" : {
+ "default" : 1,
+ "description" : "graphite TCP socket timeout (default=1)",
+ "minimum" : 0,
"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" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "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.",
+ "token" : {
+ "description" : "The InfluxDB access token. Only necessary when using the http v2 api. If the v2 compatibility api is used, use 'user:password' instead.",
"optional" : 1,
"type" : "string",
- "format" : "pve-fw-sport-spec"
+ "typetext" : "<string>"
+ },
+ "verify-certificate" : {
+ "default" : 1,
+ "description" : "Set to 0 to disable certificate verification for https endpoints.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
- }
+ },
+ "type" : "object"
},
- "proxyto" : null,
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
- "method" : "POST",
- "name" : "create_rule",
- "description" : "Create new rule."
+ }
}
},
- "path" : "/cluster/firewall/groups/{group}",
- "leaf" : 0,
- "text" : "{group}"
+ "leaf" : 1,
+ "path" : "/cluster/metrics/server/{id}",
+ "text" : "{id}"
}
],
"info" : {
- "POST" : {
- "protected" : 1,
- "description" : "Create new security group.",
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List configured metric servers.",
+ "method" : "GET",
+ "name" : "server_index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
},
- "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
+ "disable" : {
+ "description" : "Flag to disable the plugin.",
+ "type" : "boolean"
},
- "comment" : {
- "optional" : 1,
+ "id" : {
+ "description" : "The ID of the entry.",
"type" : "string"
},
- "group" : {
- "type" : "string",
- "maxLength" : 20,
- "description" : "Security Group name.",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+"
+ "port" : {
+ "description" : "Server network port",
+ "type" : "integer"
+ },
+ "server" : {
+ "description" : "Server dns name or IP address",
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "Plugin type.",
+ "type" : "string"
}
- }
+ },
+ "type" : "object"
},
- "type" : "array",
"links" : [
{
- "rel" : "child",
- "href" : "{group}"
+ "href" : "{id}",
+ "rel" : "child"
}
- ]
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "name" : "list_security_groups",
- "method" : "GET",
- "description" : "List security groups.",
- "permissions" : {
- "user" : "all"
+ ],
+ "type" : "array"
}
}
+ },
+ "leaf" : 0,
+ "path" : "/cluster/metrics/server",
+ "text" : "server"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Metrics 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/metrics",
+ "text" : "metrics"
+ },
+ {
+ "children" : [
{
"info" : {
"GET" : {
+ "allowtoken" : 1,
+ "description" : "Return the version of the cluster join API available on this node.",
+ "method" : "GET",
+ "name" : "join_api_version",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "List rules.",
- "method" : "GET",
- "name" : "get_rules",
"returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{pos}"
- }
- ],
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- }
- }
- },
- "proxyto" : null,
- "parameters" : {
- "additionalProperties" : 0
+ "description" : "Cluster Join API version, currently 1",
+ "minimum" : 0,
+ "type" : "integer"
}
- },
- "POST" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/config/apiversion",
+ "text" : "apiversion"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Removes a node from the cluster configuration.",
+ "method" : "DELETE",
+ "name" : "delnode",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Adds a node to the cluster configuration. This call is for internal use.",
+ "method" : "POST",
+ "name" : "addnode",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "apiversion" : {
+ "description" : "The JOIN_API_VERSION of the new node.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "force" : {
+ "description" : "Do not throw error if node already exists.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "link[n]" : {
+ "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
+ "format" : {
+ "address" : {
+ "default_key" : 1,
+ "description" : "Hostname (or IP) of this corosync link address.",
+ "format" : "address",
+ "format_description" : "IP",
+ "type" : "string"
+ },
+ "priority" : {
+ "default" : 0,
+ "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
+ "maximum" : 255,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[address=]<IP> [,priority=<integer>]"
+ },
+ "new_node_ip" : {
+ "description" : "IP Address of node to add. Used as fallback if no links are given.",
+ "format" : "ip",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nodeid" : {
+ "description" : "Node id for this node.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "votes" : {
+ "description" : "Number of votes for this node",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ }
+ }
+ },
+ "protected" : 1,
+ "returns" : {
+ "properties" : {
+ "corosync_authkey" : {
+ "type" : "string"
+ },
+ "corosync_conf" : {
+ "type" : "string"
+ },
+ "warnings" : {
+ "items" : {
+ "type" : "string"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/config/nodes/{node}",
+ "text" : "{node}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Corosync node list.",
+ "method" : "GET",
+ "name" : "nodes",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
"/",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
},
- "proxyto" : null,
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "node" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{node}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/config/nodes",
+ "text" : "nodes"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get information needed to join this cluster over the connected node.",
+ "method" : "GET",
+ "name" : "join_info",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "macro" : {
+ "node" : {
+ "default" : "current connected node",
+ "description" : "The node for which the joinee gets the nodeinfo. ",
+ "format" : "pve-node",
"optional" : 1,
- "maxLength" : 128,
- "type" : "string"
- },
- "type" : {
- "optional" : 0,
- "enum" : [
- "in",
- "out",
- "group"
- ],
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "config_digest" : {
"type" : "string"
},
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
- "description" : "Update rule at position <pos>.",
- "optional" : 1
+ "nodelist" : {
+ "items" : {
+ "additionalProperties" : 1,
+ "properties" : {
+ "name" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "nodeid" : {
+ "description" : "Node id for this node.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "pve_addr" : {
+ "format" : "ip",
+ "type" : "string"
+ },
+ "pve_fp" : {
+ "description" : "Certificate SHA 256 fingerprint.",
+ "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
+ "type" : "string"
+ },
+ "quorum_votes" : {
+ "minimum" : 0,
+ "type" : "integer"
+ },
+ "ring0_addr" : {
+ "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
+ "format" : {
+ "address" : {
+ "default_key" : 1,
+ "description" : "Hostname (or IP) of this corosync link address.",
+ "format" : "address",
+ "format_description" : "IP",
+ "type" : "string"
+ },
+ "priority" : {
+ "default" : 0,
+ "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
+ "maximum" : 255,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
},
- "comment" : {
- "optional" : 1,
+ "preferred_node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string"
},
- "action" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "optional" : 0,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "maxLength" : 20
+ "totem" : {
+ "type" : "object"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Joins this node into an existing cluster. If no links are given, default to IP resolved by node's hostname on single link (fallback fails for clusters with multiple links).",
+ "method" : "POST",
+ "name" : "join",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "fingerprint" : {
+ "description" : "Certificate SHA 256 fingerprint.",
+ "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
+ "type" : "string"
},
- "dest" : {
+ "force" : {
+ "description" : "Do not throw error if node already exists.",
"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"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "source" : {
- "format" : "pve-fw-addr-spec",
+ "hostname" : {
+ "description" : "Hostname (or IP) of an existing cluster member.",
"type" : "string",
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "optional" : 1
+ "typetext" : "<string>"
},
- "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.",
+ "link[n]" : {
+ "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
+ "format" : {
+ "address" : {
+ "default_key" : 1,
+ "description" : "Hostname (or IP) of this corosync link address.",
+ "format" : "address",
+ "format_description" : "IP",
+ "type" : "string"
+ },
+ "priority" : {
+ "default" : 0,
+ "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
+ "maximum" : 255,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ }
+ },
"optional" : 1,
"type" : "string",
- "format" : "pve-fw-sport-spec"
+ "typetext" : "[address=]<IP> [,priority=<integer>]"
},
- "digest" : {
- "type" : "string",
+ "nodeid" : {
+ "description" : "Node id for this node.",
+ "minimum" : 1,
"optional" : 1,
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "iface" : {
+ "password" : {
+ "description" : "Superuser (root) password of peer node.",
+ "maxLength" : 128,
"type" : "string",
- "format" : "pve-iface",
- "minLength" : 2,
- "maxLength" : 20,
- "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
- "optional" : 1
+ "typetext" : "<string>"
},
- "proto" : {
+ "votes" : {
+ "description" : "Number of votes for this node",
+ "minimum" : 0,
"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
+ "typetext" : "<integer> (0 - N)"
}
}
},
- "description" : "Create new rule.",
+ "protected" : 1,
"returns" : {
- "type" : "null"
- },
- "name" : "create_rule",
- "method" : "POST"
- }
- },
- "path" : "/cluster/firewall/rules",
- "children" : [
- {
- "leaf" : 1,
- "text" : "{pos}",
- "info" : {
- "PUT" : {
- "parameters" : {
- "properties" : {
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string"
- },
- "iface" : {
- "optional" : 1,
- "maxLength" : 20,
- "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
- "minLength" : 2,
- "format" : "pve-iface",
- "type" : "string"
- },
- "proto" : {
- "optional" : 1,
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
- "type" : "string",
- "format" : "pve-fw-protocol-spec"
- },
- "dport" : {
- "optional" : 1,
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "format" : "pve-fw-dport-spec",
- "type" : "string"
- },
- "moveto" : {
- "type" : "integer",
- "minimum" : 0,
- "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
- "optional" : 1
- },
- "enable" : {
- "optional" : 1,
- "type" : "integer",
- "minimum" : 0
- },
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-configid-list"
- },
- "source" : {
- "type" : "string",
- "format" : "pve-fw-addr-spec",
- "optional" : 1,
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists."
- },
- "sport" : {
- "format" : "pve-fw-sport-spec",
- "type" : "string",
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "optional" : 1
- },
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "optional" : 1,
- "minimum" : 0,
- "type" : "integer"
- },
- "action" : {
- "type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "maxLength" : 20,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "optional" : 1
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "dest" : {
- "format" : "pve-fw-addr-spec",
- "type" : "string",
- "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "optional" : 1
- },
- "macro" : {
- "type" : "string",
- "optional" : 1,
- "maxLength" : 128
- },
- "type" : {
- "type" : "string",
- "optional" : 1,
- "enum" : [
- "in",
- "out",
- "group"
- ]
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : null,
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "returns" : {
- "type" : "null"
- },
- "method" : "PUT",
- "name" : "update_rule",
- "description" : "Modify rule data."
- },
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "description" : "Get single rule data.",
- "parameters" : {
- "properties" : {
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1,
- "description" : "Update rule at position <pos>."
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : null,
- "returns" : {
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- },
- "type" : "object"
- },
- "method" : "GET",
- "name" : "get_rule"
- },
- "DELETE" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "optional" : 1,
- "type" : "integer",
- "minimum" : 0
- },
- "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"
- }
- }
- },
- "proxyto" : null,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "returns" : {
- "type" : "null"
- },
- "name" : "delete_rule",
- "method" : "DELETE",
- "description" : "Delete rule."
- }
- },
- "path" : "/cluster/firewall/rules/{pos}"
+ "type" : "string"
+ }
}
- ],
- "leaf" : 0,
- "text" : "rules"
+ },
+ "leaf" : 1,
+ "path" : "/cluster/config/join",
+ "text" : "join"
},
{
- "leaf" : 0,
- "text" : "ipset",
"info" : {
- "POST" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get corosync totem protocol settings.",
+ "method" : "GET",
+ "name" : "totem",
"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"
+ "Sys.Audit"
]
]
},
- "protected" : 1
- },
+ "returns" : {
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/config/totem",
+ "text" : "totem"
+ },
+ {
+ "info" : {
"GET" : {
- "description" : "List IPSets",
+ "allowtoken" : 1,
+ "description" : "Get QDevice status",
+ "method" : "GET",
+ "name" : "status",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
"permissions" : {
"check" : [
"perm",
]
},
"returns" : {
- "items" : {
- "properties" : {
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "digest" : {
- "optional" : 0,
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "type" : "string"
- },
- "name" : {
- "type" : "string",
- "maxLength" : 64,
- "description" : "IP set name.",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+"
- }
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/config/qdevice",
+ "text" : "qdevice"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Generate new cluster configuration. If no links given, default to local IP address as link0.",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "clustername" : {
+ "description" : "The name of the cluster.",
+ "format" : "pve-node",
+ "maxLength" : 15,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "link[n]" : {
+ "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
+ "format" : {
+ "address" : {
+ "default_key" : 1,
+ "description" : "Hostname (or IP) of this corosync link address.",
+ "format" : "address",
+ "format_description" : "IP",
+ "type" : "string"
},
- "type" : "object"
- },
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{name}"
+ "priority" : {
+ "default" : 0,
+ "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
+ "maximum" : 255,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
}
- ]
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[address=]<IP> [,priority=<integer>]"
},
- "parameters" : {
- "additionalProperties" : 0
+ "nodeid" : {
+ "description" : "Node id for this node.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "name" : "ipset_index",
- "method" : "GET"
+ "votes" : {
+ "description" : "Number of votes for this node.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
}
},
+ "protected" : 1,
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/config",
+ "text" : "config"
+ },
+ {
+ "children" : [
+ {
"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"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "cidr" : {
- "format" : "IPorCIDRorAlias",
- "type" : "string",
- "description" : "Network/IP specification in CIDR format."
- },
- "name" : {
- "type" : "string",
- "description" : "IP set name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2
- }
- }
- }
- },
"DELETE" : {
- "returns" : {
- "type" : "null"
- },
+ "allowtoken" : 1,
+ "description" : "Delete rule.",
+ "method" : "DELETE",
+ "name" : "delete_rule",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "cidr" : {
- "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"
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
"minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "DELETE",
- "name" : "remove_ip",
- "protected" : 1,
- "description" : "Remove IP or Network from IPSet.",
"permissions" : {
"check" : [
"perm",
"Sys.Modify"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
}
},
- "PUT" : {
- "description" : "Update IP or Network settings",
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get single rule data.",
+ "method" : "GET",
+ "name" : "get_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
},
- "protected" : 1,
- "parameters" : {
+ "proxyto" : null,
+ "returns" : {
"properties" : {
- "name" : {
- "type" : "string",
- "maxLength" : 64,
- "description" : "IP set name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2
+ "action" : {
+ "type" : "string"
},
- "cidr" : {
- "type" : "string",
- "format" : "IPorCIDRorAlias",
- "description" : "Network/IP specification in CIDR format."
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
},
- "nomatch" : {
+ "dest" : {
"optional" : 1,
- "type" : "boolean"
+ "type" : "string"
},
- "comment" : {
+ "dport" : {
"optional" : 1,
"type" : "string"
},
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "enable" : {
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "icmp-type" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "iface" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ipversion" : {
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
"optional" : 1,
- "maxLength" : 40,
+ "type" : "string"
+ },
+ "macro" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "pos" : {
+ "type" : "integer"
+ },
+ "proto" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "source" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "sport" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
"type" : "string"
}
},
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
- },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Modify rule data.",
"method" : "PUT",
- "name" : "update_ip"
- }
+ "name" : "update_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "comment" : {
+ "description" : "Descriptive comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dest" : {
+ "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dport" : {
+ "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-dport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "icmp-type" : {
+ "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+ "format" : "pve-fw-icmp-type-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "iface" : {
+ "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "moveto" : {
+ "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "proto" : {
+ "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "format" : "pve-fw-protocol-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "source" : {
+ "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Rule type.",
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ }
},
- "path" : "/cluster/firewall/ipset/{name}/{cidr}",
"leaf" : 1,
- "text" : "{cidr}"
+ "path" : "/cluster/firewall/groups/{group}/{pos}",
+ "text" : "{pos}"
}
],
- "path" : "/cluster/firewall/ipset/{name}",
"info" : {
"DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete security group.",
"method" : "DELETE",
- "name" : "delete_ipset",
+ "name" : "delete_security_group",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
"minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
}
}
},
- "returns" : {
- "type" : "null"
- },
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Delete IPSet",
- "protected" : 1
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
},
"GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "description" : "List IPSet content",
+ "allowtoken" : 1,
+ "description" : "List rules.",
"method" : "GET",
- "name" : "get_ipset",
+ "name" : "get_rules",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "name" : {
- "maxLength" : 64,
- "description" : "IP set name.",
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
"minLength" : 2,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "proxyto" : null,
"returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{cidr}"
- }
- ],
"items" : {
"properties" : {
- "cidr" : {
- "type" : "string"
- },
- "digest" : {
- "type" : "string",
- "maxLength" : 40,
- "optional" : 0,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "nomatch" : {
- "type" : "boolean",
- "optional" : 1
+ "pos" : {
+ "type" : "integer"
}
},
"type" : "object"
},
+ "links" : [
+ {
+ "href" : "{pos}",
+ "rel" : "child"
+ }
+ ],
"type" : "array"
}
},
"POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "description" : "Add IP or Network to IPSet.",
- "protected" : 1,
+ "allowtoken" : 1,
+ "description" : "Create new rule.",
"method" : "POST",
- "name" : "create_ip",
+ "name" : "create_rule",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "name" : {
- "type" : "string",
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
"minLength" : 2,
+ "optional" : 0,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "IP set name.",
- "maxLength" : 64
+ "type" : "string"
},
"comment" : {
+ "description" : "Descriptive comment.",
"optional" : 1,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "nomatch" : {
+ "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",
+ "maxLength" : 512,
"optional" : 1,
- "type" : "boolean"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "format" : "IPorCIDRorAlias",
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dport" : {
+ "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-dport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
- }
- }
- },
- "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" : {
+ },
+ "icmp-type" : {
+ "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+ "format" : "pve-fw-icmp-type-spec",
+ "optional" : 1,
"type" : "string",
+ "typetext" : "<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,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "Alias name.",
- "maxLength" : 64
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "log" : {
+ "description" : "Log level for firewall rule.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
"optional" : 1,
"type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "method" : "DELETE",
- "name" : "remove_alias"
- },
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "description" : "Read alias.",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "name" : {
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "description" : "Alias name.",
+ },
+ "macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "proto" : {
+ "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "format" : "pve-fw-protocol-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "source" : {
+ "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Rule type.",
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 0,
"type" : "string"
}
}
},
- "returns" : {
- "type" : "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"
- }
- }
- },
+ "proxyto" : null,
"returns" : {
"type" : "null"
- },
- "name" : "update_alias",
- "method" : "PUT"
+ }
}
},
- "path" : "/cluster/firewall/aliases/{name}"
+ "leaf" : 0,
+ "path" : "/cluster/firewall/groups/{group}",
+ "text" : "{group}"
}
],
- "path" : "/cluster/firewall/aliases",
"info" : {
"GET" : {
+ "allowtoken" : 1,
+ "description" : "List security groups.",
+ "method" : "GET",
+ "name" : "list_security_groups",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
"permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
+ "user" : "all"
},
- "description" : "List aliases",
- "method" : "GET",
- "name" : "get_aliases",
"returns" : {
- "type" : "array",
"items" : {
"properties" : {
- "name" : {
- "type" : "string"
- },
- "cidr" : {
+ "comment" : {
+ "optional" : 1,
"type" : "string"
},
"digest" : {
- "optional" : 0,
"description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
"maxLength" : 40,
+ "optional" : 0,
"type" : "string"
},
- "comment" : {
- "type" : "string",
- "optional" : 1
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
}
},
"type" : "object"
},
"links" : [
{
- "rel" : "child",
- "href" : "{name}"
+ "href" : "{group}",
+ "rel" : "child"
}
- ]
- },
- "parameters" : {
- "additionalProperties" : 0
+ ],
+ "type" : "array"
}
},
"POST" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "description" : "Create IP or Network Alias.",
- "name" : "create_alias",
+ "allowtoken" : 1,
+ "description" : "Create new security group.",
"method" : "POST",
- "returns" : {
- "type" : "null"
- },
+ "name" : "create_security_group",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"comment" : {
+ "optional" : 1,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
- "cidr" : {
- "format" : "IPorCIDR",
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
"type" : "string",
- "description" : "Network/IP specification in CIDR format."
+ "typetext" : "<string>"
},
- "name" : {
- "description" : "Alias name.",
- "maxLength" : 64,
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "rename" : {
+ "description" : "Rename/update an existing security group. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing group.",
+ "maxLength" : 18,
"minLength" : 2,
+ "optional" : 1,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
}
}
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/firewall/groups",
+ "text" : "groups"
},
{
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "get_options",
- "parameters" : {
- "additionalProperties" : 0
- },
- "returns" : {
- "properties" : {
- "policy_in" : {
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
- "optional" : 1,
- "description" : "Input policy.",
- "type" : "string"
- },
- "enable" : {
- "description" : "Enable or disable the firewall cluster wide.",
- "optional" : 1,
- "minimum" : 0,
- "type" : "integer"
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 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.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ }
+ }
},
- "policy_out" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Output policy.",
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
}
},
- "type" : "object"
- },
- "description" : "Get Firewall options.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- }
- },
- "PUT" : {
- "description" : "Set Firewall options.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "name" : "set_options",
- "method" : "PUT",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "optional" : 1,
- "format" : "pve-configid-list",
- "type" : "string"
- },
- "policy_in" : {
- "description" : "Input policy.",
- "optional" : 1,
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
- "type" : "string"
- },
- "digest" : {
- "type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get single rule data.",
+ "method" : "GET",
+ "name" : "get_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ }
+ }
},
- "policy_out" : {
- "type" : "string",
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
- "description" : "Output policy.",
- "optional" : 1
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
},
- "enable" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1,
- "description" : "Enable or disable the firewall cluster wide."
- }
- }
- },
- "returns" : {
- "type" : "null"
- }
- }
- },
- "path" : "/cluster/firewall/options",
- "leaf" : 1,
- "text" : "options"
- },
- {
- "leaf" : 1,
- "text" : "macros",
- "path" : "/cluster/firewall/macros",
- "info" : {
- "GET" : {
- "permissions" : {
- "user" : "all"
- },
- "description" : "List available macros",
- "method" : "GET",
- "name" : "get_macros",
- "returns" : {
- "items" : {
- "properties" : {
- "descr" : {
- "description" : "More verbose description (if available).",
- "type" : "string"
+ "proxyto" : null,
+ "returns" : {
+ "properties" : {
+ "action" : {
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dest" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dport" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "enable" : {
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "icmp-type" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "iface" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ipversion" : {
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "pos" : {
+ "type" : "integer"
+ },
+ "proto" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "source" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "sport" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "type" : "string"
+ }
},
- "macro" : {
- "type" : "string",
- "description" : "Macro name."
- }
- },
- "type" : "object"
+ "type" : "object"
+ }
},
- "type" : "array"
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Modify rule data.",
+ "method" : "PUT",
+ "name" : "update_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "comment" : {
+ "description" : "Descriptive comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dest" : {
+ "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dport" : {
+ "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-dport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "icmp-type" : {
+ "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+ "format" : "pve-fw-icmp-type-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "iface" : {
+ "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "moveto" : {
+ "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "proto" : {
+ "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "format" : "pve-fw-protocol-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "source" : {
+ "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Rule type.",
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ }
},
- "parameters" : {
- "additionalProperties" : 0
- }
+ "leaf" : 1,
+ "path" : "/cluster/firewall/rules/{pos}",
+ "text" : "{pos}"
}
- }
- },
- {
- "leaf" : 1,
- "text" : "refs",
- "path" : "/cluster/firewall/refs",
+ ],
"info" : {
"GET" : {
+ "allowtoken" : 1,
+ "description" : "List rules.",
+ "method" : "GET",
+ "name" : "get_rules",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
- "method" : "GET",
- "name" : "refs",
+ "proxyto" : null,
"returns" : {
"items" : {
- "type" : "object",
"properties" : {
- "name" : {
- "type" : "string"
- },
- "ref" : {
- "type" : "string"
- },
- "type" : {
- "type" : "string",
- "enum" : [
- "alias",
- "ipset"
- ]
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
+ "pos" : {
+ "type" : "integer"
}
- }
+ },
+ "type" : "object"
},
+ "links" : [
+ {
+ "href" : "{pos}",
+ "rel" : "child"
+ }
+ ],
"type" : "array"
- },
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create new rule.",
+ "method" : "POST",
+ "name" : "create_rule",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "type" : {
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 0,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "comment" : {
+ "description" : "Descriptive comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dest" : {
+ "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dport" : {
+ "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-dport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "icmp-type" : {
+ "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+ "format" : "pve-fw-icmp-type-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "iface" : {
+ "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule.",
"enum" : [
- "alias",
- "ipset"
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
],
"optional" : 1,
- "description" : "Only list references of specified type."
- }
- }
- }
- }
- }
- }
- ],
- "path" : "/cluster/firewall"
- },
- {
- "leaf" : 0,
- "text" : "backup",
- "children" : [
- {
- "text" : "{id}",
- "leaf" : 1,
- "info" : {
- "GET" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "id" : {
- "description" : "The job ID.",
- "maxLength" : 50,
"type" : "string"
- }
- }
- },
- "returns" : {
- "type" : "object"
- },
- "name" : "read_job",
- "method" : "GET",
- "description" : "Read vzdump backup job definition.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- }
- },
- "DELETE" : {
- "description" : "Delete vzdump backup job definition.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "method" : "DELETE",
- "name" : "delete_job",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "id" : {
- "type" : "string",
- "maxLength" : 50,
- "description" : "The job ID."
- }
- }
- },
- "returns" : {
- "type" : "null"
- }
- },
- "PUT" : {
- "protected" : 1,
- "description" : "Update vzdump backup job definition.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "name" : "update_job",
- "method" : "PUT",
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "properties" : {
- "stopwait" : {
- "type" : "integer",
- "default" : 10,
- "minimum" : 0,
- "description" : "Maximal time to wait until a guest system is stopped (minutes).",
- "optional" : 1
- },
- "exclude-path" : {
- "optional" : 1,
- "description" : "Exclude certain files/directories (shell globs).",
- "format" : "string-alist",
- "type" : "string"
- },
- "starttime" : {
- "type" : "string",
- "pattern" : "\\d{1,2}:\\d{1,2}",
- "description" : "Job Start time.",
- "typetext" : "HH:MM"
},
- "all" : {
- "optional" : 1,
- "description" : "Backup all known guest systems on this host.",
- "type" : "boolean",
- "default" : 0
- },
- "remove" : {
+ "macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
"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" : {
- "optional" : 1,
- "description" : "Enable or disable the job.",
- "type" : "boolean",
- "default" : "1"
- },
- "compress" : {
- "description" : "Compress dump file.",
- "optional" : 1,
- "enum" : [
- "0",
- "1",
- "gzip",
- "lzo"
- ],
- "default" : "0",
- "type" : "string"
- },
- "size" : {
- "optional" : 1,
- "description" : "Unused, will be removed in a future release.",
- "minimum" : 500,
- "type" : "integer",
- "default" : 1024
+ "typetext" : "<string>"
},
- "bwlimit" : {
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Limit I/O bandwidth (KBytes per second).",
"type" : "integer",
- "default" : 0,
- "minimum" : 0
+ "typetext" : "<integer> (0 - N)"
},
- "tmpdir" : {
- "type" : "string",
- "description" : "Store temporary files to specified directory.",
- "optional" : 1
- },
- "stop" : {
+ "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" : "Stop runnig backup jobs on this host.",
- "type" : "boolean",
- "default" : 0
- },
- "script" : {
- "type" : "string",
- "description" : "Use specified hook script.",
- "optional" : 1
- },
- "mailnotification" : {
"type" : "string",
- "default" : "always",
- "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" : {
- "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
- },
- "maxfiles" : {
- "optional" : 1,
- "description" : "Maximal number of backup files per guest system.",
- "minimum" : 1,
- "default" : 1,
- "type" : "integer"
- },
- "lockwait" : {
- "description" : "Maximal time to wait for the global lock (minutes).",
- "optional" : 1,
- "minimum" : 0,
- "default" : 180,
- "type" : "integer"
+ "typetext" : "<string>"
},
- "vmid" : {
- "description" : "The ID of the guest system you want to backup.",
+ "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",
+ "maxLength" : 512,
"optional" : 1,
"type" : "string",
- "format" : "pve-vmid-list"
- },
- "dumpdir" : {
- "type" : "string",
- "description" : "Store resulting files to specified directory.",
- "optional" : 1
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "optional" : 1,
- "description" : "Only run if executed on this node."
+ "typetext" : "<string>"
},
- "dow" : {
- "format" : "pve-day-of-week-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",
"optional" : 1,
- "description" : "Day of week selection."
- },
- "id" : {
"type" : "string",
- "maxLength" : 50,
- "description" : "The job ID."
+ "typetext" : "<string>"
},
- "ionice" : {
- "minimum" : 0,
- "maximum" : 8,
- "default" : 7,
- "type" : "integer",
- "optional" : 1,
- "description" : "Set CFQ ionice priority."
- },
- "quiet" : {
- "optional" : 1,
- "description" : "Be quiet.",
- "type" : "boolean",
- "default" : 0
- },
- "mailto" : {
- "description" : "Comma-separated list of email addresses that should receive email notifications.",
- "optional" : 1,
- "format" : "string-list",
- "type" : "string"
- },
- "mode" : {
- "optional" : 1,
- "description" : "Backup mode.",
+ "type" : {
+ "description" : "Rule type.",
"enum" : [
- "snapshot",
- "suspend",
- "stop"
+ "in",
+ "out",
+ "group"
],
- "default" : "snapshot",
- "type" : "string"
- },
- "exclude" : {
- "description" : "Exclude specified guest systems (assumes --all)",
- "optional" : 1,
- "format" : "pve-vmid-list",
+ "optional" : 0,
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
}
}
},
- "path" : "/cluster/backup/{id}"
- }
- ],
- "path" : "/cluster/backup",
- "info" : {
- "POST" : {
- "parameters" : {
- "properties" : {
- "starttime" : {
- "type" : "string",
- "pattern" : "\\d{1,2}:\\d{1,2}",
- "typetext" : "HH:MM",
- "description" : "Job Start time."
- },
- "exclude-path" : {
- "type" : "string",
- "format" : "string-alist",
- "description" : "Exclude certain files/directories (shell globs).",
- "optional" : 1
- },
- "remove" : {
- "type" : "boolean",
- "default" : 1,
- "optional" : 1,
- "description" : "Remove old backup files if there are more than 'maxfiles' backup files."
- },
- "all" : {
- "default" : 0,
- "type" : "boolean",
- "optional" : 1,
- "description" : "Backup all known guest systems on this host."
- },
- "stopwait" : {
- "minimum" : 0,
- "type" : "integer",
- "default" : 10,
- "description" : "Maximal time to wait until a guest system is stopped (minutes).",
- "optional" : 1
- },
- "bwlimit" : {
- "default" : 0,
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1,
- "description" : "Limit I/O bandwidth (KBytes per second)."
- },
- "tmpdir" : {
- "type" : "string",
- "description" : "Store temporary files to specified directory.",
- "optional" : 1
- },
- "stop" : {
- "default" : 0,
- "type" : "boolean",
- "optional" : 1,
- "description" : "Stop runnig backup jobs on this host."
- },
- "script" : {
- "type" : "string",
- "description" : "Use specified hook script.",
- "optional" : 1
- },
- "compress" : {
- "type" : "string",
- "default" : "0",
- "enum" : [
- "0",
- "1",
- "gzip",
- "lzo"
- ],
- "description" : "Compress dump file.",
- "optional" : 1
- },
- "storage" : {
- "optional" : 1,
- "description" : "Store resulting file to this storage.",
- "format" : "pve-storage-id",
- "type" : "string"
- },
- "enabled" : {
- "description" : "Enable or disable the job.",
- "optional" : 1,
- "type" : "boolean",
- "default" : "1"
- },
- "size" : {
- "default" : 1024,
- "type" : "integer",
- "minimum" : 500,
- "description" : "Unused, will be removed in a future release.",
- "optional" : 1
- },
- "pigz" : {
- "optional" : 1,
- "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
- "type" : "integer",
- "default" : 0
- },
- "lockwait" : {
- "optional" : 1,
- "description" : "Maximal time to wait for the global lock (minutes).",
- "default" : 180,
- "type" : "integer",
- "minimum" : 0
- },
- "maxfiles" : {
- "optional" : 1,
- "description" : "Maximal number of backup files per guest system.",
- "minimum" : 1,
- "type" : "integer",
- "default" : 1
- },
- "stdexcludes" : {
- "type" : "boolean",
- "default" : 1,
- "description" : "Exclude temporary files and logs.",
- "optional" : 1
- },
- "mailnotification" : {
- "type" : "string",
- "default" : "always",
- "description" : "Specify when to send an email",
- "optional" : 1,
- "enum" : [
- "always",
- "failure"
- ]
- },
- "node" : {
- "description" : "Only run if executed on this node.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-node"
- },
- "ionice" : {
- "description" : "Set CFQ ionice priority.",
- "optional" : 1,
- "minimum" : 0,
- "type" : "integer",
- "default" : 7,
- "maximum" : 8
- },
- "quiet" : {
- "description" : "Be quiet.",
- "optional" : 1,
- "type" : "boolean",
- "default" : 0
- },
- "dow" : {
- "description" : "Day of week selection.",
- "optional" : 1,
- "format" : "pve-day-of-week-list",
- "default" : "mon,tue,wed,thu,fri,sat,sun",
- "type" : "string"
- },
- "dumpdir" : {
- "type" : "string",
- "description" : "Store resulting files to specified directory.",
- "optional" : 1
- },
- "exclude" : {
- "optional" : 1,
- "description" : "Exclude specified guest systems (assumes --all)",
- "type" : "string",
- "format" : "pve-vmid-list"
- },
- "mailto" : {
- "type" : "string",
- "format" : "string-list",
- "description" : "Comma-separated list of email addresses that should receive email notifications.",
- "optional" : 1
- },
- "mode" : {
- "optional" : 1,
- "description" : "Backup mode.",
- "enum" : [
- "snapshot",
- "suspend",
- "stop"
- ],
- "default" : "snapshot",
- "type" : "string"
- },
- "vmid" : {
- "optional" : 1,
- "description" : "The ID of the guest system you want to backup.",
- "format" : "pve-vmid-list",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
- },
- "name" : "create_job",
- "method" : "POST",
- "description" : "Create new vzdump backup job.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1
+ "leaf" : 0,
+ "path" : "/cluster/firewall/rules",
+ "text" : "rules"
},
- "GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "id" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{id}",
- "rel" : "child"
- }
- ]
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "name" : "index",
- "method" : "GET",
- "description" : "List vzdump backup schedule.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- }
- }
- }
- },
- {
- "info" : {
- "GET" : {
- "description" : "Directory index.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{id}"
- }
- ],
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "id" : {
- "type" : "string"
- }
- }
- }
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "method" : "GET",
- "name" : "index"
- }
- },
- "path" : "/cluster/ha",
- "children" : [
{
- "path" : "/cluster/ha/resources",
- "info" : {
- "POST" : {
- "name" : "create",
- "method" : "POST",
- "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,
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Remove IP or Network from IPSet.",
+ "method" : "DELETE",
+ "name" : "remove_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Console"
+ "Sys.Modify"
]
]
},
- "description" : "Request resource migration (online) to another node.",
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read IP or Network settings from IPSet.",
+ "method" : "GET",
+ "name" : "read_ip",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "sid" : {
- "typetext" : "<type>:<name>",
- "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "format" : "pve-ha-resource-or-vm-id",
- "type" : "string"
- },
- "node" : {
- "format" : "pve-node",
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "POST",
- "name" : "migrate"
- }
- },
- "leaf" : 1,
- "text" : "migrate"
- },
- {
- "leaf" : 1,
- "text" : "relocate",
- "info" : {
- "POST" : {
- "name" : "relocate",
- "method" : "POST",
- "returns" : {
- "type" : "null"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
},
+ "protected" : 1,
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update IP or Network settings",
+ "method" : "PUT",
+ "name" : "update_ip",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "node" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
"type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "sid" : {
+ "comment" : {
+ "optional" : 1,
"type" : "string",
- "format" : "pve-ha-resource-or-vm-id",
- "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "typetext" : "<type>:<name>"
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Console"
+ "Sys.Modify"
]
]
},
- "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node."
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "path" : "/cluster/ha/resources/{sid}/relocate"
+ "leaf" : 1,
+ "path" : "/cluster/firewall/ipset/{name}/{cidr}",
+ "text" : "{cidr}"
}
],
"info" : {
- "PUT" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "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"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List IPSet content",
+ "method" : "GET",
+ "name" : "get_ipset",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "delete" : {
- "format" : "pve-configid-list",
- "type" : "string",
- "description" : "A list of settings you want to delete.",
- "optional" : 1,
- "maxLength" : 4096
- },
- "digest" : {
- "type" : "string",
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1
- },
- "state" : {
- "enum" : [
- "enabled",
- "disabled"
- ],
- "description" : "Resource state.",
- "optional" : 1,
- "type" : "string",
- "default" : "enabled"
- },
- "max_restart" : {
- "optional" : 1,
- "description" : "Maximal number of tries to restart the service on a node after its start failed.",
- "type" : "integer",
- "default" : 1,
- "minimum" : 0
- },
- "comment" : {
- "type" : "string",
- "description" : "Description.",
- "maxLength" : 4096,
- "optional" : 1
- },
- "sid" : {
- "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "typetext" : "<type>:<name>",
- "format" : "pve-ha-resource-or-vm-id",
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
- },
- "group" : {
- "format" : "pve-configid",
- "type" : "string",
- "description" : "The HA group identifier.",
- "optional" : 1
- },
- "max_relocate" : {
- "default" : 1,
- "type" : "integer",
- "minimum" : 0,
- "description" : "Maximal number of service relocate tries when a service failes to start.",
- "optional" : 1
}
- },
- "type" : "object"
- },
- "name" : "update",
- "method" : "PUT",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Console"
- ]
- ]
+ }
},
- "description" : "Update resource configuration."
- },
- "GET" : {
- "description" : "Read resource configuration.",
"permissions" : {
"check" : [
"perm",
]
]
},
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "cidr" : {
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{cidr}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Add IP or Network to IPSet.",
+ "method" : "POST",
+ "name" : "create_ip",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "sid" : {
- "typetext" : "<type>:<name>",
- "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "format" : "pve-ha-resource-or-vm-id",
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
}
},
- "returns" : {},
- "method" : "GET",
- "name" : "read"
- },
- "DELETE" : {
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Console"
+ "Sys.Modify"
]
]
},
- "description" : "Delete resource configuration.",
"protected" : 1,
- "method" : "DELETE",
- "name" : "delete",
- "parameters" : {
- "properties" : {
- "sid" : {
- "typetext" : "<type>:<name>",
- "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "format" : "pve-ha-resource-or-vm-id",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
"returns" : {
"type" : "null"
}
}
},
- "path" : "/cluster/ha/resources/{sid}"
+ "leaf" : 0,
+ "path" : "/cluster/firewall/ipset/{name}",
+ "text" : "{name}"
}
],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List IPSets",
+ "method" : "GET",
+ "name" : "ipset_index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create new IPSet",
+ "method" : "POST",
+ "name" : "create_ipset",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "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,
- "text" : "resources"
+ "path" : "/cluster/firewall/ipset",
+ "text" : "ipset"
},
{
"children" : [
{
- "path" : "/cluster/ha/groups/{group}",
"info" : {
- "PUT" : {
- "protected" : 1,
- "description" : "Update ha group configuration.",
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Remove IP or Network alias.",
+ "method" : "DELETE",
+ "name" : "remove_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Console"
+ "Sys.Modify"
]
]
},
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read alias.",
+ "method" : "GET",
+ "name" : "read_alias",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "restricted" : {
- "description" : "Services on unrestricted groups may run on any cluster members if all group members are offline. But they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with one member.",
- "optional" : 1,
- "default" : 0,
- "type" : "boolean"
- },
- "nodes" : {
- "description" : "List of cluster node names with optional priority. We use priority '0' as default. The CRM tries to run services on the node with highest priority (also see option 'nofailback').",
- "optional" : 1,
- "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
- "format" : "pve-ha-group-node-list",
- "type" : "string"
- },
- "nofailback" : {
- "type" : "boolean",
- "default" : 0,
- "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
- "optional" : 1
- },
- "delete" : {
- "optional" : 1,
- "description" : "A list of settings you want to delete.",
- "maxLength" : 4096,
- "type" : "string",
- "format" : "pve-configid-list"
- },
- "comment" : {
- "maxLength" : 4096,
- "description" : "Description.",
- "optional" : 1,
- "type" : "string"
- },
- "group" : {
- "description" : "The HA group identifier.",
- "format" : "pve-configid",
- "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,
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
}
- },
- "additionalProperties" : 0,
- "type" : "object"
+ }
},
- "method" : "PUT",
- "name" : "update"
- },
- "GET" : {
"permissions" : {
"check" : [
"perm",
]
]
},
- "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
+ "returns" : {
+ "type" : "object"
}
},
- "DELETE" : {
- "method" : "DELETE",
- "name" : "delete",
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update IP or Network alias.",
+ "method" : "PUT",
+ "name" : "update_alias",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "group" : {
- "description" : "The HA group identifier.",
- "format" : "pve-configid",
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "rename" : {
+ "description" : "Rename an existing alias.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "optional" : 1,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
}
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
+ }
},
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Console"
+ "Sys.Modify"
]
]
},
- "description" : "Delete ha group configuration.",
- "protected" : 1
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
"leaf" : 1,
- "text" : "{group}"
+ "path" : "/cluster/firewall/aliases/{name}",
+ "text" : "{name}"
}
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
+ "description" : "List aliases",
+ "method" : "GET",
+ "name" : "get_aliases",
"parameters" : {
"additionalProperties" : 0
},
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{group}"
- }
- ],
- "type" : "array",
- "items" : {
- "properties" : {
- "group" : {
- "type" : "string"
- }
- },
- "type" : "object"
- }
- },
- "name" : "index",
- "method" : "GET",
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Get HA groups."
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "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" : {
- "returns" : {
- "type" : "null"
- },
+ "allowtoken" : 1,
+ "description" : "Create IP or Network Alias.",
+ "method" : "POST",
+ "name" : "create_alias",
"parameters" : {
- "type" : "object",
+ "additionalProperties" : 0,
"properties" : {
- "nofailback" : {
- "type" : "boolean",
- "default" : 0,
- "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" : {
- "description" : "Group type.",
- "optional" : 1,
- "enum" : [
- "group"
- ],
- "type" : "string"
- },
- "restricted" : {
- "default" : 0,
- "type" : "boolean",
- "description" : "Services on unrestricted groups may run on any cluster members if all group members are offline. But they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with one member.",
- "optional" : 1
- },
- "nodes" : {
- "format" : "pve-ha-group-node-list",
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
"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
- },
- "group" : {
- "description" : "The HA group identifier.",
- "format" : "pve-configid",
- "type" : "string"
+ "typetext" : "<string>"
},
"comment" : {
- "maxLength" : 4096,
- "description" : "Description.",
"optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "POST",
- "name" : "create",
- "protected" : 1,
- "description" : "Create a new HA group.",
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Console"
+ "Sys.Modify"
]
]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "path" : "/cluster/ha/groups",
- "text" : "groups",
- "leaf" : 0
+ "leaf" : 0,
+ "path" : "/cluster/firewall/aliases",
+ "text" : "aliases"
},
{
- "text" : "status",
- "leaf" : 0,
- "children" : [
- {
- "text" : "current",
- "leaf" : 1,
- "path" : "/cluster/ha/status/current",
- "info" : {
- "GET" : {
- "returns" : {
- "type" : "array"
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "method" : "GET",
- "name" : "status",
- "description" : "Get HA manger status.",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get Firewall options.",
+ "method" : "GET",
+ "name" : "get_options",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "properties" : {
+ "ebtables" : {
+ "default" : 1,
+ "description" : "Enable ebtables rules cluster wide.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "enable" : {
+ "description" : "Enable or disable the firewall cluster wide.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "log_ratelimit" : {
+ "description" : "Log ratelimiting settings",
+ "format" : {
+ "burst" : {
+ "default" : 5,
+ "description" : "Initial burst of packages which will always get logged before the rate is applied",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "enable" : {
+ "default" : "1",
+ "default_key" : 1,
+ "description" : "Enable or disable log rate limiting",
+ "type" : "boolean"
+ },
+ "rate" : {
+ "default" : "1/second",
+ "description" : "Frequency with which the burst bucket gets refilled",
+ "format_description" : "rate",
+ "optional" : 1,
+ "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "policy_in" : {
+ "description" : "Input policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "policy_out" : {
+ "description" : "Output policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
}
- }
+ },
+ "type" : "object"
}
},
- {
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "manager_status",
- "parameters" : {
- "additionalProperties" : 0
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Set Firewall options.",
+ "method" : "PUT",
+ "name" : "set_options",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "returns" : {
- "type" : "object"
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
+ "ebtables" : {
+ "default" : 1,
+ "description" : "Enable ebtables rules cluster wide.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "enable" : {
+ "description" : "Enable or disable the firewall cluster wide.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "log_ratelimit" : {
+ "description" : "Log ratelimiting settings",
+ "format" : {
+ "burst" : {
+ "default" : 5,
+ "description" : "Initial burst of packages which will always get logged before the rate is applied",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "enable" : {
+ "default" : "1",
+ "default_key" : 1,
+ "description" : "Enable or disable log rate limiting",
+ "type" : "boolean"
+ },
+ "rate" : {
+ "default" : "1/second",
+ "description" : "Frequency with which the burst bucket gets refilled",
+ "format_description" : "rate",
+ "optional" : 1,
+ "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[enable=]<1|0> [,burst=<integer>] [,rate=<rate>]"
+ },
+ "policy_in" : {
+ "description" : "Input policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "description" : "Get full HA manger status, including LRM status."
+ "policy_out" : {
+ "description" : "Output policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
}
},
- "path" : "/cluster/ha/status/manager_status",
- "leaf" : 1,
- "text" : "manager_status"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
- ],
- "path" : "/cluster/ha/status",
+ },
+ "leaf" : 1,
+ "path" : "/cluster/firewall/options",
+ "text" : "options"
+ },
+ {
"info" : {
"GET" : {
- "description" : "Directory index.",
- "permissions" : {
- "user" : "all"
- },
+ "allowtoken" : 1,
+ "description" : "List available macros",
+ "method" : "GET",
+ "name" : "get_macros",
"parameters" : {
"additionalProperties" : 0
},
+ "permissions" : {
+ "user" : "all"
+ },
"returns" : {
- "type" : "array",
"items" : {
- "properties" : {},
+ "properties" : {
+ "descr" : {
+ "description" : "More verbose description (if available).",
+ "type" : "string"
+ },
+ "macro" : {
+ "description" : "Macro name.",
+ "type" : "string"
+ }
+ },
"type" : "object"
},
- "links" : [
- {
- "rel" : "child",
- "href" : "{name}"
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/firewall/macros",
+ "text" : "macros"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
+ "method" : "GET",
+ "name" : "refs",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "type" : {
+ "description" : "Only list references of specified type.",
+ "enum" : [
+ "alias",
+ "ipset"
+ ],
+ "optional" : 1,
+ "type" : "string"
}
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
]
},
- "name" : "index",
- "method" : "GET"
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "type" : "string"
+ },
+ "ref" : {
+ "type" : "string"
+ },
+ "type" : {
+ "enum" : [
+ "alias",
+ "ipset"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
}
- }
- }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/firewall/refs",
+ "text" : "refs"
+ }
],
- "leaf" : 0,
- "text" : "ha"
- },
- {
- "text" : "log",
- "leaf" : 1,
- "path" : "/cluster/log",
"info" : {
"GET" : {
- "name" : "log",
+ "allowtoken" : 1,
+ "description" : "Directory index.",
"method" : "GET",
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- }
- },
+ "name" : "index",
"parameters" : {
- "properties" : {
- "max" : {
- "description" : "Maximum number of entries.",
- "optional" : 1,
- "minimum" : 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"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "type" : {
- "enum" : [
- "vm",
- "storage",
- "node"
- ],
- "optional" : 1,
- "type" : "string"
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
}
- }
- },
- "name" : "resources",
- "method" : "GET"
+ ],
+ "type" : "array"
+ }
}
},
- "text" : "resources",
- "leaf" : 1
+ "leaf" : 0,
+ "path" : "/cluster/firewall",
+ "text" : "firewall"
},
{
- "text" : "tasks",
- "leaf" : 1,
- "info" : {
- "GET" : {
- "parameters" : {
- "additionalProperties" : 0
- },
- "returns" : {
- "items" : {
- "properties" : {
- "upid" : {
- "type" : "string"
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Returns included guests and the backup status of their disks. Optimized to be used in ExtJS tree views.",
+ "method" : "GET",
+ "name" : "get_volume_backup_included",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "The job ID.",
+ "maxLength" : 50,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "description" : "Root node of the tree object. Children represent guests, grandchildren represent volumes of that guest.",
+ "properties" : {
+ "children" : {
+ "items" : {
+ "properties" : {
+ "children" : {
+ "description" : "The volumes of the guest with the information if they will be included in backups.",
+ "items" : {
+ "properties" : {
+ "id" : {
+ "description" : "Configuration key of the volume.",
+ "type" : "string"
+ },
+ "included" : {
+ "description" : "Whether the volume is included in the backup or not.",
+ "type" : "boolean"
+ },
+ "name" : {
+ "description" : "Name of the volume.",
+ "type" : "string"
+ },
+ "reason" : {
+ "description" : "The reason why the volume is included (or excluded).",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
+ "id" : {
+ "description" : "VMID of the guest.",
+ "type" : "integer"
+ },
+ "name" : {
+ "description" : "Name of the guest",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "Type of the guest, VM, CT or unknown for removed but not purged guests.",
+ "enum" : [
+ "qemu",
+ "lxc",
+ "unknown"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ }
}
},
- "type" : "object"
- },
- "type" : "array"
- },
- "method" : "GET",
- "name" : "tasks",
- "permissions" : {
- "user" : "all"
- },
- "description" : "List recent tasks (cluster wide)."
- }
- },
- "path" : "/cluster/tasks"
- },
- {
- "leaf" : 1,
- "text" : "options",
- "path" : "/cluster/options",
- "info" : {
- "PUT" : {
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "email_from" : {
- "type" : "string",
- "format" : "email-opt",
- "description" : "Specify email address to send notification from (default is root@$hostname)",
- "optional" : 1
+ "leaf" : 1,
+ "path" : "/cluster/backup/{id}/included_volumes",
+ "text" : "included_volumes"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete vzdump backup job definition.",
+ "method" : "DELETE",
+ "name" : "delete_job",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "The job ID.",
+ "maxLength" : 50,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "console" : {
- "type" : "string",
- "description" : "Select the default Console viewer. You can either use the builtin java applet (VNC), an external virt-viewer comtatible application (SPICE), or an HTML5 based viewer (noVNC).",
- "optional" : 1,
- "enum" : [
- "applet",
- "vv",
- "html5"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
]
},
- "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"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read vzdump backup job definition.",
+ "method" : "GET",
+ "name" : "read_job",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "The job ID.",
+ "maxLength" : 50,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "max_workers" : {
- "minimum" : 1,
- "type" : "integer",
- "optional" : 1,
- "description" : "Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager."
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
},
- "http_proxy" : {
- "pattern" : "http://.*",
- "description" : "Specify external http proxy which is used for downloads (example: 'http://username:password@host:port/')",
- "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"
- ]
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update vzdump backup job definition.",
+ "method" : "PUT",
+ "name" : "update_job",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "all" : {
+ "default" : 0,
+ "description" : "Backup all known guest systems on this host.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "bwlimit" : {
+ "default" : 0,
+ "description" : "Limit I/O bandwidth (KBytes per second).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "comment" : {
+ "description" : "Description for the Job.",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "compress" : {
+ "default" : "0",
+ "description" : "Compress dump file.",
+ "enum" : [
+ "0",
+ "1",
+ "gzip",
+ "lzo",
+ "zstd"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dow" : {
+ "description" : "Day of week selection.",
+ "format" : "pve-day-of-week-list",
+ "optional" : 1,
+ "requires" : "starttime",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dumpdir" : {
+ "description" : "Store resulting files to specified directory.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enabled" : {
+ "default" : "1",
+ "description" : "Enable or disable the job.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "exclude" : {
+ "description" : "Exclude specified guest systems (assumes --all)",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "exclude-path" : {
+ "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
+ "format" : "string-alist",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "id" : {
+ "description" : "The job ID.",
+ "maxLength" : 50,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ionice" : {
+ "default" : 7,
+ "description" : "Set CFQ ionice priority.",
+ "maximum" : 8,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 8)"
+ },
+ "lockwait" : {
+ "default" : 180,
+ "description" : "Maximal time to wait for the global lock (minutes).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "mailnotification" : {
+ "default" : "always",
+ "description" : "Specify when to send an email",
+ "enum" : [
+ "always",
+ "failure"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "mailto" : {
+ "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
+ "format" : "email-or-username-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "maxfiles" : {
+ "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "mode" : {
+ "default" : "snapshot",
+ "description" : "Backup mode.",
+ "enum" : [
+ "snapshot",
+ "suspend",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "Only run if executed on this node.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "notes-template" : {
+ "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future.",
+ "optional" : 1,
+ "requires" : "storage",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pigz" : {
+ "default" : 0,
+ "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "pool" : {
+ "description" : "Backup all known guest systems included in the specified pool.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "protected" : {
+ "description" : "If true, mark backup(s) as protected.",
+ "optional" : 1,
+ "requires" : "storage",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "prune-backups" : {
+ "default" : "keep-all=1",
+ "description" : "Use these retention options instead of those from the storage configuration.",
+ "format" : "prune-backups",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
+ },
+ "quiet" : {
+ "default" : 0,
+ "description" : "Be quiet.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "remove" : {
+ "default" : 1,
+ "description" : "Prune older backups according to 'prune-backups'.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "schedule" : {
+ "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
+ "format" : "pve-calendar-event",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "script" : {
+ "description" : "Use specified hook script.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "starttime" : {
+ "description" : "Job Start time.",
+ "optional" : 1,
+ "pattern" : "\\d{1,2}:\\d{1,2}",
+ "type" : "string",
+ "typetext" : "HH:MM"
+ },
+ "stdexcludes" : {
+ "default" : 1,
+ "description" : "Exclude temporary files and logs.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "stop" : {
+ "default" : 0,
+ "description" : "Stop running backup jobs on this host.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "stopwait" : {
+ "default" : 10,
+ "description" : "Maximal time to wait until a guest system is stopped (minutes).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "storage" : {
+ "description" : "Store resulting file to this storage.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tmpdir" : {
+ "description" : "Store temporary files to specified directory.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The ID of the guest system you want to backup.",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "zstd" : {
+ "default" : 1,
+ "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ }
+ }
},
- "language" : {
- "optional" : 1,
- "description" : "Default GUI language.",
- "enum" : [
- "en",
- "de"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
],
- "type" : "string"
+ "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
},
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-configid-list"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "method" : "PUT",
- "name" : "set_options",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "description" : "Set datacenter options."
- },
+ "leaf" : 0,
+ "path" : "/cluster/backup/{id}",
+ "text" : "{id}"
+ }
+ ],
+ "info" : {
"GET" : {
+ "allowtoken" : 1,
+ "description" : "List vzdump backup schedule.",
"method" : "GET",
- "name" : "get_options",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0
},
- "returns" : {
- "type" : "object",
- "properties" : {}
- },
"permissions" : {
"check" : [
"perm",
]
]
},
- "description" : "Get datacenter options."
- }
- }
- },
- {
- "leaf" : 1,
- "text" : "status",
- "info" : {
- "GET" : {
"returns" : {
- "type" : "array",
"items" : {
- "type" : "object",
"properties" : {
- "type" : {
+ "id" : {
+ "description" : "The job ID.",
+ "maxLength" : 50,
"type" : "string"
}
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{id}",
+ "rel" : "child"
}
- }
- },
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create new vzdump backup job.",
+ "method" : "POST",
+ "name" : "create_job",
"parameters" : {
- "additionalProperties" : 0
+ "additionalProperties" : 0,
+ "properties" : {
+ "all" : {
+ "default" : 0,
+ "description" : "Backup all known guest systems on this host.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "bwlimit" : {
+ "default" : 0,
+ "description" : "Limit I/O bandwidth (KBytes per second).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "comment" : {
+ "description" : "Description for the Job.",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "compress" : {
+ "default" : "0",
+ "description" : "Compress dump file.",
+ "enum" : [
+ "0",
+ "1",
+ "gzip",
+ "lzo",
+ "zstd"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dow" : {
+ "default" : "mon,tue,wed,thu,fri,sat,sun",
+ "description" : "Day of week selection.",
+ "format" : "pve-day-of-week-list",
+ "optional" : 1,
+ "requires" : "starttime",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dumpdir" : {
+ "description" : "Store resulting files to specified directory.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enabled" : {
+ "default" : "1",
+ "description" : "Enable or disable the job.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "exclude" : {
+ "description" : "Exclude specified guest systems (assumes --all)",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "exclude-path" : {
+ "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
+ "format" : "string-alist",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "id" : {
+ "description" : "Job ID (will be autogenerated).",
+ "format" : "pve-configid",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ionice" : {
+ "default" : 7,
+ "description" : "Set CFQ ionice priority.",
+ "maximum" : 8,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 8)"
+ },
+ "lockwait" : {
+ "default" : 180,
+ "description" : "Maximal time to wait for the global lock (minutes).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "mailnotification" : {
+ "default" : "always",
+ "description" : "Specify when to send an email",
+ "enum" : [
+ "always",
+ "failure"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "mailto" : {
+ "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
+ "format" : "email-or-username-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "maxfiles" : {
+ "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "mode" : {
+ "default" : "snapshot",
+ "description" : "Backup mode.",
+ "enum" : [
+ "snapshot",
+ "suspend",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "Only run if executed on this node.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "notes-template" : {
+ "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future.",
+ "optional" : 1,
+ "requires" : "storage",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pigz" : {
+ "default" : 0,
+ "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "pool" : {
+ "description" : "Backup all known guest systems included in the specified pool.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "protected" : {
+ "description" : "If true, mark backup(s) as protected.",
+ "optional" : 1,
+ "requires" : "storage",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "prune-backups" : {
+ "default" : "keep-all=1",
+ "description" : "Use these retention options instead of those from the storage configuration.",
+ "format" : "prune-backups",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
+ },
+ "quiet" : {
+ "default" : 0,
+ "description" : "Be quiet.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "remove" : {
+ "default" : 1,
+ "description" : "Prune older backups according to 'prune-backups'.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "schedule" : {
+ "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
+ "format" : "pve-calendar-event",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "script" : {
+ "description" : "Use specified hook script.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "starttime" : {
+ "description" : "Job Start time.",
+ "optional" : 1,
+ "pattern" : "\\d{1,2}:\\d{1,2}",
+ "type" : "string",
+ "typetext" : "HH:MM"
+ },
+ "stdexcludes" : {
+ "default" : 1,
+ "description" : "Exclude temporary files and logs.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "stop" : {
+ "default" : 0,
+ "description" : "Stop running backup jobs on this host.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "stopwait" : {
+ "default" : 10,
+ "description" : "Maximal time to wait until a guest system is stopped (minutes).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "storage" : {
+ "description" : "Store resulting file to this storage.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tmpdir" : {
+ "description" : "Store temporary files to specified directory.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The ID of the guest system you want to backup.",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "zstd" : {
+ "default" : 1,
+ "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ }
+ }
},
- "name" : "get_status",
- "method" : "GET",
- "protected" : 1,
- "description" : "Get cluster status informations.",
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Audit"
+ "Sys.Modify"
]
- ]
+ ],
+ "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "path" : "/cluster/status"
+ "leaf" : 0,
+ "path" : "/cluster/backup",
+ "text" : "backup"
},
{
- "path" : "/cluster/nextid",
- "info" : {
- "GET" : {
- "permissions" : {
- "user" : "all"
- },
- "description" : "Get next free VMID. If you pass an VMID it will raise an error if the ID is already used.",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM.",
- "optional" : 1
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Shows all guests which are not covered by any backup job.",
+ "method" : "GET",
+ "name" : "get_guests_not_in_backup",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "description" : "Contains the guest objects.",
+ "items" : {
+ "properties" : {
+ "name" : {
+ "description" : "Name of the guest",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "Type of the guest.",
+ "enum" : [
+ "qemu",
+ "lxc"
+ ],
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "VMID of the guest.",
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
}
}
},
- "returns" : {
- "type" : "integer",
- "description" : "The next free VMID."
- },
- "name" : "nextid",
- "method" : "GET"
+ "leaf" : 1,
+ "path" : "/cluster/backup-info/not-backed-up",
+ "text" : "not-backed-up"
}
- },
- "text" : "nextid",
- "leaf" : 1
- }
- ],
- "path" : "/cluster",
- "info" : {
- "GET" : {
- "parameters" : {
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Index for backup info related endpoints",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "returns" : {
+ "description" : "Directory index.",
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "description" : "API sub-directory endpoint",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
- ]
+ }
},
- "method" : "GET",
- "name" : "index",
- "description" : "Cluster index.",
- "permissions" : {
- "user" : "all"
- }
- }
- }
- },
- {
- "leaf" : 0,
- "text" : "nodes",
- "path" : "/nodes",
- "children" : [
- {
"leaf" : 0,
- "text" : "{node}",
- "path" : "/nodes/{node}",
+ "path" : "/cluster/backup-info",
+ "text" : "backup-info"
+ },
+ {
"children" : [
{
- "text" : "qemu",
- "leaf" : 0,
- "path" : "/nodes/{node}/qemu",
"children" : [
{
- "path" : "/nodes/{node}/qemu/{vmid}",
+ "children" : [
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Request resource migration (online) to another node.",
+ "method" : "POST",
+ "name" : "migrate",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "Target node.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ha/resources/{sid}/migrate",
+ "text" : "migrate"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.",
+ "method" : "POST",
+ "name" : "relocate",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "Target node.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ha/resources/{sid}/relocate",
+ "text" : "relocate"
+ }
+ ],
"info" : {
"DELETE" : {
- "description" : "Destroy the vm (also delete all used/owned volumes).",
- "returns" : {
- "type" : "string"
- },
+ "allowtoken" : 1,
+ "description" : "Delete resource configuration.",
"method" : "DELETE",
- "name" : "destroy_vm",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
- "/vms/{vmid}",
+ "/",
[
- "VM.Allocate"
+ "Sys.Console"
]
]
},
"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
+ "returns" : {
+ "type" : "null"
}
},
"GET" : {
+ "allowtoken" : 1,
+ "description" : "Read resource configuration.",
"method" : "GET",
- "name" : "vmdiridx",
+ "name" : "read",
"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"
+ "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>"
}
}
},
- "proxyto" : "node",
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "subdir" : {
- "type" : "string"
- }
- }
- },
- "links" : [
- {
- "href" : "{subdir}",
- "rel" : "child"
- }
- ]
- },
"permissions" : {
- "user" : "all"
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "properties" : {
+ "comment" : {
+ "description" : "Description.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Can be used to prevent concurrent modifications.",
+ "type" : "string"
+ },
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "max_relocate" : {
+ "description" : "Maximal number of service relocate tries when a service failes to start.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "max_restart" : {
+ "description" : "Maximal number of tries to restart the service on a node after its start failed.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ },
+ "state" : {
+ "description" : "Requested resource state.",
+ "enum" : [
+ "started",
+ "stopped",
+ "enabled",
+ "disabled",
+ "ignored"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "The type of the resources.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update resource configuration.",
+ "method" : "PUT",
+ "name" : "update",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "max_relocate" : {
+ "default" : 1,
+ "description" : "Maximal number of service relocate tries when a service failes to start.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "max_restart" : {
+ "default" : 1,
+ "description" : "Maximal number of tries to restart the service on a node after its start failed.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ },
+ "state" : {
+ "default" : "started",
+ "description" : "Requested resource state.",
+ "enum" : [
+ "started",
+ "stopped",
+ "enabled",
+ "disabled",
+ "ignored"
+ ],
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "Requested resource state. The CRM reads this state and acts accordingly.\nPlease note that `enabled` is just an alias for `started`.\n\n`started`;;\n\nThe CRM tries to start the resource. Service state is\nset to `started` after successful start. On node failures, or when start\nfails, it tries to recover the resource. If everything fails, service\nstate it set to `error`.\n\n`stopped`;;\n\nThe CRM tries to keep the resource in `stopped` state, but it\nstill tries to relocate the resources on node failures.\n\n`disabled`;;\n\nThe CRM tries to put the resource in `stopped` state, but does not try\nto relocate the resources on node failures. The main purpose of this\nstate is error recovery, because it is the only way to move a resource out\nof the `error` state.\n\n`ignored`;;\n\nThe resource gets removed from the manager status and so the CRM and the LRM do\nnot touch the resource anymore. All {pve} API calls affecting this resource\nwill be executed, directly bypassing the HA stack. CRM commands will be thrown\naway while there source is in this state. The resource will not get relocated\non node failures.\n\n"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
},
- "description" : "Directory index"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "children" : [
- {
- "text" : "firewall",
- "leaf" : 0,
- "children" : [
- {
- "children" : [
- {
- "text" : "{pos}",
- "leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}",
- "info" : {
- "DELETE" : {
- "proxyto" : null,
- "parameters" : {
- "properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "optional" : 1,
- "minimum" : 0,
- "type" : "integer"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "protected" : 1,
- "returns" : {
- "type" : "null"
- },
- "name" : "delete_rule",
- "method" : "DELETE",
- "description" : "Delete rule."
- },
- "GET" : {
- "description" : "Get single rule data.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "method" : "GET",
- "name" : "get_rule",
- "returns" : {
- "type" : "object",
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- }
- },
- "proxyto" : null,
- "parameters" : {
- "properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1,
- "description" : "Update rule at position <pos>."
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- }
- },
- "PUT" : {
- "returns" : {
- "type" : "null"
- },
- "method" : "PUT",
- "name" : "update_rule",
- "description" : "Modify rule data.",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "digest" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40
- },
- "iface" : {
- "minLength" : 2,
- "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
- "optional" : 1,
- "maxLength" : 20,
- "type" : "string",
- "format" : "pve-iface"
- },
- "source" : {
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-fw-addr-spec"
- },
- "pos" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1,
- "description" : "Update rule at position <pos>."
- },
- "action" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "maxLength" : 20,
+ "leaf" : 0,
+ "path" : "/cluster/ha/resources/{sid}",
+ "text" : "{sid}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List HA resources.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "type" : {
+ "description" : "Only list resources of specific type",
+ "enum" : [
+ "ct",
+ "vm"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "sid" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{sid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a new HA resource.",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "max_relocate" : {
+ "default" : 1,
+ "description" : "Maximal number of service relocate tries when a service failes to start.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "max_restart" : {
+ "default" : 1,
+ "description" : "Maximal number of tries to restart the service on a node after its start failed.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ },
+ "state" : {
+ "default" : "started",
+ "description" : "Requested resource state.",
+ "enum" : [
+ "started",
+ "stopped",
+ "enabled",
+ "disabled",
+ "ignored"
+ ],
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "Requested resource state. The CRM reads this state and acts accordingly.\nPlease note that `enabled` is just an alias for `started`.\n\n`started`;;\n\nThe CRM tries to start the resource. Service state is\nset to `started` after successful start. On node failures, or when start\nfails, it tries to recover the resource. If everything fails, service\nstate it set to `error`.\n\n`stopped`;;\n\nThe CRM tries to keep the resource in `stopped` state, but it\nstill tries to relocate the resources on node failures.\n\n`disabled`;;\n\nThe CRM tries to put the resource in `stopped` state, but does not try\nto relocate the resources on node failures. The main purpose of this\nstate is error recovery, because it is the only way to move a resource out\nof the `error` state.\n\n`ignored`;;\n\nThe resource gets removed from the manager status and so the CRM and the LRM do\nnot touch the resource anymore. All {pve} API calls affecting this resource\nwill be executed, directly bypassing the HA stack. CRM commands will be thrown\naway while there source is in this state. The resource will not get relocated\non node failures.\n\n"
+ },
+ "type" : {
+ "description" : "Resource type.",
+ "enum" : [
+ "ct",
+ "vm"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/ha/resources",
+ "text" : "resources"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete ha group configuration.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read ha group configuration.",
+ "method" : "GET",
+ "name" : "read",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {}
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update ha group configuration.",
+ "method" : "PUT",
+ "name" : "update",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nodes" : {
+ "description" : "List of cluster node names with optional priority.",
+ "format" : "pve-ha-group-node-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
+ "verbose_description" : "List of cluster node members, where a priority can be given to each node. A resource bound to a group will run on the available nodes with the highest priority. If there are more nodes in the highest priority class, the services will get distributed to those nodes. The priorities have a relative meaning only."
+ },
+ "nofailback" : {
+ "default" : 0,
+ "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "restricted" : {
+ "default" : 0,
+ "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>",
+ "verbose_description" : "Resources bound to restricted groups may only run on nodes defined by the group. The resource will be placed in the stopped state if no group node member is online. Resources on unrestricted groups may run on any cluster node if all group members are offline, but they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with only one member."
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ha/groups/{group}",
+ "text" : "{group}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "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" : {
+ "allowtoken" : 1,
+ "description" : "Create a new HA group.",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nodes" : {
+ "description" : "List of cluster node names with optional priority.",
+ "format" : "pve-ha-group-node-list",
+ "optional" : 0,
+ "type" : "string",
+ "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
+ "verbose_description" : "List of cluster node members, where a priority can be given to each node. A resource bound to a group will run on the available nodes with the highest priority. If there are more nodes in the highest priority class, the services will get distributed to those nodes. The priorities have a relative meaning only."
+ },
+ "nofailback" : {
+ "default" : 0,
+ "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "restricted" : {
+ "default" : 0,
+ "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>",
+ "verbose_description" : "Resources bound to restricted groups may only run on nodes defined by the group. The resource will be placed in the stopped state if no group node member is online. Resources on unrestricted groups may run on any cluster node if all group members are offline, but they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with only one member."
+ },
+ "type" : {
+ "description" : "Group type.",
+ "enum" : [
+ "group"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/ha/groups",
+ "text" : "groups"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get HA manger status.",
+ "method" : "GET",
+ "name" : "status",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ha/status/current",
+ "text" : "current"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get full HA manger status, including LRM status.",
+ "method" : "GET",
+ "name" : "manager_status",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ha/status/manager_status",
+ "text" : "manager_status"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/ha/status",
+ "text" : "status"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "id" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{id}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/ha",
+ "text" : "ha"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete ACME plugin configuration.",
+ "method" : "DELETE",
+ "name" : "delete_plugin",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "Unique identifier for ACME plugin instance.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get ACME plugin configuration.",
+ "method" : "GET",
+ "name" : "get_plugin_config",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "Unique identifier for ACME plugin instance.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update ACME plugin configuration.",
+ "method" : "PUT",
+ "name" : "update_plugin",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "api" : {
+ "description" : "API plugin name",
+ "enum" : [
+ "1984hosting",
+ "acmedns",
+ "acmeproxy",
+ "active24",
+ "ad",
+ "ali",
+ "anx",
+ "arvan",
+ "aurora",
+ "autodns",
+ "aws",
+ "azion",
+ "azure",
+ "cf",
+ "clouddns",
+ "cloudns",
+ "cn",
+ "conoha",
+ "constellix",
+ "cx",
+ "cyon",
+ "da",
+ "ddnss",
+ "desec",
+ "df",
+ "dgon",
+ "dnsimple",
+ "do",
+ "doapi",
+ "domeneshop",
+ "dp",
+ "dpi",
+ "dreamhost",
+ "duckdns",
+ "durabledns",
+ "dyn",
+ "dynu",
+ "dynv6",
+ "easydns",
+ "edgedns",
+ "euserv",
+ "exoscale",
+ "freedns",
+ "gandi_livedns",
+ "gcloud",
+ "gd",
+ "gdnsdk",
+ "he",
+ "hetzner",
+ "hexonet",
+ "hostingde",
+ "huaweicloud",
+ "infoblox",
+ "infomaniak",
+ "internetbs",
+ "inwx",
+ "ionos",
+ "ispconfig",
+ "jd",
+ "joker",
+ "kappernet",
+ "kas",
+ "kinghost",
+ "knot",
+ "leaseweb",
+ "lexicon",
+ "linode",
+ "linode_v4",
+ "loopia",
+ "lua",
+ "maradns",
+ "me",
+ "miab",
+ "misaka",
+ "myapi",
+ "mydevil",
+ "mydnsjp",
+ "namecheap",
+ "namecom",
+ "namesilo",
+ "nederhost",
+ "neodigit",
+ "netcup",
+ "netlify",
+ "nic",
+ "njalla",
+ "nm",
+ "nsd",
+ "nsone",
+ "nsupdate",
+ "nw",
+ "oci",
+ "one",
+ "online",
+ "openprovider",
+ "openstack",
+ "opnsense",
+ "ovh",
+ "pdns",
+ "pleskxml",
+ "pointhq",
+ "porkbun",
+ "rackcorp",
+ "rackspace",
+ "rcode0",
+ "regru",
+ "scaleway",
+ "schlundtech",
+ "selectel",
+ "servercow",
+ "simply",
+ "tele3",
+ "transip",
+ "ultra",
+ "unoeuro",
+ "variomedia",
+ "veesp",
+ "vscale",
+ "vultr",
+ "websupport",
+ "world4you",
+ "yandex",
+ "zilore",
+ "zone",
+ "zonomi"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "data" : {
+ "description" : "DNS plugin data. (base64 encoded)",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disable" : {
+ "description" : "Flag to disable the config.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "id" : {
+ "description" : "ACME Plugin ID name",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nodes" : {
+ "description" : "List of cluster node names.",
+ "format" : "pve-node-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "validation-delay" : {
+ "default" : 30,
+ "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
+ "maximum" : 172800,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 172800)"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/acme/plugins/{id}",
+ "text" : "{id}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "ACME plugin index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "type" : {
+ "description" : "Only list ACME plugins of a specific type",
+ "enum" : [
+ "dns",
+ "standalone"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "plugin" : {
+ "description" : "Unique identifier for ACME plugin instance.",
+ "format" : "pve-configid",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{plugin}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Add ACME plugin configuration.",
+ "method" : "POST",
+ "name" : "add_plugin",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "api" : {
+ "description" : "API plugin name",
+ "enum" : [
+ "1984hosting",
+ "acmedns",
+ "acmeproxy",
+ "active24",
+ "ad",
+ "ali",
+ "anx",
+ "arvan",
+ "aurora",
+ "autodns",
+ "aws",
+ "azion",
+ "azure",
+ "cf",
+ "clouddns",
+ "cloudns",
+ "cn",
+ "conoha",
+ "constellix",
+ "cx",
+ "cyon",
+ "da",
+ "ddnss",
+ "desec",
+ "df",
+ "dgon",
+ "dnsimple",
+ "do",
+ "doapi",
+ "domeneshop",
+ "dp",
+ "dpi",
+ "dreamhost",
+ "duckdns",
+ "durabledns",
+ "dyn",
+ "dynu",
+ "dynv6",
+ "easydns",
+ "edgedns",
+ "euserv",
+ "exoscale",
+ "freedns",
+ "gandi_livedns",
+ "gcloud",
+ "gd",
+ "gdnsdk",
+ "he",
+ "hetzner",
+ "hexonet",
+ "hostingde",
+ "huaweicloud",
+ "infoblox",
+ "infomaniak",
+ "internetbs",
+ "inwx",
+ "ionos",
+ "ispconfig",
+ "jd",
+ "joker",
+ "kappernet",
+ "kas",
+ "kinghost",
+ "knot",
+ "leaseweb",
+ "lexicon",
+ "linode",
+ "linode_v4",
+ "loopia",
+ "lua",
+ "maradns",
+ "me",
+ "miab",
+ "misaka",
+ "myapi",
+ "mydevil",
+ "mydnsjp",
+ "namecheap",
+ "namecom",
+ "namesilo",
+ "nederhost",
+ "neodigit",
+ "netcup",
+ "netlify",
+ "nic",
+ "njalla",
+ "nm",
+ "nsd",
+ "nsone",
+ "nsupdate",
+ "nw",
+ "oci",
+ "one",
+ "online",
+ "openprovider",
+ "openstack",
+ "opnsense",
+ "ovh",
+ "pdns",
+ "pleskxml",
+ "pointhq",
+ "porkbun",
+ "rackcorp",
+ "rackspace",
+ "rcode0",
+ "regru",
+ "scaleway",
+ "schlundtech",
+ "selectel",
+ "servercow",
+ "simply",
+ "tele3",
+ "transip",
+ "ultra",
+ "unoeuro",
+ "variomedia",
+ "veesp",
+ "vscale",
+ "vultr",
+ "websupport",
+ "world4you",
+ "yandex",
+ "zilore",
+ "zone",
+ "zonomi"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "data" : {
+ "description" : "DNS plugin data. (base64 encoded)",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disable" : {
+ "description" : "Flag to disable the config.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "id" : {
+ "description" : "ACME Plugin ID name",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nodes" : {
+ "description" : "List of cluster node names.",
+ "format" : "pve-node-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "ACME challenge type.",
+ "enum" : [
+ "dns",
+ "standalone"
+ ],
+ "type" : "string"
+ },
+ "validation-delay" : {
+ "default" : 30,
+ "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
+ "maximum" : 172800,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 172800)"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/acme/plugins",
+ "text" : "plugins"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Deactivate existing ACME account at CA.",
+ "method" : "DELETE",
+ "name" : "deactivate_account",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "default" : "default",
+ "description" : "ACME account config file name.",
+ "format" : "pve-configid",
+ "format_description" : "name",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<name>"
+ }
+ }
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "string"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Return existing ACME account information.",
+ "method" : "GET",
+ "name" : "get_account",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "default" : "default",
+ "description" : "ACME account config file name.",
+ "format" : "pve-configid",
+ "format_description" : "name",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<name>"
+ }
+ }
+ },
+ "protected" : 1,
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "account" : {
+ "optional" : 1,
+ "renderer" : "yaml",
+ "type" : "object"
+ },
+ "directory" : {
+ "description" : "URL of ACME CA directory endpoint.",
+ "optional" : 1,
+ "pattern" : "^https?://.*",
+ "type" : "string"
+ },
+ "location" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "tos" : {
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.",
+ "method" : "PUT",
+ "name" : "update_account",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "contact" : {
+ "description" : "Contact email addresses.",
+ "format" : "email-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "default" : "default",
+ "description" : "ACME account config file name.",
+ "format" : "pve-configid",
+ "format_description" : "name",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<name>"
+ }
+ }
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/acme/account/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "ACMEAccount index.",
+ "method" : "GET",
+ "name" : "account_index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "protected" : 1,
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Register a new ACME account with CA.",
+ "method" : "POST",
+ "name" : "register_account",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "contact" : {
+ "description" : "Contact email addresses.",
+ "format" : "email-list",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "directory" : {
+ "default" : "https://acme-v02.api.letsencrypt.org/directory",
+ "description" : "URL of ACME CA directory endpoint.",
+ "optional" : 1,
+ "pattern" : "^https?://.*",
+ "type" : "string"
+ },
+ "name" : {
+ "default" : "default",
+ "description" : "ACME account config file name.",
+ "format" : "pve-configid",
+ "format_description" : "name",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<name>"
+ },
+ "tos_url" : {
+ "description" : "URL of CA TermsOfService - setting this indicates agreement.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/acme/account",
+ "text" : "account"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Retrieve ACME TermsOfService URL from CA.",
+ "method" : "GET",
+ "name" : "get_tos",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "directory" : {
+ "default" : "https://acme-v02.api.letsencrypt.org/directory",
+ "description" : "URL of ACME CA directory endpoint.",
+ "optional" : 1,
+ "pattern" : "^https?://.*",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "description" : "ACME TermsOfService URL.",
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/acme/tos",
+ "text" : "tos"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get named known ACME directory endpoints.",
+ "method" : "GET",
+ "name" : "get_directories",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "type" : "string"
+ },
+ "url" : {
+ "description" : "URL of ACME CA directory endpoint.",
+ "pattern" : "^https?://.*",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/acme/directories",
+ "text" : "directories"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get schema of ACME challenge types.",
+ "method" : "GET",
+ "name" : "challengeschema",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "Human readable name, falls back to id",
+ "type" : "string"
+ },
+ "schema" : {
+ "type" : "object"
+ },
+ "type" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/acme/challenge-schema",
+ "text" : "challenge-schema"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "ACMEAccount index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/acme",
+ "text" : "acme"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get ceph metadata.",
+ "method" : "GET",
+ "name" : "metadata",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "scope" : {
+ "default" : "all",
+ "enum" : [
+ "all",
+ "versions"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ceph/metadata",
+ "text" : "metadata"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get ceph status.",
+ "method" : "GET",
+ "name" : "status",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ceph/status",
+ "text" : "status"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get the status of a specific ceph flag.",
+ "method" : "GET",
+ "name" : "get_flag",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "flag" : {
+ "description" : "The name of the flag name to get.",
+ "enum" : [
+ "nobackfill",
+ "nodeep-scrub",
+ "nodown",
+ "noin",
+ "noout",
+ "norebalance",
+ "norecover",
+ "noscrub",
+ "notieragent",
+ "noup",
+ "pause"
+ ],
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "boolean"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Set or clear (unset) a specific ceph flag",
+ "method" : "PUT",
+ "name" : "update_flag",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "flag" : {
+ "description" : "The ceph flag to update",
+ "enum" : [
+ "nobackfill",
+ "nodeep-scrub",
+ "nodown",
+ "noin",
+ "noout",
+ "norebalance",
+ "norecover",
+ "noscrub",
+ "notieragent",
+ "noup",
+ "pause"
+ ],
+ "type" : "string"
+ },
+ "value" : {
+ "description" : "The new value of the flag",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ceph/flags/{flag}",
+ "text" : "{flag}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "get the status of all ceph flags",
+ "method" : "GET",
+ "name" : "get_all_flags",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "items" : {
+ "additionalProperties" : 1,
+ "properties" : {
+ "name" : {
+ "description" : "Flag name.",
+ "enum" : [
+ "nobackfill",
+ "nodeep-scrub",
+ "nodown",
+ "noin",
+ "noout",
+ "norebalance",
+ "norecover",
+ "noscrub",
+ "notieragent",
+ "noup",
+ "pause"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Set/Unset multiple ceph flags at once.",
+ "method" : "PUT",
+ "name" : "set_flags",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "nobackfill" : {
+ "description" : "Backfilling of PGs is suspended.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "nodeep-scrub" : {
+ "description" : "Deep Scrubbing is disabled.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "nodown" : {
+ "description" : "OSD failure reports are being ignored, such that the monitors will not mark OSDs down.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "noin" : {
+ "description" : "OSDs that were previously marked out will not be marked back in when they start.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "noout" : {
+ "description" : "OSDs will not automatically be marked out after the configured interval.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "norebalance" : {
+ "description" : "Rebalancing of PGs is suspended.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "norecover" : {
+ "description" : "Recovery of PGs is suspended.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "noscrub" : {
+ "description" : "Scrubbing is disabled.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "notieragent" : {
+ "description" : "Cache tiering activity is suspended.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "noup" : {
+ "description" : "OSDs are not allowed to start.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "pause" : {
+ "description" : "Pauses read and writes.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/ceph/flags",
+ "text" : "flags"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Cluster ceph index.",
+ "method" : "GET",
+ "name" : "cephindex",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/ceph",
+ "text" : "ceph"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Returns a list of future schedule runtimes.",
+ "method" : "GET",
+ "name" : "schedule-analyze",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "iterations" : {
+ "default" : 10,
+ "description" : "Number of event-iteration to simulate and return.",
+ "maximum" : 100,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 100)"
+ },
+ "schedule" : {
+ "description" : "Job schedule. The format is a subset of `systemd` calendar events.",
+ "format" : "pve-calendar-event",
+ "maxLength" : 128,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "starttime" : {
+ "description" : "UNIX timestamp to start the calculation from. Defaults to the current time.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "description" : "An array of the next <iterations> events since <starttime>.",
+ "items" : {
+ "properties" : {
+ "timestamp" : {
+ "description" : "UNIX timestamp for the run.",
+ "type" : "integer"
+ },
+ "utc" : {
+ "description" : "UTC timestamp for the run.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/jobs/schedule-analyze",
+ "text" : "schedule-analyze"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Index for jobs related endpoints.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "description" : "Directory index.",
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "description" : "API sub-directory endpoint",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/jobs",
+ "text" : "jobs"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete sdn subnet object configuration.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "subnet" : {
+ "description" : "The SDN subnet object identifier.",
+ "format" : "pve-sdn-subnet-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vnet" : {
+ "description" : "The SDN vnet object identifier.",
+ "format" : "pve-sdn-vnet-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/vnets/{vnet}/subnets",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read sdn subnet configuration.",
+ "method" : "GET",
+ "name" : "read",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "pending" : {
+ "description" : "Display pending config.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "running" : {
+ "description" : "Display running config.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "subnet" : {
+ "description" : "The SDN subnet object identifier.",
+ "format" : "pve-sdn-subnet-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vnet" : {
+ "description" : "The SDN vnet object identifier.",
+ "format" : "pve-sdn-vnet-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/vnets/{vnet}/subnets/{subnet}",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update sdn subnet object configuration.",
+ "method" : "PUT",
+ "name" : "update",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dnszoneprefix" : {
+ "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
+ "format" : "dns-name",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "gateway" : {
+ "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
+ "format" : "ip",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snat" : {
+ "description" : "enable masquerade for this subnet if pve-firewall",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "subnet" : {
+ "description" : "The SDN subnet object identifier.",
+ "format" : "pve-sdn-subnet-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vnet" : {
+ "description" : "associated vnet",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/vnets/{vnet}/subnets",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/sdn/vnets/{vnet}/subnets/{subnet}",
+ "text" : "{subnet}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "SDN subnets index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "pending" : {
+ "description" : "Display pending config.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "running" : {
+ "description" : "Display running config.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "vnet" : {
+ "description" : "The SDN vnet object identifier.",
+ "format" : "pve-sdn-vnet-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/subnets/<subnet>'",
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subnet}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a new sdn subnet object.",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "dnszoneprefix" : {
+ "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
+ "format" : "dns-name",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "gateway" : {
+ "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
+ "format" : "ip",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snat" : {
+ "description" : "enable masquerade for this subnet if pve-firewall",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "subnet" : {
+ "description" : "The SDN subnet object identifier.",
+ "format" : "pve-sdn-subnet-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "enum" : [
+ "subnet"
+ ],
+ "type" : "string"
+ },
+ "vnet" : {
+ "description" : "associated vnet",
+ "optional" : 0,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/vnets/{vnet}/subnets",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/sdn/vnets/{vnet}/subnets",
+ "text" : "subnets"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete sdn vnet object configuration.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "vnet" : {
+ "description" : "The SDN vnet object identifier.",
+ "format" : "pve-sdn-vnet-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/vnets",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read sdn vnet configuration.",
+ "method" : "GET",
+ "name" : "read",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "pending" : {
+ "description" : "Display pending config.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "running" : {
+ "description" : "Display running config.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "vnet" : {
+ "description" : "The SDN vnet object identifier.",
+ "format" : "pve-sdn-vnet-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/vnets/{vnet}",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update sdn vnet object configuration.",
+ "method" : "PUT",
+ "name" : "update",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "alias" : {
+ "description" : "alias name of the vnet",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
+ "type" : "string"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tag" : {
+ "description" : "vlan or vxlan id",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "vlanaware" : {
+ "description" : "Allow vm VLANs to pass through this vnet.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "vnet" : {
+ "description" : "The SDN vnet object identifier.",
+ "format" : "pve-sdn-vnet-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "zone" : {
+ "description" : "zone id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/vnets",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/sdn/vnets/{vnet}",
+ "text" : "{vnet}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "SDN vnets index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "pending" : {
+ "description" : "Display pending config.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "running" : {
+ "description" : "Display running config.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/vnets/<vnet>'",
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{vnet}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a new sdn vnet object.",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "alias" : {
+ "description" : "alias name of the vnet",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
+ "type" : "string"
+ },
+ "tag" : {
+ "description" : "vlan or vxlan id",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "type" : {
+ "description" : "Type",
+ "enum" : [
+ "vnet"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vlanaware" : {
+ "description" : "Allow vm VLANs to pass through this vnet.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "vnet" : {
+ "description" : "The SDN vnet object identifier.",
+ "format" : "pve-sdn-vnet-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "zone" : {
+ "description" : "zone id",
+ "optional" : 0,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/vnets",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/sdn/vnets",
+ "text" : "vnets"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete sdn zone object configuration.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "zone" : {
+ "description" : "The SDN zone object identifier.",
+ "format" : "pve-sdn-zone-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/zones",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read sdn zone configuration.",
+ "method" : "GET",
+ "name" : "read",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "pending" : {
+ "description" : "Display pending config.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "running" : {
+ "description" : "Display running config.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "zone" : {
+ "description" : "The SDN zone object identifier.",
+ "format" : "pve-sdn-zone-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/zones/{zone}",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update sdn zone object configuration.",
+ "method" : "PUT",
+ "name" : "update",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "advertise-subnets" : {
+ "description" : "Advertise evpn subnets if you have silent hosts",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "bridge" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "bridge-disable-mac-learning" : {
+ "description" : "Disable auto mac learning.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "controller" : {
+ "description" : "Frr router name",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disable-arp-nd-suppression" : {
+ "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "dns" : {
+ "description" : "dns api server",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dnszone" : {
+ "description" : "dns domain zone ex: mydomain.com",
+ "format" : "dns-name",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dp-id" : {
+ "description" : "Faucet dataplane id",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "exitnodes" : {
+ "description" : "List of cluster node names.",
+ "format" : "pve-node-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "exitnodes-local-routing" : {
+ "description" : "Allow exitnodes to connect to evpn guests",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "exitnodes-primary" : {
+ "description" : "Force traffic to this exitnode first.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ipam" : {
+ "description" : "use a specific ipam",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "mac" : {
+ "description" : "Anycast logical router mac address",
+ "format" : "mac-addr",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "mtu" : {
+ "description" : "MTU",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "nodes" : {
+ "description" : "List of cluster node names.",
+ "format" : "pve-node-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "peers" : {
+ "description" : "peers address list.",
+ "format" : "ip-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "reversedns" : {
+ "description" : "reverse dns api server",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "rt-import" : {
+ "description" : "Route-Target import",
+ "format" : "pve-sdn-bgp-rt-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tag" : {
+ "description" : "Service-VLAN Tag",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "vlan-protocol" : {
+ "default" : "802.1q",
+ "enum" : [
+ "802.1q",
+ "802.1ad"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vrf-vxlan" : {
+ "description" : "l3vni.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "zone" : {
+ "description" : "The SDN zone object identifier.",
+ "format" : "pve-sdn-zone-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/zones",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/sdn/zones/{zone}",
+ "text" : "{zone}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "SDN zones index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "pending" : {
+ "description" : "Display pending config.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "running" : {
+ "description" : "Display running config.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "type" : {
+ "description" : "Only list SDN zones of specific type",
+ "enum" : [
+ "evpn",
+ "faucet",
+ "qinq",
+ "simple",
+ "vlan",
+ "vxlan"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>'",
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "dns" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dnszone" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ipam" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "mtu" : {
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "nodes" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "pending" : {
+ "optional" : 1
+ },
+ "reversedns" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "state" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "type" : "string"
+ },
+ "zone" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{zone}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a new sdn zone object.",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "advertise-subnets" : {
+ "description" : "Advertise evpn subnets if you have silent hosts",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "bridge" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "bridge-disable-mac-learning" : {
+ "description" : "Disable auto mac learning.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "controller" : {
+ "description" : "Frr router name",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disable-arp-nd-suppression" : {
+ "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "dns" : {
+ "description" : "dns api server",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dnszone" : {
+ "description" : "dns domain zone ex: mydomain.com",
+ "format" : "dns-name",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dp-id" : {
+ "description" : "Faucet dataplane id",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "exitnodes" : {
+ "description" : "List of cluster node names.",
+ "format" : "pve-node-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "exitnodes-local-routing" : {
+ "description" : "Allow exitnodes to connect to evpn guests",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "exitnodes-primary" : {
+ "description" : "Force traffic to this exitnode first.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ipam" : {
+ "description" : "use a specific ipam",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "mac" : {
+ "description" : "Anycast logical router mac address",
+ "format" : "mac-addr",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "mtu" : {
+ "description" : "MTU",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "nodes" : {
+ "description" : "List of cluster node names.",
+ "format" : "pve-node-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "peers" : {
+ "description" : "peers address list.",
+ "format" : "ip-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "reversedns" : {
+ "description" : "reverse dns api server",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "rt-import" : {
+ "description" : "Route-Target import",
+ "format" : "pve-sdn-bgp-rt-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tag" : {
+ "description" : "Service-VLAN Tag",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "type" : {
+ "description" : "Plugin type.",
+ "enum" : [
+ "evpn",
+ "faucet",
+ "qinq",
+ "simple",
+ "vlan",
+ "vxlan"
+ ],
+ "format" : "pve-configid",
+ "type" : "string"
+ },
+ "vlan-protocol" : {
+ "default" : "802.1q",
+ "enum" : [
+ "802.1q",
+ "802.1ad"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vrf-vxlan" : {
+ "description" : "l3vni.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "zone" : {
+ "description" : "The SDN zone object identifier.",
+ "format" : "pve-sdn-zone-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/zones",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/sdn/zones",
+ "text" : "zones"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete sdn controller object configuration.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "controller" : {
+ "description" : "The SDN controller object identifier.",
+ "format" : "pve-sdn-controller-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/controllers",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read sdn controller configuration.",
+ "method" : "GET",
+ "name" : "read",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "controller" : {
+ "description" : "The SDN controller object identifier.",
+ "format" : "pve-sdn-controller-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pending" : {
+ "description" : "Display pending config.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "running" : {
+ "description" : "Display running config.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/controllers/{controller}",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update sdn controller object configuration.",
+ "method" : "PUT",
+ "name" : "update",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "asn" : {
+ "description" : "autonomous system number",
+ "maximum" : 4294967296,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 4294967296)"
+ },
+ "bgp-multipath-as-path-relax" : {
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "controller" : {
+ "description" : "The SDN controller object identifier.",
+ "format" : "pve-sdn-controller-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ebgp" : {
+ "description" : "Enable ebgp. (remote-as external)",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "ebgp-multihop" : {
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "loopback" : {
+ "description" : "source loopback interface.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "peers" : {
+ "description" : "peers address list.",
+ "format" : "ip-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/controllers",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/sdn/controllers/{controller}",
+ "text" : "{controller}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "SDN controllers index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "pending" : {
+ "description" : "Display pending config.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "running" : {
+ "description" : "Display running config.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "type" : {
+ "description" : "Only list sdn controllers of specific type",
+ "enum" : [
+ "bgp",
+ "evpn",
+ "faucet"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/controllers/<controller>'",
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "controller" : {
+ "type" : "string"
+ },
+ "pending" : {
+ "optional" : 1
+ },
+ "state" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{controller}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a new sdn controller object.",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "asn" : {
+ "description" : "autonomous system number",
+ "maximum" : 4294967296,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 4294967296)"
+ },
+ "bgp-multipath-as-path-relax" : {
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "controller" : {
+ "description" : "The SDN controller object identifier.",
+ "format" : "pve-sdn-controller-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ebgp" : {
+ "description" : "Enable ebgp. (remote-as external)",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "ebgp-multihop" : {
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "loopback" : {
+ "description" : "source loopback interface.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "peers" : {
+ "description" : "peers address list.",
+ "format" : "ip-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Plugin type.",
+ "enum" : [
+ "bgp",
+ "evpn",
+ "faucet"
+ ],
+ "format" : "pve-configid",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/controllers",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/sdn/controllers",
+ "text" : "controllers"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete sdn ipam object configuration.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "ipam" : {
+ "description" : "The SDN ipam object identifier.",
+ "format" : "pve-sdn-ipam-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/ipams",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read sdn ipam configuration.",
+ "method" : "GET",
+ "name" : "read",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "ipam" : {
+ "description" : "The SDN ipam object identifier.",
+ "format" : "pve-sdn-ipam-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/ipams/{ipam}",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update sdn ipam object configuration.",
+ "method" : "PUT",
+ "name" : "update",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ipam" : {
+ "description" : "The SDN ipam object identifier.",
+ "format" : "pve-sdn-ipam-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "section" : {
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "token" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "url" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/ipams",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/sdn/ipams/{ipam}",
+ "text" : "{ipam}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "SDN ipams index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "type" : {
+ "description" : "Only list sdn ipams of specific type",
+ "enum" : [
+ "netbox",
+ "phpipam",
+ "pve"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/ipams/<ipam>'",
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "ipam" : {
+ "type" : "string"
+ },
+ "type" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{ipam}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a new sdn ipam object.",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "ipam" : {
+ "description" : "The SDN ipam object identifier.",
+ "format" : "pve-sdn-ipam-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "section" : {
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "token" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Plugin type.",
+ "enum" : [
+ "netbox",
+ "phpipam",
+ "pve"
+ ],
+ "format" : "pve-configid",
+ "type" : "string"
+ },
+ "url" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/ipams",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/sdn/ipams",
+ "text" : "ipams"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete sdn dns object configuration.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "dns" : {
+ "description" : "The SDN dns object identifier.",
+ "format" : "pve-sdn-dns-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/dns",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read sdn dns configuration.",
+ "method" : "GET",
+ "name" : "read",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "dns" : {
+ "description" : "The SDN dns object identifier.",
+ "format" : "pve-sdn-dns-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/dns/{dns}",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update sdn dns object configuration.",
+ "method" : "PUT",
+ "name" : "update",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dns" : {
+ "description" : "The SDN dns object identifier.",
+ "format" : "pve-sdn-dns-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "key" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "reversemaskv6" : {
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "ttl" : {
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "url" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/dns",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/sdn/dns/{dns}",
+ "text" : "{dns}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "SDN dns index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "type" : {
+ "description" : "Only list sdn dns of specific type",
+ "enum" : [
+ "powerdns"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/dns/<dns>'",
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "dns" : {
+ "type" : "string"
+ },
+ "type" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{dns}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a new sdn dns object.",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "dns" : {
+ "description" : "The SDN dns object identifier.",
+ "format" : "pve-sdn-dns-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "key" : {
+ "optional" : 0,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "reversemaskv6" : {
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "reversev6mask" : {
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "ttl" : {
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "type" : {
+ "description" : "Plugin type.",
+ "enum" : [
+ "powerdns"
+ ],
+ "format" : "pve-configid",
+ "type" : "string"
+ },
+ "url" : {
+ "optional" : 0,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/dns",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/sdn/dns",
+ "text" : "dns"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "SDN.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "id" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{id}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Apply sdn controller changes && reload.",
+ "method" : "PUT",
+ "name" : "reload",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/sdn",
+ "text" : "sdn"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read cluster log",
+ "method" : "GET",
+ "name" : "log",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "max" : {
+ "description" : "Maximum number of entries.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/log",
+ "text" : "log"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Resources index (cluster wide).",
+ "method" : "GET",
+ "name" : "resources",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "type" : {
+ "enum" : [
+ "vm",
+ "storage",
+ "node",
+ "sdn"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "content" : {
+ "description" : "Allowed storage content types (when type == storage).",
+ "format" : "pve-storage-content-list",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cpu" : {
+ "description" : "CPU utilization (when type in node,qemu,lxc).",
+ "optional" : 1,
+ "renderer" : "fraction_as_percentage",
+ "type" : "number"
+ },
+ "disk" : {
+ "description" : "Used disk space in bytes (when type in storage), used root image spave for VMs (type in qemu,lxc).",
+ "optional" : 1,
+ "renderer" : "bytes",
+ "type" : "string"
+ },
+ "hastate" : {
+ "description" : "HA service status (for HA managed VMs).",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "id" : {
+ "type" : "string"
+ },
+ "level" : {
+ "description" : "Support level (when type == node).",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "maxcpu" : {
+ "description" : "Number of available CPUs (when type in node,qemu,lxc).",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "maxdisk" : {
+ "description" : "Storage size in bytes (when type in storage), root image size for VMs (type in qemu,lxc).",
+ "optional" : 1,
+ "renderer" : "bytes",
+ "type" : "integer"
+ },
+ "maxmem" : {
+ "description" : "Number of available memory in bytes (when type in node,qemu,lxc).",
+ "optional" : 1,
+ "renderer" : "bytes",
+ "type" : "integer"
+ },
+ "mem" : {
+ "description" : "Used memory in bytes (when type in node,qemu,lxc).",
+ "optional" : 1,
+ "renderer" : "bytes",
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "Name of the resource.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name (when type in node,storage,qemu,lxc).",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "plugintype" : {
+ "description" : "More specific type, if available.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "pool" : {
+ "description" : "The pool name (when type in pool,qemu,lxc).",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "status" : {
+ "description" : "Resource type dependent status.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "storage" : {
+ "description" : "The storage identifier (when type == storage).",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "Resource type.",
+ "enum" : [
+ "node",
+ "storage",
+ "pool",
+ "qemu",
+ "lxc",
+ "openvz",
+ "sdn"
+ ],
+ "type" : "string"
+ },
+ "uptime" : {
+ "description" : "Node uptime in seconds (when type in node,qemu,lxc).",
+ "optional" : 1,
+ "renderer" : "duration",
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/resources",
+ "text" : "resources"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List recent tasks (cluster wide).",
+ "method" : "GET",
+ "name" : "tasks",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "upid" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/tasks",
+ "text" : "tasks"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get datacenter options.",
+ "method" : "GET",
+ "name" : "get_options",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Set datacenter options.",
+ "method" : "PUT",
+ "name" : "set_options",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "bwlimit" : {
+ "description" : "Set bandwidth/io limits various operations.",
+ "format" : {
+ "clone" : {
+ "description" : "bandwidth limit in KiB/s for cloning disks",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "default" : {
+ "description" : "default bandwidth limit in KiB/s",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "migration" : {
+ "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "move" : {
+ "description" : "bandwidth limit in KiB/s for moving disks",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "restore" : {
+ "description" : "bandwidth limit in KiB/s for restoring guests from backups",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
+ },
+ "console" : {
+ "description" : "Select the default Console viewer. You can either use the builtin java applet (VNC; deprecated and maps to html5), an external virt-viewer comtatible application (SPICE), an HTML5 based vnc viewer (noVNC), or an HTML5 based console client (xtermjs). If the selected viewer is not available (e.g. SPICE not activated for the VM), the fallback is noVNC.",
+ "enum" : [
+ "applet",
+ "vv",
+ "html5",
+ "xtermjs"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "description" : {
+ "description" : "Datacenter description. Shown in the web-interface datacenter notes panel. This is saved as comment inside the configuration file.",
+ "maxLength" : 65536,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "email_from" : {
+ "description" : "Specify email address to send notification from (default is root@$hostname)",
+ "format" : "email-opt",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "fencing" : {
+ "default" : "watchdog",
+ "description" : "Set the fencing mode of the HA cluster. Hardware mode needs a valid configuration of fence devices in /etc/pve/ha/fence.cfg. With both all two modes are used.\n\nWARNING: 'hardware' and 'both' are EXPERIMENTAL & WIP",
+ "enum" : [
+ "watchdog",
+ "hardware",
+ "both"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ha" : {
+ "description" : "Cluster wide HA settings.",
+ "format" : {
+ "shutdown_policy" : {
+ "default" : "conditional",
+ "description" : "The policy for HA services on node shutdown. 'freeze' disables auto-recovery, 'failover' ensures recovery, 'conditional' recovers on poweroff and freezes on reboot. 'migrate' will migrate running services to other nodes, if possible. With 'freeze' or 'failover', HA Services will always get stopped first on shutdown.",
+ "enum" : [
+ "freeze",
+ "failover",
+ "conditional",
+ "migrate"
+ ],
+ "type" : "string",
+ "verbose_description" : "Describes the policy for handling HA services on poweroff or reboot of a node. Freeze will always freeze services which are still located on the node on shutdown, those services won't be recovered by the HA manager. Failover will not mark the services as frozen and thus the services will get recovered to other nodes, if the shutdown node does not come up again quickly (< 1min). 'conditional' chooses automatically depending on the type of shutdown, i.e., on a reboot the service will be frozen but on a poweroff the service will stay as is, and thus get recovered after about 2 minutes. Migrate will try to move all running services to another node when a reboot or shutdown was triggered. The poweroff process will only continue once no running services are located on the node anymore. If the node comes up again, the service will be moved back to the previously powered-off node, at least if no other migration, reloaction or recovery took place."
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "shutdown_policy=<enum>"
+ },
+ "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" : [
+ "ca",
+ "da",
+ "de",
+ "en",
+ "es",
+ "eu",
+ "fa",
+ "fr",
+ "he",
+ "it",
+ "ja",
+ "nb",
+ "nn",
+ "pl",
+ "pt_BR",
+ "ru",
+ "sl",
+ "sv",
+ "tr",
+ "zh_CN",
+ "zh_TW"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "mac_prefix" : {
+ "description" : "Prefix for autogenerated MAC addresses.",
+ "format" : "mac-prefix",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "max_workers" : {
+ "description" : "Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "migration" : {
+ "description" : "For cluster wide migration settings.",
+ "format" : {
+ "network" : {
+ "description" : "CIDR of the (sub) network that is used for migration.",
+ "format" : "CIDR",
+ "format_description" : "CIDR",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "default" : "secure",
+ "default_key" : 1,
+ "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
+ "enum" : [
+ "secure",
+ "insecure"
+ ],
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[type=]<secure|insecure> [,network=<CIDR>]"
+ },
+ "migration_unsecure" : {
+ "description" : "Migration is secure using SSH tunnel by default. For secure private networks you can disable it to speed up migration. Deprecated, use the 'migration' property instead!",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "next-id" : {
+ "description" : "Control the range for the free VMID auto-selection pool.",
+ "format" : {
+ "lower" : {
+ "default" : 100,
+ "description" : "Lower, inclusive boundary for free next-id API range.",
+ "max" : 999999999,
+ "min" : 100,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "upper" : {
+ "default" : 1000000,
+ "description" : "Upper, exclusive boundary for free next-id API range.",
+ "max" : 999999999,
+ "min" : 100,
+ "optional" : 1,
+ "type" : "integer"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[lower=<integer>] [,upper=<integer>]"
+ },
+ "u2f" : {
+ "description" : "u2f",
+ "format" : {
+ "appid" : {
+ "description" : "U2F AppId URL override. Defaults to the origin.",
+ "format_description" : "APPID",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "origin" : {
+ "description" : "U2F Origin override. Mostly useful for single nodes with a single URL.",
+ "format_description" : "URL",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[appid=<APPID>] [,origin=<URL>]"
+ },
+ "webauthn" : {
+ "description" : "webauthn configuration",
+ "format" : {
+ "id" : {
+ "description" : "Relying part ID. Must be the domain name without protocol, port or location. Changing this *will* break existing credentials.",
+ "format_description" : "DOMAINNAME",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "origin" : {
+ "description" : "Site origin. Must be a `https://` URL (or `http://localhost`). Should contain the address users type in their browsers to access the web interface. Changing this *may* break existing credentials.",
+ "format_description" : "URL",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "rp" : {
+ "description" : "Relying party name. Any text identifier. Changing this *may* break existing credentials.",
+ "format_description" : "RELYING_PARTY",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[id=<DOMAINNAME>] [,origin=<URL>] [,rp=<RELYING_PARTY>]"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/options",
+ "text" : "options"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get cluster status information.",
+ "method" : "GET",
+ "name" : "get_status",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "id" : {
+ "type" : "string"
+ },
+ "ip" : {
+ "description" : "[node] IP of the resolved nodename.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "level" : {
+ "description" : "[node] Proxmox VE Subscription level, indicates if eligible for enterprise support as well as access to the stable Proxmox VE Enterprise Repository.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "local" : {
+ "description" : "[node] Indicates if this is the responding node.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "name" : {
+ "type" : "string"
+ },
+ "nodeid" : {
+ "description" : "[node] ID of the node from the corosync configuration.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "nodes" : {
+ "description" : "[cluster] Nodes count, including offline nodes.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "online" : {
+ "description" : "[node] Indicates if the node is online or offline.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "quorate" : {
+ "description" : "[cluster] Indicates if there is a majority of nodes online to make decisions",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "type" : {
+ "description" : "Indicates the type, either cluster or node. The type defines the object properties e.g. quorate available for type cluster.",
+ "enum" : [
+ "cluster",
+ "node"
+ ],
+ "type" : "string"
+ },
+ "version" : {
+ "description" : "[cluster] Current version of the corosync configuration file.",
+ "optional" : 1,
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/status",
+ "text" : "status"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get next free VMID. Pass a VMID to assert that its free (at time of check).",
+ "method" : "GET",
+ "name" : "nextid",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "description" : "The next free VMID.",
+ "type" : "integer"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/nextid",
+ "text" : "nextid"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Cluster index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster",
+ "text" : "cluster"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 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.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get single rule data.",
+ "method" : "GET",
+ "name" : "get_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "proxyto" : null,
+ "returns" : {
+ "properties" : {
+ "action" : {
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dest" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dport" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "enable" : {
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "icmp-type" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "iface" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ipversion" : {
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "pos" : {
+ "type" : "integer"
+ },
+ "proto" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "source" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "sport" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Modify rule data.",
+ "method" : "PUT",
+ "name" : "update_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "comment" : {
+ "description" : "Descriptive comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dest" : {
+ "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dport" : {
+ "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-dport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "icmp-type" : {
+ "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+ "format" : "pve-fw-icmp-type-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "iface" : {
+ "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "moveto" : {
+ "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "proto" : {
+ "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "format" : "pve-fw-protocol-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "source" : {
+ "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Rule type.",
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}",
+ "text" : "{pos}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List rules.",
+ "method" : "GET",
+ "name" : "get_rules",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "proxyto" : null,
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "pos" : {
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{pos}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create new rule.",
+ "method" : "POST",
+ "name" : "create_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 0,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "comment" : {
+ "description" : "Descriptive comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dest" : {
+ "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dport" : {
+ "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-dport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "icmp-type" : {
+ "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+ "format" : "pve-fw-icmp-type-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "iface" : {
+ "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "proto" : {
+ "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "format" : "pve-fw-protocol-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "source" : {
+ "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Rule type.",
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 0,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules",
+ "text" : "rules"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Remove IP or Network alias.",
+ "method" : "DELETE",
+ "name" : "remove_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read alias.",
+ "method" : "GET",
+ "name" : "read_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update IP or Network alias.",
+ "method" : "PUT",
+ "name" : "update_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "rename" : {
+ "description" : "Rename an existing alias.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "optional" : 1,
"pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List aliases",
+ "method" : "GET",
+ "name" : "get_aliases",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "cidr" : {
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "name" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create IP or Network Alias.",
+ "method" : "POST",
+ "name" : "create_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases",
+ "text" : "aliases"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Remove IP or Network from IPSet.",
+ "method" : "DELETE",
+ "name" : "remove_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "comment" : {
- "type" : "string",
- "optional" : 1
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
},
- "dest" : {
- "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "optional" : 1,
- "format" : "pve-fw-addr-spec",
- "type" : "string"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read IP or Network settings from IPSet.",
+ "method" : "GET",
+ "name" : "read_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "type" : {
- "optional" : 1,
- "enum" : [
- "in",
- "out",
- "group"
- ],
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update IP or Network settings",
+ "method" : "PUT",
+ "name" : "update_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}",
+ "text" : "{cidr}"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "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"
},
- "proto" : {
- "optional" : 1,
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
- "format" : "pve-fw-protocol-spec",
- "type" : "string"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "dport" : {
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "optional" : 1,
- "format" : "pve-fw-dport-spec",
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List IPSet content",
+ "method" : "GET",
+ "name" : "get_ipset",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
"type" : "string"
},
- "enable" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "moveto" : {
- "minimum" : 0,
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "optional" : 1,
- "description" : "Move rule to new position <moveto>. Other arguments are ignored."
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "cidr" : {
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean"
+ }
},
- "delete" : {
- "format" : "pve-configid-list",
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{cidr}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Add IP or Network to IPSet.",
+ "method" : "POST",
+ "name" : "create_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
"type" : "string",
- "optional" : 1,
- "description" : "A list of settings you want to delete."
+ "typetext" : "<string>"
},
- "sport" : {
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "comment" : {
"optional" : 1,
"type" : "string",
- "format" : "pve-fw-sport-spec"
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
},
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
"minimum" : 1,
"type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- },
- "macro" : {
- "type" : "string",
- "maxLength" : 128,
- "optional" : 1
+ "typetext" : "<integer> (1 - N)"
}
}
},
- "proxyto" : null,
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List IPSets",
+ "method" : "GET",
+ "name" : "ipset_index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create new IPSet",
+ "method" : "POST",
+ "name" : "create_ipset",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "rename" : {
+ "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "optional" : 1,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset",
+ "text" : "ipset"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get VM firewall options.",
+ "method" : "GET",
+ "name" : "get_options",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "dhcp" : {
+ "default" : 0,
+ "description" : "Enable DHCP.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "enable" : {
+ "default" : 0,
+ "description" : "Enable/disable firewall rules.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ipfilter" : {
+ "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "log_level_in" : {
+ "description" : "Log level for incoming traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "log_level_out" : {
+ "description" : "Log level for outgoing traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macfilter" : {
+ "default" : 0,
+ "description" : "Enable/disable MAC address filter.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ndp" : {
+ "default" : 0,
+ "description" : "Enable NDP (Neighbor Discovery Protocol).",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "policy_in" : {
+ "description" : "Input policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "policy_out" : {
+ "description" : "Output policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "radv" : {
+ "description" : "Allow sending Router Advertisement.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Set Firewall options.",
+ "method" : "PUT",
+ "name" : "set_options",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dhcp" : {
+ "default" : 0,
+ "description" : "Enable DHCP.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "default" : 0,
+ "description" : "Enable/disable firewall rules.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "ipfilter" : {
+ "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "log_level_in" : {
+ "description" : "Log level for incoming traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "log_level_out" : {
+ "description" : "Log level for outgoing traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macfilter" : {
+ "default" : 0,
+ "description" : "Enable/disable MAC address filter.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "ndp" : {
+ "default" : 0,
+ "description" : "Enable NDP (Neighbor Discovery Protocol).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "policy_in" : {
+ "description" : "Input policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "policy_out" : {
+ "description" : "Output policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "radv" : {
+ "description" : "Allow sending Router Advertisement.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/options",
+ "text" : "options"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read firewall log",
+ "method" : "GET",
+ "name" : "log",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "limit" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "start" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "n" : {
+ "description" : "Line number",
+ "type" : "integer"
+ },
+ "t" : {
+ "description" : "Line text",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/log",
+ "text" : "log"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
+ "method" : "GET",
+ "name" : "refs",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Only list references of specified type.",
+ "enum" : [
+ "alias",
+ "ipset"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "type" : "string"
+ },
+ "type" : {
+ "enum" : [
+ "alias",
+ "ipset"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall/refs",
+ "text" : "refs"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/firewall",
+ "text" : "firewall"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Execute fsfreeze-freeze.",
+ "method" : "POST",
+ "name" : "fsfreeze-freeze",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-freeze",
+ "text" : "fsfreeze-freeze"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Execute fsfreeze-status.",
+ "method" : "POST",
+ "name" : "fsfreeze-status",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-status",
+ "text" : "fsfreeze-status"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Execute fsfreeze-thaw.",
+ "method" : "POST",
+ "name" : "fsfreeze-thaw",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-thaw",
+ "text" : "fsfreeze-thaw"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Execute fstrim.",
+ "method" : "POST",
+ "name" : "fstrim",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/fstrim",
+ "text" : "fstrim"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Execute get-fsinfo.",
+ "method" : "GET",
+ "name" : "get-fsinfo",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/get-fsinfo",
+ "text" : "get-fsinfo"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Execute get-host-name.",
+ "method" : "GET",
+ "name" : "get-host-name",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/get-host-name",
+ "text" : "get-host-name"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Execute get-memory-block-info.",
+ "method" : "GET",
+ "name" : "get-memory-block-info",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-block-info",
+ "text" : "get-memory-block-info"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Execute get-memory-blocks.",
+ "method" : "GET",
+ "name" : "get-memory-blocks",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-blocks",
+ "text" : "get-memory-blocks"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Execute get-osinfo.",
+ "method" : "GET",
+ "name" : "get-osinfo",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/get-osinfo",
+ "text" : "get-osinfo"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Execute get-time.",
+ "method" : "GET",
+ "name" : "get-time",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/get-time",
+ "text" : "get-time"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Execute get-timezone.",
+ "method" : "GET",
+ "name" : "get-timezone",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/get-timezone",
+ "text" : "get-timezone"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Execute get-users.",
+ "method" : "GET",
+ "name" : "get-users",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/get-users",
+ "text" : "get-users"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Execute get-vcpus.",
+ "method" : "GET",
+ "name" : "get-vcpus",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/get-vcpus",
+ "text" : "get-vcpus"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Execute info.",
+ "method" : "GET",
+ "name" : "info",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/info",
+ "text" : "info"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Execute network-get-interfaces.",
+ "method" : "GET",
+ "name" : "network-get-interfaces",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/network-get-interfaces",
+ "text" : "network-get-interfaces"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Execute ping.",
+ "method" : "POST",
+ "name" : "ping",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/ping",
+ "text" : "ping"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Execute shutdown.",
+ "method" : "POST",
+ "name" : "shutdown",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/shutdown",
+ "text" : "shutdown"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Execute suspend-disk.",
+ "method" : "POST",
+ "name" : "suspend-disk",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-disk",
+ "text" : "suspend-disk"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Execute suspend-hybrid.",
+ "method" : "POST",
+ "name" : "suspend-hybrid",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-hybrid",
+ "text" : "suspend-hybrid"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Execute suspend-ram.",
+ "method" : "POST",
+ "name" : "suspend-ram",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-ram",
+ "text" : "suspend-ram"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Sets the password for the given user to the given password",
+ "method" : "POST",
+ "name" : "set-user-password",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "crypted" : {
+ "default" : 0,
+ "description" : "set to 1 if the password has already been passed through crypt()",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "password" : {
+ "description" : "The new password.",
+ "maxLength" : 1024,
+ "minLength" : 5,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "username" : {
+ "description" : "The user to set the password for.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/set-user-password",
+ "text" : "set-user-password"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Executes the given command in the vm via the guest-agent and returns an object with the pid.",
+ "method" : "POST",
+ "name" : "exec",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "command" : {
+ "description" : "The command as a list of program + arguments",
+ "format" : "string-alist",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "input-data" : {
+ "description" : "Data to pass as 'input-data' to the guest. Usually treated as STDIN to 'command'.",
+ "maxLength" : 65536,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "pid" : {
+ "description" : "The PID of the process started by the guest-agent.",
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/exec",
+ "text" : "exec"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Gets the status of the given pid started by the guest-agent",
+ "method" : "GET",
+ "name" : "exec-status",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pid" : {
+ "description" : "The PID to query",
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "err-data" : {
+ "description" : "stderr of the process",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "err-truncated" : {
+ "description" : "true if stderr was not fully captured",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "exitcode" : {
+ "description" : "process exit code if it was normally terminated.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "exited" : {
+ "description" : "Tells if the given command has exited yet.",
+ "type" : "boolean"
+ },
+ "out-data" : {
+ "description" : "stdout of the process",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "out-truncated" : {
+ "description" : "true if stdout was not fully captured",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "signal" : {
+ "description" : "signal number or exception code if the process was abnormally terminated.",
+ "optional" : 1,
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/exec-status",
+ "text" : "exec-status"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Reads the given file via guest agent. Is limited to 16777216 bytes.",
+ "method" : "GET",
+ "name" : "file-read",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "file" : {
+ "description" : "The path to the file",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a `content` property.",
+ "properties" : {
+ "content" : {
+ "description" : "The content of the file, maximum 16777216",
+ "type" : "string"
+ },
+ "truncated" : {
+ "description" : "If set to 1, the output is truncated and not complete",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/file-read",
+ "text" : "file-read"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Writes the given file via guest agent.",
+ "method" : "POST",
+ "name" : "file-write",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "content" : {
+ "description" : "The content to write into the file.",
+ "maxLength" : 61440,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "encode" : {
+ "default" : 1,
+ "description" : "If set, the content will be encoded as base64 (required by QEMU).Otherwise the content needs to be encoded beforehand - defaults to true.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "file" : {
+ "description" : "The path to the file.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent/file-write",
+ "text" : "file-write"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Qemu Agent command index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 1,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns the list of Qemu Agent commands",
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Execute Qemu Guest Agent commands.",
+ "method" : "POST",
+ "name" : "agent",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "command" : {
+ "description" : "The QGA command.",
+ "enum" : [
+ "fsfreeze-freeze",
+ "fsfreeze-status",
+ "fsfreeze-thaw",
+ "fstrim",
+ "get-fsinfo",
+ "get-host-name",
+ "get-memory-block-info",
+ "get-memory-blocks",
+ "get-osinfo",
+ "get-time",
+ "get-timezone",
+ "get-users",
+ "get-vcpus",
+ "info",
+ "network-get-interfaces",
+ "ping",
+ "shutdown",
+ "suspend-disk",
+ "suspend-hybrid",
+ "suspend-ram"
+ ],
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Returns an object with a single `result` property.",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/agent",
+ "text" : "agent"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read VM RRD statistics (returns PNG)",
+ "method" : "GET",
+ "name" : "rrd",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cf" : {
+ "description" : "The RRD consolidation function",
+ "enum" : [
+ "AVERAGE",
+ "MAX"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ds" : {
+ "description" : "The list of datasources you want to display.",
+ "format" : "pve-configid-list",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "timeframe" : {
+ "description" : "Specify the time frame you are interested in.",
+ "enum" : [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "properties" : {
+ "filename" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/rrd",
+ "text" : "rrd"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read VM RRD statistics",
+ "method" : "GET",
+ "name" : "rrddata",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cf" : {
+ "description" : "The RRD consolidation function",
+ "enum" : [
+ "AVERAGE",
+ "MAX"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "timeframe" : {
+ "description" : "Specify the time frame you are interested in.",
+ "enum" : [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/rrddata",
+ "text" : "rrddata"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get the virtual machine configuration with pending configuration changes applied. Set the 'current' parameter to get the current configuration instead.",
+ "method" : "GET",
+ "name" : "vm_config",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "current" : {
+ "default" : 0,
+ "description" : "Get current values (instead of pending values).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snapshot" : {
+ "description" : "Fetch config values from given snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "The VM configuration.",
+ "properties" : {
+ "acpi" : {
+ "default" : 1,
+ "description" : "Enable/disable ACPI.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "agent" : {
+ "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
+ "format" : {
+ "enabled" : {
+ "default" : 0,
+ "default_key" : 1,
+ "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
+ "type" : "boolean"
+ },
+ "fstrim_cloned_disks" : {
+ "default" : 0,
+ "description" : "Run fstrim after moving a disk or migrating the VM.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "type" : {
+ "default" : "virtio",
+ "description" : "Select the agent type",
+ "enum" : [
+ "virtio",
+ "isa"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "arch" : {
+ "description" : "Virtual processor architecture. Defaults to the host.",
+ "enum" : [
+ "x86_64",
+ "aarch64"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "args" : {
+ "description" : "Arbitrary arguments passed to kvm.",
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
+ },
+ "audio0" : {
+ "description" : "Configure a audio device, useful in combination with QXL/Spice.",
+ "format" : {
+ "device" : {
+ "description" : "Configure an audio device.",
+ "enum" : [
+ "ich9-intel-hda",
+ "intel-hda",
+ "AC97"
+ ],
+ "type" : "string"
+ },
+ "driver" : {
+ "default" : "spice",
+ "description" : "Driver backend for the audio device.",
+ "enum" : [
+ "spice",
+ "none"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "autostart" : {
+ "default" : 0,
+ "description" : "Automatic restart after crash (currently ignored).",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "balloon" : {
+ "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bios" : {
+ "default" : "seabios",
+ "description" : "Select BIOS implementation.",
+ "enum" : [
+ "seabios",
+ "ovmf"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "boot" : {
+ "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
+ "format" : "pve-qm-boot",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "bootdisk" : {
+ "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
+ "format" : "pve-qm-bootdisk",
+ "optional" : 1,
+ "pattern" : "(ide|sata|scsi|virtio)\\d+",
+ "type" : "string"
+ },
+ "cdrom" : {
+ "description" : "This is an alias for option -ide2",
+ "format" : "pve-qm-ide",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<volume>"
+ },
+ "cicustom" : {
+ "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
+ "format" : "pve-qm-cicustom",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cipassword" : {
+ "description" : "cloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "citype" : {
+ "description" : "Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.",
+ "enum" : [
+ "configdrive2",
+ "nocloud",
+ "opennebula"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ciuser" : {
+ "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cores" : {
+ "default" : 1,
+ "description" : "The number of cores per socket.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "cpu" : {
+ "description" : "Emulated CPU type.",
+ "format" : "pve-vm-cpu-conf",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cpulimit" : {
+ "default" : 0,
+ "description" : "Limit of CPU usage.",
+ "maximum" : 128,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number",
+ "verbose_description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit."
+ },
+ "cpuunits" : {
+ "default" : "cgroup v1: 1024, cgroup v2: 100",
+ "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
+ "maximum" : 262144,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs."
+ },
+ "description" : {
+ "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
+ "maxLength" : 8192,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
+ "type" : "string"
+ },
+ "efidisk0" : {
+ "description" : "Configure a Disk for storing EFI vars.",
+ "format" : {
+ "efitype" : {
+ "default" : "2m",
+ "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified.",
+ "enum" : [
+ "2m",
+ "4m"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "pre-enrolled-keys" : {
+ "default" : 0,
+ "description" : "Use am EFI vars template with distribution-specific and Microsoft Standard keys enrolled, if used with 'efitype=4m'. Note that this will enable Secure Boot by default, though it can still be turned off from within the VM.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "freeze" : {
+ "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "hookscript" : {
+ "description" : "Script that will be executed during various steps in the vms lifetime.",
+ "format" : "pve-volume-id",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "hostpci[n]" : {
+ "description" : "Map host PCI devices into guest.",
+ "format" : "pve-qm-hostpci",
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "Map host PCI devices into guest.\n\nNOTE: This option allows direct access to host hardware. So it is no longer\npossible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+ },
+ "hotplug" : {
+ "default" : "network,disk,usb",
+ "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`.",
+ "format" : "pve-hotplug-features",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "hugepages" : {
+ "description" : "Enable/disable hugepages memory.",
+ "enum" : [
+ "any",
+ "2",
+ "1024"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ide[n]" : {
+ "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
+ "format" : {
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads",
+ "io_uring"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd_length" : {
+ "alias" : "bps_rd_max_length"
+ },
+ "bps_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr_length" : {
+ "alias" : "bps_wr_max_length"
+ },
+ "bps_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_length" : {
+ "alias" : "iops_rd_max_length"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_length" : {
+ "alias" : "iops_wr_max_length"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "model" : {
+ "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "model",
+ "maxLength" : 120,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "replicate" : {
+ "default" : 1,
+ "description" : "Whether the drive should considered for replication jobs.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "rerror" : {
+ "description" : "Read error action.",
+ "enum" : [
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
+ "optional" : 1,
+ "type" : "boolean",
+ "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ssd" : {
+ "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
+ "optional" : 1,
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ipconfig[n]" : {
+ "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit\ngateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration. This requires\ncloud-init 19.4 or newer.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n",
+ "format" : "pve-qm-ipconfig",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ivshmem" : {
+ "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
+ "format" : {
+ "name" : {
+ "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
+ "format_description" : "string",
+ "optional" : 1,
+ "pattern" : "[a-zA-Z0-9\\-]+",
+ "type" : "string"
+ },
+ "size" : {
+ "description" : "The size of the file in MB.",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "keephugepages" : {
+ "default" : 0,
+ "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "keyboard" : {
+ "default" : null,
+ "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
+ "enum" : [
+ "de",
+ "de-ch",
+ "da",
+ "en-gb",
+ "en-us",
+ "es",
+ "fi",
+ "fr",
+ "fr-be",
+ "fr-ca",
+ "fr-ch",
+ "hu",
+ "is",
+ "it",
+ "ja",
+ "lt",
+ "mk",
+ "nl",
+ "no",
+ "pl",
+ "pt",
+ "pt-br",
+ "sv",
+ "sl",
+ "tr"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "kvm" : {
+ "default" : 1,
+ "description" : "Enable/disable KVM hardware virtualization.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "localtime" : {
+ "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "lock" : {
+ "description" : "Lock/unlock the VM.",
+ "enum" : [
+ "backup",
+ "clone",
+ "create",
+ "migrate",
+ "rollback",
+ "snapshot",
+ "snapshot-delete",
+ "suspending",
+ "suspended"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "machine" : {
+ "description" : "Specifies the Qemu machine type.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
+ "type" : "string"
+ },
+ "memory" : {
+ "default" : 512,
+ "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
+ "minimum" : 16,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "migrate_downtime" : {
+ "default" : 0.1,
+ "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number"
+ },
+ "migrate_speed" : {
+ "default" : 0,
+ "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "name" : {
+ "description" : "Set a name for the VM. Only used on the configuration web interface.",
+ "format" : "dns-name",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "nameserver" : {
+ "description" : "cloud-init: Sets DNS server IP address for a container. Create will'\n\t .' automatically use the setting from the host if neither searchdomain nor nameserver'\n\t .' are set.",
+ "format" : "address-list",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "net[n]" : {
+ "description" : "Specify network devices.",
+ "format" : {
+ "bridge" : {
+ "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2 Gateway\n 10.0.2.3 DNS Server\n 10.0.2.4 SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n",
+ "format" : "pve-bridge-id",
+ "format_description" : "bridge",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "e1000" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "e1000-82540em" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "e1000-82544gc" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "e1000-82545em" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "e1000e" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "firewall" : {
+ "description" : "Whether this interface should be protected by the firewall.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "i82551" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "i82557b" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "i82559er" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "link_down" : {
+ "description" : "Whether this interface should be disconnected (like pulling the plug).",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "macaddr" : {
+ "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
+ "format" : "mac-addr",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
+ },
+ "model" : {
+ "default_key" : 1,
+ "description" : "Network Card Model. The 'virtio' model provides the best performance with very low CPU overhead. If your guest does not support this driver, it is usually best to use 'e1000'.",
+ "enum" : [
+ "e1000",
+ "e1000-82540em",
+ "e1000-82544gc",
+ "e1000-82545em",
+ "e1000e",
+ "i82551",
+ "i82557b",
+ "i82559er",
+ "ne2k_isa",
+ "ne2k_pci",
+ "pcnet",
+ "rtl8139",
+ "virtio",
+ "vmxnet3"
+ ],
+ "type" : "string"
+ },
+ "mtu" : {
+ "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
+ "maximum" : 65520,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "ne2k_isa" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "ne2k_pci" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "pcnet" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "queues" : {
+ "description" : "Number of packet queues to be used on the device.",
+ "maximum" : 16,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "rate" : {
+ "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number"
+ },
+ "rtl8139" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "tag" : {
+ "description" : "VLAN tag to apply to packets on this interface.",
+ "maximum" : 4094,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "trunks" : {
+ "description" : "VLAN trunks to pass through this interface.",
+ "format_description" : "vlanid[;vlanid...]",
+ "optional" : 1,
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
+ },
+ "virtio" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "vmxnet3" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "numa" : {
+ "default" : 0,
+ "description" : "Enable/disable NUMA.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "numa[n]" : {
+ "description" : "NUMA topology.",
+ "format" : {
+ "cpus" : {
+ "description" : "CPUs accessing this NUMA node.",
+ "format_description" : "id[-id];...",
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
+ },
+ "hostnodes" : {
+ "description" : "Host NUMA nodes to use.",
+ "format_description" : "id[-id];...",
+ "optional" : 1,
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
+ },
+ "memory" : {
+ "description" : "Amount of memory this NUMA node provides.",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "policy" : {
+ "description" : "NUMA allocation policy.",
+ "enum" : [
+ "preferred",
+ "bind",
+ "interleave"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "onboot" : {
+ "default" : 0,
+ "description" : "Specifies whether a VM will be started during system bootup.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ostype" : {
+ "description" : "Specify guest operating system.",
+ "enum" : [
+ "other",
+ "wxp",
+ "w2k",
+ "w2k3",
+ "w2k8",
+ "wvista",
+ "win7",
+ "win8",
+ "win10",
+ "win11",
+ "l24",
+ "l26",
+ "solaris"
+ ],
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 5.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
+ },
+ "parallel[n]" : {
+ "description" : "Map host parallel devices (n is 0 to 2).",
+ "optional" : 1,
+ "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
+ "type" : "string",
+ "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+ },
+ "protection" : {
+ "default" : 0,
+ "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "reboot" : {
+ "default" : 1,
+ "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "rng0" : {
+ "description" : "Configure a VirtIO-based Random Number Generator.",
+ "format" : {
+ "max_bytes" : {
+ "default" : 1024,
+ "description" : "Maximum bytes of entropy allowed to get injected into the guest every 'period' milliseconds. Prefer a lower value when using '/dev/random' as source. Use `0` to disable limiting (potentially dangerous!).",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "period" : {
+ "default" : 1000,
+ "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "source" : {
+ "default_key" : 1,
+ "description" : "The file on the host to gather entropy from. In most cases '/dev/urandom' should be preferred over '/dev/random' to avoid entropy-starvation issues on the host. Using urandom does *not* decrease security in any meaningful way, as it's still seeded from real entropy, and the bytes provided will most likely be mixed with real entropy on the guest as well. '/dev/hwrng' can be used to pass through a hardware RNG from the host.",
+ "enum" : [
+ "/dev/urandom",
+ "/dev/random",
+ "/dev/hwrng"
+ ],
+ "type" : "string"
+ }
+ },
+ "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" : [
+ "native",
+ "threads",
+ "io_uring"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd_length" : {
+ "alias" : "bps_rd_max_length"
+ },
+ "bps_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr_length" : {
+ "alias" : "bps_wr_max_length"
+ },
+ "bps_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_length" : {
+ "alias" : "iops_rd_max_length"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_length" : {
+ "alias" : "iops_wr_max_length"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "replicate" : {
+ "default" : 1,
+ "description" : "Whether the drive should considered for replication jobs.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "rerror" : {
+ "description" : "Read error action.",
+ "enum" : [
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
+ "optional" : 1,
+ "type" : "boolean",
+ "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ssd" : {
+ "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
+ "optional" : 1,
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "scsi[n]" : {
+ "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).",
+ "format" : {
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads",
+ "io_uring"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd_length" : {
+ "alias" : "bps_rd_max_length"
+ },
+ "bps_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr_length" : {
+ "alias" : "bps_wr_max_length"
+ },
+ "bps_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_length" : {
+ "alias" : "iops_rd_max_length"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_length" : {
+ "alias" : "iops_wr_max_length"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iothread" : {
+ "description" : "Whether to use iothreads for this drive",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "queues" : {
+ "description" : "Number of queues.",
+ "minimum" : 2,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "replicate" : {
+ "default" : 1,
+ "description" : "Whether the drive should considered for replication jobs.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "rerror" : {
+ "description" : "Read error action.",
+ "enum" : [
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ro" : {
+ "description" : "Whether the drive is read-only.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "scsiblock" : {
+ "default" : 0,
+ "description" : "whether to use scsi-block for full passthrough of host block device\n\nWARNING: can lead to I/O errors in combination with low memory or high memory fragmentation on host",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
+ "optional" : 1,
+ "type" : "boolean",
+ "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ssd" : {
+ "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
+ "optional" : 1,
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "scsihw" : {
+ "default" : "lsi",
+ "description" : "SCSI controller model",
+ "enum" : [
+ "lsi",
+ "lsi53c810",
+ "virtio-scsi-pci",
+ "virtio-scsi-single",
+ "megasas",
+ "pvscsi"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "searchdomain" : {
+ "description" : "cloud-init: Sets DNS search domains for a container. Create will'\n\t .' automatically use the setting from the host if neither searchdomain nor nameserver'\n\t .' are set.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "serial[n]" : {
+ "description" : "Create a serial device inside the VM (n is 0 to 3)",
+ "optional" : 1,
+ "pattern" : "(/dev/.+|socket)",
+ "type" : "string",
+ "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines -\nuse with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+ },
+ "shares" : {
+ "default" : 1000,
+ "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning. Auto-ballooning is done by pvestatd.",
+ "maximum" : 50000,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "smbios1" : {
+ "description" : "Specify SMBIOS type 1 fields.",
+ "format" : "pve-qm-smbios1",
+ "maxLength" : 512,
+ "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"
+ },
+ "spice_enhancements" : {
+ "description" : "Configure additional enhancements for SPICE.",
+ "format" : {
+ "foldersharing" : {
+ "default" : "0",
+ "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "videostreaming" : {
+ "default" : "off",
+ "description" : "Enable video streaming. Uses compression for detected video streams.",
+ "enum" : [
+ "off",
+ "all",
+ "filter"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "sshkeys" : {
+ "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
+ "format" : "urlencoded",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "startdate" : {
+ "default" : "now",
+ "description" : "Set the initial date of the real time clock. Valid format for date are:'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
+ "optional" : 1,
+ "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
+ "type" : "string",
+ "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
+ },
+ "startup" : {
+ "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
+ "format" : "pve-startup-order",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
+ },
+ "tablet" : {
+ "default" : 1,
+ "description" : "Enable/disable the USB tablet device.",
+ "optional" : 1,
+ "type" : "boolean",
+ "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (`qm set <vmid> --vga qxl`)."
+ },
+ "tags" : {
+ "description" : "Tags of the VM. This is only meta information.",
+ "format" : "pve-tag-list",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "tdf" : {
+ "default" : 0,
+ "description" : "Enable/disable time drift fix.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "template" : {
+ "default" : 0,
+ "description" : "Enable/disable Template.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "tpmstate0" : {
+ "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'.",
+ "format" : {
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "version" : {
+ "default" : "v2.0",
+ "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
+ "enum" : [
+ "v1.2",
+ "v2.0"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "unused[n]" : {
+ "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
+ "format" : {
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "usb[n]" : {
+ "description" : "Configure an USB device (n is 0 to 4).",
+ "format" : {
+ "host" : {
+ "default_key" : 1,
+ "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
+ "format" : "pve-qm-usb-device",
+ "format_description" : "HOSTUSBDEVICE|spice",
+ "type" : "string"
+ },
+ "usb3" : {
+ "default" : 0,
+ "description" : "Specifies whether if given host option is a USB3 device or port.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vcpus" : {
+ "default" : 0,
+ "description" : "Number of hotplugged vcpus.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "vga" : {
+ "description" : "Configure the VGA hardware.",
+ "format" : {
+ "memory" : {
+ "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
+ "maximum" : 512,
+ "minimum" : 4,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "type" : {
+ "default" : "std",
+ "default_key" : 1,
+ "description" : "Select the VGA type.",
+ "enum" : [
+ "cirrus",
+ "qxl",
+ "qxl2",
+ "qxl3",
+ "qxl4",
+ "none",
+ "serial0",
+ "serial1",
+ "serial2",
+ "serial3",
+ "std",
+ "virtio",
+ "virtio-gl",
+ "vmware"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is 'std' for all OS types besides some Windows versions (XP and older) which use 'cirrus'. The 'qxl' option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays them self.\nYou can also run without any graphic card, using a serial device as terminal."
+ },
+ "virtio[n]" : {
+ "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
+ "format" : {
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads",
+ "io_uring"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd_length" : {
+ "alias" : "bps_rd_max_length"
+ },
+ "bps_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr_length" : {
+ "alias" : "bps_wr_max_length"
+ },
+ "bps_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_length" : {
+ "alias" : "iops_rd_max_length"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_length" : {
+ "alias" : "iops_wr_max_length"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iothread" : {
+ "description" : "Whether to use iothreads for this drive",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "replicate" : {
+ "default" : 1,
+ "description" : "Whether the drive should considered for replication jobs.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "rerror" : {
+ "description" : "Read error action.",
+ "enum" : [
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ro" : {
+ "description" : "Whether the drive is read-only.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
+ "optional" : 1,
+ "type" : "boolean",
+ "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vmgenid" : {
+ "default" : "1 (autogenerated)",
+ "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
+ "format_description" : "UUID",
+ "optional" : 1,
+ "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
+ "type" : "string",
+ "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done through API/CLI create or update methods, but not when manually editing the config file."
+ },
+ "vmstatestorage" : {
+ "description" : "Default storage for VM state volumes/files.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "watchdog" : {
+ "description" : "Create a virtual hardware watchdog device.",
+ "format" : "pve-qm-watchdog",
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "Create a virtual hardware watchdog device. Once enabled (by a guest action), the watchdog must be periodically polled by an agent inside the guest or else the watchdog will reset the guest (or execute the respective action specified)"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Set virtual machine options (asynchrounous API).",
+ "method" : "POST",
+ "name" : "update_vm_async",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "acpi" : {
+ "default" : 1,
+ "description" : "Enable/disable ACPI.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "agent" : {
+ "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
+ "format" : {
+ "enabled" : {
+ "default" : 0,
+ "default_key" : 1,
+ "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
+ "type" : "boolean"
+ },
+ "fstrim_cloned_disks" : {
+ "default" : 0,
+ "description" : "Run fstrim after moving a disk or migrating the VM.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "type" : {
+ "default" : "virtio",
+ "description" : "Select the agent type",
+ "enum" : [
+ "virtio",
+ "isa"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
+ },
+ "arch" : {
+ "description" : "Virtual processor architecture. Defaults to the host.",
+ "enum" : [
+ "x86_64",
+ "aarch64"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "args" : {
+ "description" : "Arbitrary arguments passed to kvm.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>",
+ "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
+ },
+ "audio0" : {
+ "description" : "Configure a audio device, useful in combination with QXL/Spice.",
+ "format" : {
+ "device" : {
+ "description" : "Configure an audio device.",
+ "enum" : [
+ "ich9-intel-hda",
+ "intel-hda",
+ "AC97"
+ ],
+ "type" : "string"
+ },
+ "driver" : {
+ "default" : "spice",
+ "description" : "Driver backend for the audio device.",
+ "enum" : [
+ "spice",
+ "none"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
+ },
+ "autostart" : {
+ "default" : 0,
+ "description" : "Automatic restart after crash (currently ignored).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "background_delay" : {
+ "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
+ "maximum" : 30,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 30)"
+ },
+ "balloon" : {
+ "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "bios" : {
+ "default" : "seabios",
+ "description" : "Select BIOS implementation.",
+ "enum" : [
+ "seabios",
+ "ovmf"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "boot" : {
+ "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
+ "format" : "pve-qm-boot",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
+ },
+ "bootdisk" : {
+ "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
+ "format" : "pve-qm-bootdisk",
+ "optional" : 1,
+ "pattern" : "(ide|sata|scsi|virtio)\\d+",
+ "type" : "string"
+ },
+ "cdrom" : {
+ "description" : "This is an alias for option -ide2",
+ "format" : "pve-qm-ide",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<volume>"
+ },
+ "cicustom" : {
+ "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
+ "format" : "pve-qm-cicustom",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
+ },
+ "cipassword" : {
+ "description" : "cloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "citype" : {
+ "description" : "Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.",
+ "enum" : [
+ "configdrive2",
+ "nocloud",
+ "opennebula"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ciuser" : {
+ "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "cores" : {
+ "default" : 1,
+ "description" : "The number of cores per socket.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "cpu" : {
+ "description" : "Emulated CPU type.",
+ "format" : "pve-vm-cpu-conf",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
+ },
+ "cpulimit" : {
+ "default" : 0,
+ "description" : "Limit of CPU usage.",
+ "maximum" : 128,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (0 - 128)",
+ "verbose_description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit."
+ },
+ "cpuunits" : {
+ "default" : "cgroup v1: 1024, cgroup v2: 100",
+ "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
+ "maximum" : 262144,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 262144)",
+ "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs."
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "description" : {
+ "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
+ "maxLength" : 8192,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "efidisk0" : {
+ "description" : "Configure a Disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+ "format" : {
+ "efitype" : {
+ "default" : "2m",
+ "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified.",
+ "enum" : [
+ "2m",
+ "4m"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "import-from" : {
+ "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+ "format" : "pve-volume-id-or-absolute-path",
+ "format_description" : "source volume",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "pre-enrolled-keys" : {
+ "default" : 0,
+ "description" : "Use am EFI vars template with distribution-specific and Microsoft Standard keys enrolled, if used with 'efitype=4m'. Note that this will enable Secure Boot by default, though it can still be turned off from within the VM.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
+ },
+ "force" : {
+ "description" : "Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.",
+ "optional" : 1,
+ "requires" : "delete",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "freeze" : {
+ "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "hookscript" : {
+ "description" : "Script that will be executed during various steps in the vms lifetime.",
+ "format" : "pve-volume-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "hostpci[n]" : {
+ "description" : "Map host PCI devices into guest.",
+ "format" : "pve-qm-hostpci",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
+ "verbose_description" : "Map host PCI devices into guest.\n\nNOTE: This option allows direct access to host hardware. So it is no longer\npossible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+ },
+ "hotplug" : {
+ "default" : "network,disk,usb",
+ "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`.",
+ "format" : "pve-hotplug-features",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "hugepages" : {
+ "description" : "Enable/disable hugepages memory.",
+ "enum" : [
+ "any",
+ "2",
+ "1024"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ide[n]" : {
+ "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+ "format" : {
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads",
+ "io_uring"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd_length" : {
+ "alias" : "bps_rd_max_length"
+ },
+ "bps_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr_length" : {
+ "alias" : "bps_wr_max_length"
+ },
+ "bps_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "import-from" : {
+ "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+ "format" : "pve-volume-id-or-absolute-path",
+ "format_description" : "source volume",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_length" : {
+ "alias" : "iops_rd_max_length"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_length" : {
+ "alias" : "iops_wr_max_length"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "model" : {
+ "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "model",
+ "maxLength" : 120,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "replicate" : {
+ "default" : 1,
+ "description" : "Whether the drive should considered for replication jobs.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "rerror" : {
+ "description" : "Read error action.",
+ "enum" : [
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
+ "optional" : 1,
+ "type" : "boolean",
+ "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ssd" : {
+ "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
+ "optional" : 1,
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
+ },
+ "ipconfig[n]" : {
+ "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit\ngateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration. This requires\ncloud-init 19.4 or newer.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n",
+ "format" : "pve-qm-ipconfig",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
+ },
+ "ivshmem" : {
+ "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
+ "format" : {
+ "name" : {
+ "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
+ "format_description" : "string",
+ "optional" : 1,
+ "pattern" : "[a-zA-Z0-9\\-]+",
+ "type" : "string"
+ },
+ "size" : {
+ "description" : "The size of the file in MB.",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "size=<integer> [,name=<string>]"
+ },
+ "keephugepages" : {
+ "default" : 0,
+ "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "keyboard" : {
+ "default" : null,
+ "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
+ "enum" : [
+ "de",
+ "de-ch",
+ "da",
+ "en-gb",
+ "en-us",
+ "es",
+ "fi",
+ "fr",
+ "fr-be",
+ "fr-ca",
+ "fr-ch",
+ "hu",
+ "is",
+ "it",
+ "ja",
+ "lt",
+ "mk",
+ "nl",
+ "no",
+ "pl",
+ "pt",
+ "pt-br",
+ "sv",
+ "sl",
+ "tr"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "kvm" : {
+ "default" : 1,
+ "description" : "Enable/disable KVM hardware virtualization.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "localtime" : {
+ "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "lock" : {
+ "description" : "Lock/unlock the VM.",
+ "enum" : [
+ "backup",
+ "clone",
+ "create",
+ "migrate",
+ "rollback",
+ "snapshot",
+ "snapshot-delete",
+ "suspending",
+ "suspended"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "machine" : {
+ "description" : "Specifies the Qemu machine type.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
+ "type" : "string"
+ },
+ "memory" : {
+ "default" : 512,
+ "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
+ "minimum" : 16,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (16 - N)"
+ },
+ "migrate_downtime" : {
+ "default" : 0.1,
+ "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (0 - N)"
+ },
+ "migrate_speed" : {
+ "default" : 0,
+ "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "name" : {
+ "description" : "Set a name for the VM. Only used on the configuration web interface.",
+ "format" : "dns-name",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nameserver" : {
+ "description" : "cloud-init: Sets DNS server IP address for a container. Create will'\n\t .' automatically use the setting from the host if neither searchdomain nor nameserver'\n\t .' are set.",
+ "format" : "address-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "net[n]" : {
+ "description" : "Specify network devices.",
+ "format" : {
+ "bridge" : {
+ "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2 Gateway\n 10.0.2.3 DNS Server\n 10.0.2.4 SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n",
+ "format" : "pve-bridge-id",
+ "format_description" : "bridge",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "e1000" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "e1000-82540em" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "e1000-82544gc" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "e1000-82545em" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "e1000e" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "firewall" : {
+ "description" : "Whether this interface should be protected by the firewall.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "i82551" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "i82557b" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "i82559er" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "link_down" : {
+ "description" : "Whether this interface should be disconnected (like pulling the plug).",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "macaddr" : {
+ "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
+ "format" : "mac-addr",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
+ },
+ "model" : {
+ "default_key" : 1,
+ "description" : "Network Card Model. The 'virtio' model provides the best performance with very low CPU overhead. If your guest does not support this driver, it is usually best to use 'e1000'.",
+ "enum" : [
+ "e1000",
+ "e1000-82540em",
+ "e1000-82544gc",
+ "e1000-82545em",
+ "e1000e",
+ "i82551",
+ "i82557b",
+ "i82559er",
+ "ne2k_isa",
+ "ne2k_pci",
+ "pcnet",
+ "rtl8139",
+ "virtio",
+ "vmxnet3"
+ ],
+ "type" : "string"
+ },
+ "mtu" : {
+ "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
+ "maximum" : 65520,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "ne2k_isa" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "ne2k_pci" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "pcnet" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "queues" : {
+ "description" : "Number of packet queues to be used on the device.",
+ "maximum" : 16,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "rate" : {
+ "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number"
+ },
+ "rtl8139" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "tag" : {
+ "description" : "VLAN tag to apply to packets on this interface.",
+ "maximum" : 4094,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "trunks" : {
+ "description" : "VLAN trunks to pass through this interface.",
+ "format_description" : "vlanid[;vlanid...]",
+ "optional" : 1,
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
+ },
+ "virtio" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "vmxnet3" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,mtu=<integer>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "numa" : {
+ "default" : 0,
+ "description" : "Enable/disable NUMA.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "numa[n]" : {
+ "description" : "NUMA topology.",
+ "format" : {
+ "cpus" : {
+ "description" : "CPUs accessing this NUMA node.",
+ "format_description" : "id[-id];...",
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
+ },
+ "hostnodes" : {
+ "description" : "Host NUMA nodes to use.",
+ "format_description" : "id[-id];...",
+ "optional" : 1,
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
+ },
+ "memory" : {
+ "description" : "Amount of memory this NUMA node provides.",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "policy" : {
+ "description" : "NUMA allocation policy.",
+ "enum" : [
+ "preferred",
+ "bind",
+ "interleave"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
+ },
+ "onboot" : {
+ "default" : 0,
+ "description" : "Specifies whether a VM will be started during system bootup.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "ostype" : {
+ "description" : "Specify guest operating system.",
+ "enum" : [
+ "other",
+ "wxp",
+ "w2k",
+ "w2k3",
+ "w2k8",
+ "wvista",
+ "win7",
+ "win8",
+ "win10",
+ "win11",
+ "l24",
+ "l26",
+ "solaris"
+ ],
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 5.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
+ },
+ "parallel[n]" : {
+ "description" : "Map host parallel devices (n is 0 to 2).",
+ "optional" : 1,
+ "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
+ "type" : "string",
+ "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+ },
+ "protection" : {
+ "default" : 0,
+ "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "reboot" : {
+ "default" : 1,
+ "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "revert" : {
+ "description" : "Revert a pending change.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "rng0" : {
+ "description" : "Configure a VirtIO-based Random Number Generator.",
+ "format" : {
+ "max_bytes" : {
+ "default" : 1024,
+ "description" : "Maximum bytes of entropy allowed to get injected into the guest every 'period' milliseconds. Prefer a lower value when using '/dev/random' as source. Use `0` to disable limiting (potentially dangerous!).",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "period" : {
+ "default" : 1000,
+ "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "source" : {
+ "default_key" : 1,
+ "description" : "The file on the host to gather entropy from. In most cases '/dev/urandom' should be preferred over '/dev/random' to avoid entropy-starvation issues on the host. Using urandom does *not* decrease security in any meaningful way, as it's still seeded from real entropy, and the bytes provided will most likely be mixed with real entropy on the guest as well. '/dev/hwrng' can be used to pass through a hardware RNG from the host.",
+ "enum" : [
+ "/dev/urandom",
+ "/dev/random",
+ "/dev/hwrng"
+ ],
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
+ },
+ "sata[n]" : {
+ "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+ "format" : {
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads",
+ "io_uring"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd_length" : {
+ "alias" : "bps_rd_max_length"
+ },
+ "bps_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr_length" : {
+ "alias" : "bps_wr_max_length"
+ },
+ "bps_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "import-from" : {
+ "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+ "format" : "pve-volume-id-or-absolute-path",
+ "format_description" : "source volume",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_length" : {
+ "alias" : "iops_rd_max_length"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_length" : {
+ "alias" : "iops_wr_max_length"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "replicate" : {
+ "default" : 1,
+ "description" : "Whether the drive should considered for replication jobs.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "rerror" : {
+ "description" : "Read error action.",
+ "enum" : [
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
+ "optional" : 1,
+ "type" : "boolean",
+ "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ssd" : {
+ "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
+ "optional" : 1,
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
+ },
+ "scsi[n]" : {
+ "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+ "format" : {
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads",
+ "io_uring"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd_length" : {
+ "alias" : "bps_rd_max_length"
+ },
+ "bps_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr_length" : {
+ "alias" : "bps_wr_max_length"
+ },
+ "bps_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "import-from" : {
+ "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+ "format" : "pve-volume-id-or-absolute-path",
+ "format_description" : "source volume",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_length" : {
+ "alias" : "iops_rd_max_length"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_length" : {
+ "alias" : "iops_wr_max_length"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iothread" : {
+ "description" : "Whether to use iothreads for this drive",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "queues" : {
+ "description" : "Number of queues.",
+ "minimum" : 2,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "replicate" : {
+ "default" : 1,
+ "description" : "Whether the drive should considered for replication jobs.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "rerror" : {
+ "description" : "Read error action.",
+ "enum" : [
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ro" : {
+ "description" : "Whether the drive is read-only.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "scsiblock" : {
+ "default" : 0,
+ "description" : "whether to use scsi-block for full passthrough of host block device\n\nWARNING: can lead to I/O errors in combination with low memory or high memory fragmentation on host",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
+ "optional" : 1,
+ "type" : "boolean",
+ "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ssd" : {
+ "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
+ "optional" : 1,
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
+ },
+ "scsihw" : {
+ "default" : "lsi",
+ "description" : "SCSI controller model",
+ "enum" : [
+ "lsi",
+ "lsi53c810",
+ "virtio-scsi-pci",
+ "virtio-scsi-single",
+ "megasas",
+ "pvscsi"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "searchdomain" : {
+ "description" : "cloud-init: Sets DNS search domains for a container. Create will'\n\t .' automatically use the setting from the host if neither searchdomain nor nameserver'\n\t .' are set.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "serial[n]" : {
+ "description" : "Create a serial device inside the VM (n is 0 to 3)",
+ "optional" : 1,
+ "pattern" : "(/dev/.+|socket)",
+ "type" : "string",
+ "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines -\nuse with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+ },
+ "shares" : {
+ "default" : 1000,
+ "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning. Auto-ballooning is done by pvestatd.",
+ "maximum" : 50000,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 50000)"
+ },
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "smbios1" : {
+ "description" : "Specify SMBIOS type 1 fields.",
+ "format" : "pve-qm-smbios1",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[base64=<1|0>] [,family=<Base64 encoded string>] [,manufacturer=<Base64 encoded string>] [,product=<Base64 encoded string>] [,serial=<Base64 encoded string>] [,sku=<Base64 encoded string>] [,uuid=<UUID>] [,version=<Base64 encoded string>]"
+ },
+ "smp" : {
+ "default" : 1,
+ "description" : "The number of CPUs. Please use option -sockets instead.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "sockets" : {
+ "default" : 1,
+ "description" : "The number of CPU sockets.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "spice_enhancements" : {
+ "description" : "Configure additional enhancements for SPICE.",
+ "format" : {
+ "foldersharing" : {
+ "default" : "0",
+ "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "videostreaming" : {
+ "default" : "off",
+ "description" : "Enable video streaming. Uses compression for detected video streams.",
+ "enum" : [
+ "off",
+ "all",
+ "filter"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
+ },
+ "sshkeys" : {
+ "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
+ "format" : "urlencoded",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "startdate" : {
+ "default" : "now",
+ "description" : "Set the initial date of the real time clock. Valid format for date are:'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
+ "optional" : 1,
+ "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
+ "type" : "string",
+ "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
+ },
+ "startup" : {
+ "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
+ "format" : "pve-startup-order",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
+ },
+ "tablet" : {
+ "default" : 1,
+ "description" : "Enable/disable the USB tablet device.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>",
+ "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (`qm set <vmid> --vga qxl`)."
+ },
+ "tags" : {
+ "description" : "Tags of the VM. This is only meta information.",
+ "format" : "pve-tag-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tdf" : {
+ "default" : 0,
+ "description" : "Enable/disable time drift fix.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "template" : {
+ "default" : 0,
+ "description" : "Enable/disable Template.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "tpmstate0" : {
+ "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and 4 MiB will be used instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+ "format" : {
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "import-from" : {
+ "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+ "format" : "pve-volume-id-or-absolute-path",
+ "format_description" : "source volume",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "version" : {
+ "default" : "v2.0",
+ "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
+ "enum" : [
+ "v1.2",
+ "v2.0"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
+ },
+ "unused[n]" : {
+ "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
+ "format" : {
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume>"
+ },
+ "usb[n]" : {
+ "description" : "Configure an USB device (n is 0 to 4).",
+ "format" : {
+ "host" : {
+ "default_key" : 1,
+ "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
+ "format" : "pve-qm-usb-device",
+ "format_description" : "HOSTUSBDEVICE|spice",
+ "type" : "string"
+ },
+ "usb3" : {
+ "default" : 0,
+ "description" : "Specifies whether if given host option is a USB3 device or port.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
+ },
+ "vcpus" : {
+ "default" : 0,
+ "description" : "Number of hotplugged vcpus.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "vga" : {
+ "description" : "Configure the VGA hardware.",
+ "format" : {
+ "memory" : {
+ "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
+ "maximum" : 512,
+ "minimum" : 4,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "type" : {
+ "default" : "std",
+ "default_key" : 1,
+ "description" : "Select the VGA type.",
+ "enum" : [
+ "cirrus",
+ "qxl",
+ "qxl2",
+ "qxl3",
+ "qxl4",
+ "none",
+ "serial0",
+ "serial1",
+ "serial2",
+ "serial3",
+ "std",
+ "virtio",
+ "virtio-gl",
+ "vmware"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[type=]<enum>] [,memory=<integer>]",
+ "verbose_description" : "Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is 'std' for all OS types besides some Windows versions (XP and older) which use 'cirrus'. The 'qxl' option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays them self.\nYou can also run without any graphic card, using a serial device as terminal."
+ },
+ "virtio[n]" : {
+ "description" : "Use volume as VIRTIO hard disk (n is 0 to 15). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+ "format" : {
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads",
+ "io_uring"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd_length" : {
+ "alias" : "bps_rd_max_length"
+ },
+ "bps_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr_length" : {
+ "alias" : "bps_wr_max_length"
+ },
+ "bps_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "import-from" : {
+ "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+ "format" : "pve-volume-id-or-absolute-path",
+ "format_description" : "source volume",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_length" : {
+ "alias" : "iops_rd_max_length"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_length" : {
+ "alias" : "iops_wr_max_length"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iothread" : {
+ "description" : "Whether to use iothreads for this drive",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "replicate" : {
+ "default" : 1,
+ "description" : "Whether the drive should considered for replication jobs.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "rerror" : {
+ "description" : "Read error action.",
+ "enum" : [
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ro" : {
+ "description" : "Whether the drive is read-only.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
+ "optional" : 1,
+ "type" : "boolean",
+ "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+ },
+ "vmgenid" : {
+ "default" : "1 (autogenerated)",
+ "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
+ "format_description" : "UUID",
+ "optional" : 1,
+ "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
+ "type" : "string",
+ "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done through API/CLI create or update methods, but not when manually editing the config file."
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "vmstatestorage" : {
+ "description" : "Default storage for VM state volumes/files.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "watchdog" : {
+ "description" : "Create a virtual hardware watchdog device.",
+ "format" : "pve-qm-watchdog",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
+ "verbose_description" : "Create a virtual hardware watchdog device. Once enabled (by a guest action), the watchdog must be periodically polled by an agent inside the guest or else the watchdog will reset the guest (or execute the respective action specified)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Disk",
+ "VM.Config.CDROM",
+ "VM.Config.CPU",
+ "VM.Config.Memory",
+ "VM.Config.Network",
+ "VM.Config.HWType",
+ "VM.Config.Options",
+ "VM.Config.Cloudinit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Set virtual machine options (synchrounous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.",
+ "method" : "PUT",
+ "name" : "update_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "acpi" : {
+ "default" : 1,
+ "description" : "Enable/disable ACPI.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "agent" : {
+ "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
+ "format" : {
+ "enabled" : {
+ "default" : 0,
+ "default_key" : 1,
+ "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
+ "type" : "boolean"
+ },
+ "fstrim_cloned_disks" : {
+ "default" : 0,
+ "description" : "Run fstrim after moving a disk or migrating the VM.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "type" : {
+ "default" : "virtio",
+ "description" : "Select the agent type",
+ "enum" : [
+ "virtio",
+ "isa"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
+ },
+ "arch" : {
+ "description" : "Virtual processor architecture. Defaults to the host.",
+ "enum" : [
+ "x86_64",
+ "aarch64"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "args" : {
+ "description" : "Arbitrary arguments passed to kvm.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>",
+ "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
+ },
+ "audio0" : {
+ "description" : "Configure a audio device, useful in combination with QXL/Spice.",
+ "format" : {
+ "device" : {
+ "description" : "Configure an audio device.",
+ "enum" : [
+ "ich9-intel-hda",
+ "intel-hda",
+ "AC97"
+ ],
+ "type" : "string"
+ },
+ "driver" : {
+ "default" : "spice",
+ "description" : "Driver backend for the audio device.",
+ "enum" : [
+ "spice",
+ "none"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
+ },
+ "autostart" : {
+ "default" : 0,
+ "description" : "Automatic restart after crash (currently ignored).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "balloon" : {
+ "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "bios" : {
+ "default" : "seabios",
+ "description" : "Select BIOS implementation.",
+ "enum" : [
+ "seabios",
+ "ovmf"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "boot" : {
+ "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
+ "format" : "pve-qm-boot",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
+ },
+ "bootdisk" : {
+ "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
+ "format" : "pve-qm-bootdisk",
+ "optional" : 1,
+ "pattern" : "(ide|sata|scsi|virtio)\\d+",
+ "type" : "string"
+ },
+ "cdrom" : {
+ "description" : "This is an alias for option -ide2",
+ "format" : "pve-qm-ide",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<volume>"
+ },
+ "cicustom" : {
+ "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
+ "format" : "pve-qm-cicustom",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
+ },
+ "cipassword" : {
+ "description" : "cloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "citype" : {
+ "description" : "Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.",
+ "enum" : [
+ "configdrive2",
+ "nocloud",
+ "opennebula"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ciuser" : {
+ "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "cores" : {
+ "default" : 1,
+ "description" : "The number of cores per socket.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "cpu" : {
+ "description" : "Emulated CPU type.",
+ "format" : "pve-vm-cpu-conf",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
+ },
+ "cpulimit" : {
+ "default" : 0,
+ "description" : "Limit of CPU usage.",
+ "maximum" : 128,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (0 - 128)",
+ "verbose_description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit."
+ },
+ "cpuunits" : {
+ "default" : "cgroup v1: 1024, cgroup v2: 100",
+ "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
+ "maximum" : 262144,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 262144)",
+ "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs."
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "description" : {
+ "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
+ "maxLength" : 8192,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "efidisk0" : {
+ "description" : "Configure a Disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+ "format" : {
+ "efitype" : {
+ "default" : "2m",
+ "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified.",
+ "enum" : [
+ "2m",
+ "4m"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "import-from" : {
+ "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+ "format" : "pve-volume-id-or-absolute-path",
+ "format_description" : "source volume",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "pre-enrolled-keys" : {
+ "default" : 0,
+ "description" : "Use am EFI vars template with distribution-specific and Microsoft Standard keys enrolled, if used with 'efitype=4m'. Note that this will enable Secure Boot by default, though it can still be turned off from within the VM.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
+ },
+ "force" : {
+ "description" : "Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.",
+ "optional" : 1,
+ "requires" : "delete",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "freeze" : {
+ "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "hookscript" : {
+ "description" : "Script that will be executed during various steps in the vms lifetime.",
+ "format" : "pve-volume-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "hostpci[n]" : {
+ "description" : "Map host PCI devices into guest.",
+ "format" : "pve-qm-hostpci",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
+ "verbose_description" : "Map host PCI devices into guest.\n\nNOTE: This option allows direct access to host hardware. So it is no longer\npossible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+ },
+ "hotplug" : {
+ "default" : "network,disk,usb",
+ "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`.",
+ "format" : "pve-hotplug-features",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "hugepages" : {
+ "description" : "Enable/disable hugepages memory.",
+ "enum" : [
+ "any",
+ "2",
+ "1024"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ide[n]" : {
+ "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+ "format" : {
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads",
+ "io_uring"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd_length" : {
+ "alias" : "bps_rd_max_length"
+ },
+ "bps_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr_length" : {
+ "alias" : "bps_wr_max_length"
+ },
+ "bps_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "import-from" : {
+ "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+ "format" : "pve-volume-id-or-absolute-path",
+ "format_description" : "source volume",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_length" : {
+ "alias" : "iops_rd_max_length"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_length" : {
+ "alias" : "iops_wr_max_length"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "model" : {
+ "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "model",
+ "maxLength" : 120,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "replicate" : {
+ "default" : 1,
+ "description" : "Whether the drive should considered for replication jobs.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "rerror" : {
+ "description" : "Read error action.",
+ "enum" : [
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
+ "optional" : 1,
+ "type" : "boolean",
+ "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ssd" : {
+ "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
+ "optional" : 1,
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
}
- }
- }
- }
- ],
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules",
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "get_rules",
- "proxyto" : null,
- "parameters" : {
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
+ },
+ "ipconfig[n]" : {
+ "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit\ngateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration. This requires\ncloud-init 19.4 or newer.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n",
+ "format" : "pve-qm-ipconfig",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
+ },
+ "ivshmem" : {
+ "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
+ "format" : {
+ "name" : {
+ "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
+ "format_description" : "string",
+ "optional" : 1,
+ "pattern" : "[a-zA-Z0-9\\-]+",
+ "type" : "string"
},
- "vmid" : {
+ "size" : {
+ "description" : "The size of the file in MB.",
"minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
+ "type" : "integer"
}
},
- "additionalProperties" : 0
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "size=<integer> [,name=<string>]"
+ },
+ "keephugepages" : {
+ "default" : 0,
+ "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "keyboard" : {
+ "default" : null,
+ "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
+ "enum" : [
+ "de",
+ "de-ch",
+ "da",
+ "en-gb",
+ "en-us",
+ "es",
+ "fi",
+ "fr",
+ "fr-be",
+ "fr-ca",
+ "fr-ch",
+ "hu",
+ "is",
+ "it",
+ "ja",
+ "lt",
+ "mk",
+ "nl",
+ "no",
+ "pl",
+ "pt",
+ "pt-br",
+ "sv",
+ "sl",
+ "tr"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "kvm" : {
+ "default" : 1,
+ "description" : "Enable/disable KVM hardware virtualization.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "localtime" : {
+ "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "lock" : {
+ "description" : "Lock/unlock the VM.",
+ "enum" : [
+ "backup",
+ "clone",
+ "create",
+ "migrate",
+ "rollback",
+ "snapshot",
+ "snapshot-delete",
+ "suspending",
+ "suspended"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "machine" : {
+ "description" : "Specifies the Qemu machine type.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
+ "type" : "string"
+ },
+ "memory" : {
+ "default" : 512,
+ "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
+ "minimum" : 16,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (16 - N)"
+ },
+ "migrate_downtime" : {
+ "default" : 0.1,
+ "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (0 - N)"
+ },
+ "migrate_speed" : {
+ "default" : 0,
+ "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- }
- },
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{pos}"
- }
- ]
+ "name" : {
+ "description" : "Set a name for the VM. Only used on the configuration web interface.",
+ "format" : "dns-name",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "description" : "List rules.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- }
- },
- "POST" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "action" : {
- "maxLength" : 20,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "optional" : 0,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
+ "nameserver" : {
+ "description" : "cloud-init: Sets DNS server IP address for a container. Create will'\n\t .' automatically use the setting from the host if neither searchdomain nor nameserver'\n\t .' are set.",
+ "format" : "address-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "net[n]" : {
+ "description" : "Specify network devices.",
+ "format" : {
+ "bridge" : {
+ "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2 Gateway\n 10.0.2.3 DNS Server\n 10.0.2.4 SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n",
+ "format" : "pve-bridge-id",
+ "format_description" : "bridge",
+ "optional" : 1,
"type" : "string"
},
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "e1000" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
},
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
+ "e1000-82540em" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "e1000-82544gc" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "e1000-82545em" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "e1000e" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "firewall" : {
+ "description" : "Whether this interface should be protected by the firewall.",
"optional" : 1,
- "description" : "Update rule at position <pos>."
+ "type" : "boolean"
},
- "dest" : {
- "format" : "pve-fw-addr-spec",
+ "i82551" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "i82557b" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "i82559er" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "link_down" : {
+ "description" : "Whether this interface should be disconnected (like pulling the plug).",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "macaddr" : {
+ "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
+ "format" : "mac-addr",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
+ "optional" : 1,
"type" : "string",
- "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
+ "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
},
- "type" : {
+ "model" : {
+ "default_key" : 1,
+ "description" : "Network Card Model. The 'virtio' model provides the best performance with very low CPU overhead. If your guest does not support this driver, it is usually best to use 'e1000'.",
"enum" : [
- "in",
- "out",
- "group"
+ "e1000",
+ "e1000-82540em",
+ "e1000-82544gc",
+ "e1000-82545em",
+ "e1000e",
+ "i82551",
+ "i82557b",
+ "i82559er",
+ "ne2k_isa",
+ "ne2k_pci",
+ "pcnet",
+ "rtl8139",
+ "virtio",
+ "vmxnet3"
],
- "optional" : 0,
"type" : "string"
},
- "macro" : {
+ "mtu" : {
+ "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
+ "maximum" : 65520,
+ "minimum" : 1,
"optional" : 1,
- "maxLength" : 128,
- "type" : "string"
+ "type" : "integer"
},
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
+ "ne2k_isa" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
},
- "proto" : {
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "ne2k_pci" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "pcnet" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "queues" : {
+ "description" : "Number of packet queues to be used on the device.",
+ "maximum" : 16,
+ "minimum" : 0,
"optional" : 1,
- "type" : "string",
- "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.",
+ "rate" : {
+ "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
+ "minimum" : 0,
"optional" : 1,
- "type" : "string",
- "format" : "pve-iface"
+ "type" : "number"
},
- "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
+ "rtl8139" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
},
- "enable" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1
+ "tag" : {
+ "description" : "VLAN tag to apply to packets on this interface.",
+ "maximum" : 4094,
+ "minimum" : 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.",
+ "trunks" : {
+ "description" : "VLAN trunks to pass through this interface.",
+ "format_description" : "vlanid[;vlanid...]",
"optional" : 1,
- "format" : "pve-fw-dport-spec",
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
"type" : "string"
},
- "source" : {
- "type" : "string",
- "format" : "pve-fw-addr-spec",
+ "virtio" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "vmxnet3" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,mtu=<integer>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "numa" : {
+ "default" : 0,
+ "description" : "Enable/disable NUMA.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "numa[n]" : {
+ "description" : "NUMA topology.",
+ "format" : {
+ "cpus" : {
+ "description" : "CPUs accessing this NUMA node.",
+ "format_description" : "id[-id];...",
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
+ },
+ "hostnodes" : {
+ "description" : "Host NUMA nodes to use.",
+ "format_description" : "id[-id];...",
"optional" : 1,
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists."
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
},
- "sport" : {
+ "memory" : {
+ "description" : "Amount of memory this NUMA node provides.",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "policy" : {
+ "description" : "NUMA allocation policy.",
+ "enum" : [
+ "preferred",
+ "bind",
+ "interleave"
+ ],
"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"
}
- }
- },
- "proxyto" : null,
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
},
- "name" : "create_rule",
- "method" : "POST",
- "returns" : {
- "type" : "null"
+ "onboot" : {
+ "default" : 0,
+ "description" : "Specifies whether a VM will be started during system bootup.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "description" : "Create new rule."
- }
- },
- "leaf" : 0,
- "text" : "rules"
- },
- {
- "children" : [
- {
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}",
- "info" : {
- "DELETE" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "description" : "Remove IP or Network alias.",
- "protected" : 1,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "digest" : {
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
- "type" : "string"
- },
- "name" : {
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "Alias name.",
- "maxLength" : 64,
- "type" : "string"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
- }
- }
+ "ostype" : {
+ "description" : "Specify guest operating system.",
+ "enum" : [
+ "other",
+ "wxp",
+ "w2k",
+ "w2k3",
+ "w2k8",
+ "wvista",
+ "win7",
+ "win8",
+ "win10",
+ "win11",
+ "l24",
+ "l26",
+ "solaris"
+ ],
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 5.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
+ },
+ "parallel[n]" : {
+ "description" : "Map host parallel devices (n is 0 to 2).",
+ "optional" : 1,
+ "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
+ "type" : "string",
+ "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+ },
+ "protection" : {
+ "default" : 0,
+ "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "reboot" : {
+ "default" : 1,
+ "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "revert" : {
+ "description" : "Revert a pending change.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "rng0" : {
+ "description" : "Configure a VirtIO-based Random Number Generator.",
+ "format" : {
+ "max_bytes" : {
+ "default" : 1024,
+ "description" : "Maximum bytes of entropy allowed to get injected into the guest every 'period' milliseconds. Prefer a lower value when using '/dev/random' as source. Use `0` to disable limiting (potentially dangerous!).",
+ "optional" : 1,
+ "type" : "integer"
},
- "returns" : {
- "type" : "null"
+ "period" : {
+ "default" : 1000,
+ "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
+ "optional" : 1,
+ "type" : "integer"
},
- "method" : "DELETE",
- "name" : "remove_alias"
+ "source" : {
+ "default_key" : 1,
+ "description" : "The file on the host to gather entropy from. In most cases '/dev/urandom' should be preferred over '/dev/random' to avoid entropy-starvation issues on the host. Using urandom does *not* decrease security in any meaningful way, as it's still seeded from real entropy, and the bytes provided will most likely be mixed with real entropy on the guest as well. '/dev/hwrng' can be used to pass through a hardware RNG from the host.",
+ "enum" : [
+ "/dev/urandom",
+ "/dev/random",
+ "/dev/hwrng"
+ ],
+ "type" : "string"
+ }
},
- "GET" : {
- "description" : "Read alias.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
+ },
+ "sata[n]" : {
+ "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+ "format" : {
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads",
+ "io_uring"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "name" : {
- "maxLength" : 64,
- "description" : "Alias name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- }
- },
- "additionalProperties" : 0
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "returns" : {
- "type" : "object"
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
},
- "name" : "read_alias",
- "method" : "GET"
- },
- "PUT" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
},
- "description" : "Update IP or Network alias.",
- "returns" : {
- "type" : "null"
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
},
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "type" : "string",
- "maxLength" : 64,
- "description" : "Alias name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "type" : "string",
- "format" : "IPorCIDR"
- },
- "rename" : {
- "description" : "Rename an existing alias.",
- "optional" : 1,
- "maxLength" : 64,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
- }
- }
+ "bps_rd_length" : {
+ "alias" : "bps_rd_max_length"
},
- "name" : "update_alias",
- "method" : "PUT"
- }
- },
- "leaf" : 1,
- "text" : "{name}"
- }
- ],
- "info" : {
- "POST" : {
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ "bps_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
},
- "comment" : {
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "type" : "string"
+ "type" : "integer"
},
- "cidr" : {
- "type" : "string",
- "format" : "IPorCIDR",
- "description" : "Network/IP specification in CIDR format."
+ "bps_wr_length" : {
+ "alias" : "bps_wr_max_length"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
+ "bps_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
"minimum" : 1,
- "format" : "pve-vmid",
+ "optional" : 1,
"type" : "integer"
},
- "name" : {
- "maxLength" : 64,
- "description" : "Alias name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
"type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "name" : "create_alias",
- "method" : "POST",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "description" : "Create IP or Network Alias."
- },
- "GET" : {
- "name" : "get_aliases",
- "method" : "GET",
- "returns" : {
- "items" : {
- "properties" : {
- "name" : {
- "type" : "string"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "digest" : {
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 0,
- "type" : "string"
- },
- "cidr" : {
- "type" : "string"
- }
},
- "type" : "object"
- },
- "type" : "array",
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ]
- },
- "parameters" : {
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid",
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "optional" : 1,
"type" : "integer"
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "import-from" : {
+ "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+ "format" : "pve-volume-id-or-absolute-path",
+ "format_description" : "source volume",
+ "optional" : 1,
"type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "description" : "List aliases",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- }
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases",
- "leaf" : 0,
- "text" : "aliases"
- },
- {
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset",
- "children" : [
- {
- "leaf" : 0,
- "text" : "{name}",
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}",
- "children" : [
- {
- "text" : "{cidr}",
- "leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}",
- "info" : {
- "PUT" : {
- "name" : "update_ip",
- "method" : "PUT",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "name" : {
- "maxLength" : 64,
- "description" : "IP set name.",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
- },
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "cidr" : {
- "format" : "IPorCIDRorAlias",
- "type" : "string",
- "description" : "Network/IP specification in CIDR format."
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "nomatch" : {
- "optional" : 1,
- "type" : "boolean"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "digest" : {
- "optional" : 1,
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "type" : "string"
- }
- }
- },
- "returns" : {
- "type" : "null"
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "description" : "Update IP or Network settings",
- "protected" : 1
- },
- "GET" : {
- "name" : "read_ip",
- "method" : "GET",
- "returns" : {
- "type" : "object"
- },
- "parameters" : {
- "properties" : {
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "maxLength" : 64,
- "description" : "IP set name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "format" : "IPorCIDRorAlias",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "protected" : 1,
- "description" : "Read IP or Network settings from IPSet.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- }
- },
- "DELETE" : {
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "description" : "IP set name.",
- "type" : "string"
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "digest" : {
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "type" : "string"
- },
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "format" : "IPorCIDRorAlias",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "method" : "DELETE",
- "name" : "remove_ip",
- "protected" : 1,
- "description" : "Remove IP or Network from IPSet.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- }
- }
- }
- }
- ],
- "info" : {
- "POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
},
- "description" : "Add IP or Network to IPSet.",
- "protected" : 1,
- "name" : "create_ip",
- "method" : "POST",
- "parameters" : {
- "properties" : {
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "type" : "string",
- "format" : "IPorCIDRorAlias"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "nomatch" : {
- "optional" : 1,
- "type" : "boolean"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "name" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "description" : "IP set name."
- },
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_length" : {
+ "alias" : "iops_rd_max_length"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
},
- "returns" : {
- "type" : "null"
- }
- },
- "DELETE" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
},
- "description" : "Delete IPSet",
- "method" : "DELETE",
- "name" : "delete_ipset",
- "returns" : {
- "type" : "null"
+ "iops_wr_length" : {
+ "alias" : "iops_wr_max_length"
},
- "parameters" : {
- "properties" : {
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "IP set name.",
- "maxLength" : 64,
- "type" : "string"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- }
- },
- "GET" : {
- "returns" : {
- "links" : [
- {
- "href" : "{cidr}",
- "rel" : "child"
- }
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
],
- "items" : {
- "properties" : {
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "nomatch" : {
- "type" : "boolean",
- "optional" : 1
- },
- "digest" : {
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 0,
- "type" : "string"
- },
- "cidr" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "type" : "array"
+ "optional" : 1,
+ "type" : "string"
},
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "name" : {
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "IP set name.",
- "maxLength" : 64,
- "type" : "string"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
- }
- }
+ "replicate" : {
+ "default" : 1,
+ "description" : "Whether the drive should considered for replication jobs.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "method" : "GET",
- "name" : "get_ipset",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
+ "rerror" : {
+ "description" : "Read error action.",
+ "enum" : [
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "description" : "List IPSet content"
- }
- }
- }
- ],
- "info" : {
- "POST" : {
- "name" : "create_ipset",
- "method" : "POST",
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "properties" : {
- "name" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "description" : "IP set name.",
- "maxLength" : 64
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
+ "optional" : 1,
+ "type" : "boolean",
+ "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ssd" : {
+ "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
+ "volume" : {
+ "alias" : "file"
},
- "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.",
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
"optional" : 1,
"type" : "string"
},
- "digest" : {
- "type" : "string",
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
"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",
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
"type" : "string"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- }
- },
- "additionalProperties" : 0
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "description" : "Create new IPSet"
- },
- "GET" : {
- "method" : "GET",
- "name" : "ipset_index",
- "returns" : {
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ],
- "items" : {
- "type" : "object",
- "properties" : {
- "name" : {
- "type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "description" : "IP set name.",
- "maxLength" : 64
- },
- "digest" : {
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 0,
- "type" : "string"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- }
}
},
- "type" : "array"
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
},
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "scsi[n]" : {
+ "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+ "format" : {
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads",
+ "io_uring"
+ ],
+ "optional" : 1,
"type" : "string"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
"minimum" : 1,
- "format" : "pve-vmid",
+ "optional" : 1,
"type" : "integer"
- }
- },
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "description" : "List IPSets"
- }
- },
- "leaf" : 0,
- "text" : "ipset"
- },
- {
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/options",
- "info" : {
- "GET" : {
- "description" : "Get VM firewall options.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
+ },
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd_length" : {
+ "alias" : "bps_rd_max_length"
+ },
+ "bps_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
"minimum" : 1,
- "format" : "pve-vmid",
+ "optional" : 1,
"type" : "integer"
},
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- }
- },
- "returns" : {
- "properties" : {
- "radv" : {
- "description" : "Allow sending Router Advertisement.",
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
"optional" : 1,
- "type" : "boolean"
+ "type" : "integer"
},
- "log_level_out" : {
- "description" : "Log level for outgoing traffic.",
+ "bps_wr_length" : {
+ "alias" : "bps_wr_max_length"
+ },
+ "bps_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
+ "type" : "integer"
+ },
+ "cache" : {
+ "description" : "The drive's cache mode",
"enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
],
+ "optional" : 1,
"type" : "string"
},
- "log_level_in" : {
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
"enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
+ "ignore",
+ "on"
],
- "description" : "Log level for incoming traffic.",
"optional" : 1,
- "type" : "string"
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "import-from" : {
+ "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+ "format" : "pve-volume-id-or-absolute-path",
+ "format_description" : "source volume",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_length" : {
+ "alias" : "iops_rd_max_length"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
},
- "enable" : {
- "type" : "boolean",
+ "iops_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Enable/disable firewall rules."
+ "type" : "integer"
},
- "dhcp" : {
- "type" : "boolean",
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Enable DHCP."
+ "type" : "integer"
},
- "ndp" : {
- "type" : "boolean",
+ "iops_wr_length" : {
+ "alias" : "iops_wr_max_length"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Enable NDP."
+ "type" : "integer"
},
- "ipfilter" : {
- "type" : "boolean",
+ "iops_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"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" : "integer"
},
- "macfilter" : {
+ "iothread" : {
+ "description" : "Whether to use iothreads for this drive",
"optional" : 1,
- "description" : "Enable/disable MAC address filter.",
"type" : "boolean"
},
- "policy_in" : {
- "type" : "string",
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Input policy.",
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ]
+ "type" : "number"
},
- "policy_out" : {
- "type" : "string",
- "description" : "Output policy.",
- "optional" : 1,
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ]
- }
- },
- "type" : "object"
- },
- "method" : "GET",
- "name" : "get_options"
- },
- "PUT" : {
- "method" : "PUT",
- "name" : "set_options",
- "returns" : {
- "type" : "null"
- },
- "description" : "Set Firewall options.",
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "log_level_out" : {
- "type" : "string",
- "description" : "Log level for outgoing traffic.",
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ]
+ "type" : "number"
},
- "delete" : {
- "format" : "pve-configid-list",
- "type" : "string",
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "A list of settings you want to delete."
+ "type" : "number"
},
- "radv" : {
- "type" : "boolean",
- "description" : "Allow sending Router Advertisement.",
- "optional" : 1
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
},
- "log_level_in" : {
- "type" : "string",
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ],
- "description" : "Log level for incoming traffic.",
- "optional" : 1
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
},
- "enable" : {
- "type" : "boolean",
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Enable/disable firewall rules."
+ "type" : "number"
},
- "digest" : {
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
"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.",
+ "queues" : {
+ "description" : "Number of queues.",
+ "minimum" : 2,
"optional" : 1,
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ]
+ "type" : "integer"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
+ "replicate" : {
+ "default" : 1,
+ "description" : "Whether the drive should considered for replication jobs.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "dhcp" : {
- "type" : "boolean",
+ "rerror" : {
+ "description" : "Read error action.",
+ "enum" : [
+ "ignore",
+ "report",
+ "stop"
+ ],
"optional" : 1,
- "description" : "Enable DHCP."
+ "type" : "string"
},
- "ndp" : {
+ "ro" : {
+ "description" : "Whether the drive is read-only.",
"optional" : 1,
- "description" : "Enable NDP.",
"type" : "boolean"
},
- "ipfilter" : {
+ "scsiblock" : {
+ "default" : 0,
+ "description" : "whether to use scsi-block for full passthrough of host block device\n\nWARNING: can lead to I/O errors in combination with low memory or high memory fragmentation on host",
"optional" : 1,
- "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"
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "optional" : 1,
+ "type" : "integer"
},
- "policy_out" : {
+ "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" : "Output policy.",
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
"type" : "string"
- }
- }
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- }
- }
- },
- "text" : "options",
- "leaf" : 1
- },
- {
- "leaf" : 1,
- "text" : "log",
- "info" : {
- "GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "n" : {
- "description" : "Line number",
- "type" : "integer"
- },
- "t" : {
- "type" : "string",
- "description" : "Line text"
- }
},
- "type" : "object"
- }
- },
- "method" : "GET",
- "name" : "log",
- "description" : "Read firewall log",
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
+ "optional" : 1,
+ "type" : "boolean",
+ "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
},
- "start" : {
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
"optional" : 1,
- "minimum" : 0,
- "type" : "integer"
+ "type" : "string"
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "snapshot" : {
+ "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ssd" : {
+ "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "optional" : 1,
"type" : "string"
},
- "limit" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Console"
- ]
- ]
- },
- "protected" : 1
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/log"
- },
- {
- "info" : {
- "GET" : {
- "parameters" : {
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "volume" : {
+ "alias" : "file"
},
- "type" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Only list references of specified type.",
+ "werror" : {
+ "description" : "Write error action.",
"enum" : [
- "alias",
- "ipset"
- ]
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
+ "optional" : 1,
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
}
},
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "name" : {
- "type" : "string"
- },
- "type" : {
- "type" : "string",
- "enum" : [
- "alias",
- "ipset"
- ]
- }
- },
- "type" : "object"
- }
- },
- "name" : "refs",
- "method" : "GET",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
},
- "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties."
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/firewall/refs",
- "leaf" : 1,
- "text" : "refs"
- }
- ],
- "path" : "/nodes/{node}/qemu/{vmid}/firewall",
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "index",
- "returns" : {
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ],
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "type" : "array"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "scsihw" : {
+ "default" : "lsi",
+ "description" : "SCSI controller model",
+ "enum" : [
+ "lsi",
+ "lsi53c810",
+ "virtio-scsi-pci",
+ "virtio-scsi-single",
+ "megasas",
+ "pvscsi"
+ ],
+ "optional" : 1,
"type" : "string"
},
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- }
- }
- },
- "description" : "Directory index.",
- "permissions" : {
- "user" : "all"
- }
- }
- }
- },
- {
- "text" : "rrd",
- "leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/rrd",
- "info" : {
- "GET" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "ds" : {
- "format" : "pve-configid-list",
+ "searchdomain" : {
+ "description" : "cloud-init: Sets DNS search domains for a container. Create will'\n\t .' automatically use the setting from the host if neither searchdomain nor nameserver'\n\t .' are set.",
+ "optional" : 1,
"type" : "string",
- "description" : "The list of datasources you want to display."
+ "typetext" : "<string>"
},
- "node" : {
- "format" : "pve-node",
+ "serial[n]" : {
+ "description" : "Create a serial device inside the VM (n is 0 to 3)",
+ "optional" : 1,
+ "pattern" : "(/dev/.+|socket)",
"type" : "string",
- "description" : "The cluster node name."
+ "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines -\nuse with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
},
- "timeframe" : {
+ "shares" : {
+ "default" : 1000,
+ "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning. Auto-ballooning is done by pvestatd.",
+ "maximum" : 50000,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 50000)"
+ },
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "smbios1" : {
+ "description" : "Specify SMBIOS type 1 fields.",
+ "format" : "pve-qm-smbios1",
+ "maxLength" : 512,
+ "optional" : 1,
"type" : "string",
- "enum" : [
- "hour",
- "day",
- "week",
- "month",
- "year"
- ],
- "description" : "Specify the time frame you are interested in."
+ "typetext" : "[base64=<1|0>] [,family=<Base64 encoded string>] [,manufacturer=<Base64 encoded string>] [,product=<Base64 encoded string>] [,serial=<Base64 encoded string>] [,sku=<Base64 encoded string>] [,uuid=<UUID>] [,version=<Base64 encoded string>]"
},
- "cf" : {
- "enum" : [
- "AVERAGE",
- "MAX"
- ],
- "description" : "The RRD consolidation function",
+ "smp" : {
+ "default" : 1,
+ "description" : "The number of CPUs. Please use option -sockets instead.",
+ "minimum" : 1,
"optional" : 1,
- "type" : "string"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
+ "sockets" : {
+ "default" : 1,
+ "description" : "The number of CPU sockets.",
"minimum" : 1,
+ "optional" : 1,
"type" : "integer",
- "format" : "pve-vmid"
- }
- }
- },
- "returns" : {
- "type" : "object",
- "properties" : {
- "filename" : {
- "type" : "string"
- }
- }
- },
- "method" : "GET",
- "name" : "rrd",
- "description" : "Read VM RRD statistics (returns PNG)",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "protected" : 1
- }
- }
- },
- {
- "info" : {
- "GET" : {
- "name" : "rrddata",
- "method" : "GET",
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "type" : "array"
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "format" : "pve-node",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "spice_enhancements" : {
+ "description" : "Configure additional enhancements for SPICE.",
+ "format" : {
+ "foldersharing" : {
+ "default" : "0",
+ "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "videostreaming" : {
+ "default" : "off",
+ "description" : "Enable video streaming. Uses compression for detected video streams.",
+ "enum" : [
+ "off",
+ "all",
+ "filter"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
+ },
+ "sshkeys" : {
+ "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
+ "format" : "urlencoded",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "startdate" : {
+ "default" : "now",
+ "description" : "Set the initial date of the real time clock. Valid format for date are:'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
+ "optional" : 1,
+ "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
},
- "timeframe" : {
+ "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",
- "description" : "Specify the time frame you are interested in.",
- "enum" : [
- "hour",
- "day",
- "week",
- "month",
- "year"
- ]
+ "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
},
- "cf" : {
- "type" : "string",
- "enum" : [
- "AVERAGE",
- "MAX"
- ],
+ "tablet" : {
+ "default" : 1,
+ "description" : "Enable/disable the USB tablet device.",
"optional" : 1,
- "description" : "The RRD consolidation function"
+ "type" : "boolean",
+ "typetext" : "<boolean>",
+ "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (`qm set <vmid> --vga qxl`)."
},
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "description" : "Read VM RRD statistics"
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/rrddata",
- "leaf" : 1,
- "text" : "rrddata"
- },
- {
- "path" : "/nodes/{node}/qemu/{vmid}/config",
- "info" : {
- "PUT" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Disk",
- "VM.Config.CDROM",
- "VM.Config.CPU",
- "VM.Config.Memory",
- "VM.Config.Network",
- "VM.Config.HWType",
- "VM.Config.Options"
- ],
- "any",
- 1
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "lock" : {
- "type" : "string",
- "description" : "Lock/unlock the VM.",
+ "tags" : {
+ "description" : "Tags of the VM. This is only meta information.",
+ "format" : "pve-tag-list",
"optional" : 1,
- "enum" : [
- "migrate",
- "backup",
- "snapshot",
- "rollback"
- ]
+ "type" : "string",
+ "typetext" : "<string>"
},
- "numa" : {
+ "tdf" : {
"default" : 0,
+ "description" : "Enable/disable time drift fix.",
+ "optional" : 1,
"type" : "boolean",
- "description" : "Enable/disable NUMA.",
- "optional" : 1
+ "typetext" : "<boolean>"
},
- "virtio[n]" : {
- "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
+ "template" : {
+ "default" : 0,
+ "description" : "Enable/disable Template.",
"optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "tpmstate0" : {
+ "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and 4 MiB will be used instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
"format" : {
- "mbps_wr" : {
- "type" : "number",
- "description" : "Maximum write speed speed in megabytes per second.",
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "import-from" : {
+ "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+ "format" : "pve-volume-id-or-absolute-path",
+ "format_description" : "source volume",
"optional" : 1,
- "format_description" : "mbps"
+ "type" : "string"
},
- "cyls" : {
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "format_description" : "count",
- "optional" : 1
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
},
- "secs" : {
- "format_description" : "count",
+ "version" : {
+ "default" : "v2.0",
+ "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
+ "enum" : [
+ "v1.2",
+ "v2.0"
+ ],
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "type" : "integer"
+ "type" : "string"
},
- "heads" : {
+ "volume" : {
+ "alias" : "file"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
+ },
+ "unused[n]" : {
+ "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
+ "format" : {
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume>"
+ },
+ "usb[n]" : {
+ "description" : "Configure an USB device (n is 0 to 4).",
+ "format" : {
+ "host" : {
+ "default_key" : 1,
+ "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
+ "format" : "pve-qm-usb-device",
+ "format_description" : "HOSTUSBDEVICE|spice",
+ "type" : "string"
+ },
+ "usb3" : {
+ "default" : 0,
+ "description" : "Specifies whether if given host option is a USB3 device or port.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
+ },
+ "vcpus" : {
+ "default" : 0,
+ "description" : "Number of hotplugged vcpus.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "vga" : {
+ "description" : "Configure the VGA hardware.",
+ "format" : {
+ "memory" : {
+ "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
+ "maximum" : 512,
+ "minimum" : 4,
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "format_description" : "count",
"type" : "integer"
},
- "mbps_rd" : {
- "type" : "number",
+ "type" : {
+ "default" : "std",
+ "default_key" : 1,
+ "description" : "Select the VGA type.",
+ "enum" : [
+ "cirrus",
+ "qxl",
+ "qxl2",
+ "qxl3",
+ "qxl4",
+ "none",
+ "serial0",
+ "serial1",
+ "serial2",
+ "serial3",
+ "std",
+ "virtio",
+ "virtio-gl",
+ "vmware"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[type=]<enum>] [,memory=<integer>]",
+ "verbose_description" : "Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is 'std' for all OS types besides some Windows versions (XP and older) which use 'cirrus'. The 'qxl' option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays them self.\nYou can also run without any graphic card, using a serial device as terminal."
+ },
+ "virtio[n]" : {
+ "description" : "Use volume as VIRTIO hard disk (n is 0 to 15). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+ "format" : {
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads",
+ "io_uring"
+ ],
"optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second.",
- "format_description" : "mbps"
+ "type" : "string"
},
"backup" : {
- "optional" : 1,
"description" : "Whether the drive should be included when making backups.",
- "format_description" : "on|off",
+ "optional" : 1,
"type" : "boolean"
},
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
"bps_rd" : {
- "type" : "integer",
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd_length" : {
+ "alias" : "bps_rd_max_length"
+ },
+ "bps_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr_length" : {
+ "alias" : "bps_wr_max_length"
+ },
+ "bps_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
"optional" : 1,
- "description" : "Maximum read speed speed in bytes per second.",
- "format_description" : "bps"
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
},
"format" : {
+ "description" : "The drive's backing file's data format.",
"enum" : [
"raw",
"cow",
"cloop"
],
"optional" : 1,
- "description" : "The drive's backing file's data format.",
- "format_description" : "drive format",
"type" : "string"
},
- "media" : {
- "enum" : [
- "cdrom",
- "disk"
- ],
- "format_description" : "cdrom|disk",
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
"optional" : 1,
- "description" : "The drive's media type.",
- "default" : "disk",
- "type" : "string"
+ "type" : "integer"
},
- "detect_zeroes" : {
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+ "import-from" : {
+ "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+ "format" : "pve-volume-id-or-absolute-path",
+ "format_description" : "source volume",
"optional" : 1,
- "type" : "boolean"
+ "type" : "string"
},
- "iops_wr" : {
- "optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
"format_description" : "iops",
+ "optional" : 1,
"type" : "integer"
},
- "mbps_max" : {
- "type" : "number",
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "mbps"
+ "type" : "integer"
},
- "serial" : {
- "type" : "string",
- "format" : "urlencoded",
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "format_description" : "serial",
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "maxLength" : 60
+ "type" : "integer"
},
- "discard" : {
- "format_description" : "ignore|on",
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "enum" : [
- "ignore",
- "on"
- ],
- "type" : "string"
+ "type" : "integer"
},
- "file" : {
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path",
- "default_key" : 1,
- "format_description" : "volume",
- "description" : "The drive's backing volume."
+ "iops_rd_length" : {
+ "alias" : "iops_rd_max_length"
},
- "mbps" : {
- "description" : "Maximum r/w speed speed in megabytes per second.",
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "integer"
},
- "bps_wr" : {
- "type" : "integer",
+ "iops_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
"optional" : 1,
- "format_description" : "bps",
- "description" : "Maximum write speed speed in bytes per second."
+ "type" : "integer"
},
- "iops" : {
- "type" : "integer",
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "description" : "Maximum r/w I/O speed in operations per second.",
- "format_description" : "iops"
+ "type" : "integer"
},
- "size" : {
- "description" : "Disk size. This is purely informational and has no effect.",
+ "iops_wr_length" : {
+ "alias" : "iops_wr_max_length"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
"optional" : 1,
- "format" : "disk-size",
- "type" : "string"
+ "type" : "integer"
+ },
+ "iops_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
},
"iothread" : {
- "format_description" : "off|on",
"description" : "Whether to use iothreads for this drive",
"optional" : 1,
"type" : "boolean"
},
- "iops_wr_max" : {
- "type" : "integer",
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "iops",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second."
+ "type" : "number"
},
- "mbps_rd_max" : {
- "type" : "number",
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
"format_description" : "mbps",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "optional" : 1
+ "optional" : 1,
+ "type" : "number"
},
- "aio" : {
- "enum" : [
- "native",
- "threads"
- ],
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "native|threads",
- "description" : "AIO type to use.",
- "type" : "string"
+ "type" : "number"
},
- "iops_max" : {
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "format_description" : "iops",
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "type" : "integer"
+ "type" : "number"
},
- "bps" : {
- "format_description" : "bps",
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Maximum r/w speed speed in bytes per second.",
- "type" : "integer"
+ "type" : "number"
},
"mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
"format_description" : "mbps",
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
"optional" : 1,
"type" : "number"
},
- "cache" : {
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
"enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
+ "cdrom",
+ "disk"
],
"optional" : 1,
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "description" : "The drive's cache mode",
"type" : "string"
},
- "snapshot" : {
- "type" : "boolean",
+ "replicate" : {
+ "default" : 1,
+ "description" : "Whether the drive should considered for replication jobs.",
"optional" : 1,
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making snapshots."
+ "type" : "boolean"
},
"rerror" : {
- "type" : "string",
- "optional" : 1,
"description" : "Read error action.",
- "format_description" : "ignore|report|stop",
"enum" : [
"ignore",
"report",
"stop"
- ]
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ro" : {
+ "description" : "Whether the drive is read-only.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
+ "optional" : 1,
+ "type" : "boolean",
+ "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
+ "optional" : 1,
+ "type" : "boolean"
},
"trans" : {
+ "description" : "Force disk geometry bios translation mode.",
"enum" : [
"none",
"lba",
"auto"
],
- "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.",
"optional" : 1,
- "format_description" : "iops"
+ "type" : "string"
}
},
- "type" : "string"
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+ },
+ "vmgenid" : {
+ "default" : "1 (autogenerated)",
+ "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
+ "format_description" : "UUID",
+ "optional" : 1,
+ "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
+ "type" : "string",
+ "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done through API/CLI create or update methods, but not when manually editing the config file."
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "vmstatestorage" : {
+ "description" : "Default storage for VM state volumes/files.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "watchdog" : {
+ "description" : "Create a virtual hardware watchdog device.",
+ "format" : "pve-qm-watchdog",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
+ "verbose_description" : "Create a virtual hardware watchdog device. Once enabled (by a guest action), the watchdog must be periodically polled by an agent inside the guest or else the watchdog will reset the guest (or execute the respective action specified)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Disk",
+ "VM.Config.CDROM",
+ "VM.Config.CPU",
+ "VM.Config.Memory",
+ "VM.Config.Network",
+ "VM.Config.HWType",
+ "VM.Config.Options",
+ "VM.Config.Cloudinit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/config",
+ "text" : "config"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get the virtual machine configuration with both current and pending values.",
+ "method" : "GET",
+ "name" : "vm_pending",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "delete" : {
+ "description" : "Indicates a pending delete request if present and not 0. The value 2 indicates a force-delete request.",
+ "maximum" : 2,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "key" : {
+ "description" : "Configuration option name.",
+ "type" : "string"
+ },
+ "pending" : {
+ "description" : "Pending value.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "value" : {
+ "description" : "Current value.",
+ "optional" : 1,
+ "type" : "string"
+ }
},
- "bios" : {
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/pending",
+ "text" : "pending"
+ },
+ {
+ "info" : {
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Unlink/delete disk images.",
+ "method" : "PUT",
+ "name" : "unlink",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "force" : {
+ "description" : "Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "idlist" : {
+ "description" : "A list of disk IDs you want to delete.",
+ "format" : "pve-configid-list",
"type" : "string",
- "default" : "seabios",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Disk"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/unlink",
+ "text" : "unlink"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Creates a TCP VNC proxy connections.",
+ "method" : "POST",
+ "name" : "vncproxy",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "generate-password" : {
+ "default" : 0,
+ "description" : "Generates a random password to be used as ticket instead of the API ticket.",
"optional" : 1,
- "description" : "Select BIOS implementation.",
- "enum" : [
- "seabios",
- "ovmf"
- ]
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "agent" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "websocket" : {
+ "description" : "starts websockify instead of vncproxy",
"optional" : 1,
- "description" : "Enable/disable Qemu GuestAgent.",
- "default" : 0,
- "type" : "boolean"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cert" : {
+ "type" : "string"
},
- "parallel[n]" : {
+ "password" : {
+ "description" : "Returned if requested with 'generate-password' param. Consists of printable ASCII characters ('!' .. '~').",
"optional" : 1,
- "description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nExperimental: user reported problems with this option.\n",
- "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
"type" : "string"
},
- "tablet" : {
+ "port" : {
+ "type" : "integer"
+ },
+ "ticket" : {
+ "type" : "string"
+ },
+ "upid" : {
+ "type" : "string"
+ },
+ "user" : {
+ "type" : "string"
+ }
+ }
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/vncproxy",
+ "text" : "vncproxy"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Creates a TCP proxy connections.",
+ "method" : "POST",
+ "name" : "termproxy",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "serial" : {
+ "description" : "opens a serial terminal (defaults to display)",
+ "enum" : [
+ "serial0",
+ "serial1",
+ "serial2",
+ "serial3"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "port" : {
+ "type" : "integer"
+ },
+ "ticket" : {
+ "type" : "string"
+ },
+ "upid" : {
+ "type" : "string"
+ },
+ "user" : {
+ "type" : "string"
+ }
+ }
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/termproxy",
+ "text" : "termproxy"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Opens a weksocket for VNC traffic.",
+ "method" : "GET",
+ "name" : "vncwebsocket",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "port" : {
+ "description" : "Port number returned by previous vncproxy call.",
+ "maximum" : 5999,
+ "minimum" : 5900,
+ "type" : "integer",
+ "typetext" : "<integer> (5900 - 5999)"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "vncticket" : {
+ "description" : "Ticket from previous call to vncproxy.",
+ "maxLength" : 512,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Console"
+ ]
+ ],
+ "description" : "You also need to pass a valid ticket (vncticket)."
+ },
+ "returns" : {
+ "properties" : {
+ "port" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/vncwebsocket",
+ "text" : "vncwebsocket"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Returns a SPICE configuration to connect to the VM.",
+ "method" : "POST",
+ "name" : "spiceproxy",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "proxy" : {
+ "description" : "SPICE proxy server. This can be used by the client to specify the proxy server. All nodes in a cluster runs 'spiceproxy', so it is up to the client to choose one. By default, we return the node where the VM is currently running. As reasonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI).",
+ "format" : "address",
"optional" : 1,
- "description" : "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",
+ "typetext" : "<string>"
},
- "smp" : {
- "optional" : 1,
- "description" : "The number of CPUs. Please use option -sockets instead.",
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
"minimum" : 1,
"type" : "integer",
- "default" : 1
- },
- "usb[n]" : {
- "format" : {
- "usb3" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Specifies whether if given host option is a USB3 device or port",
- "format_description" : "yes|no"
- },
- "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
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "additionalProperties" : 1,
+ "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
+ "properties" : {
+ "host" : {
+ "type" : "string"
},
- "tdf" : {
- "optional" : 1,
- "description" : "Enable/disable time drift fix.",
- "default" : 0,
- "type" : "boolean"
+ "password" : {
+ "type" : "string"
},
- "cdrom" : {
- "format" : "pve-qm-drive",
- "type" : "string",
- "optional" : 1,
- "description" : "This is an alias for option -ide2",
- "typetext" : "volume"
+ "proxy" : {
+ "type" : "string"
},
- "sockets" : {
- "type" : "integer",
- "default" : 1,
- "minimum" : 1,
- "optional" : 1,
- "description" : "The number of CPU sockets."
+ "tls-port" : {
+ "type" : "integer"
},
- "serial[n]" : {
- "description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a host serial device (i.e. /dev/ttyS0), or create a unix socket on the host side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines - use with special care.\n\nExperimental: user reported problems with this option.\n",
- "optional" : 1,
- "pattern" : "(/dev/.+|socket)",
+ "type" : {
"type" : "string"
- },
- "ide[n]" : {
- "format" : {
- "mbps_wr_max" : {
- "type" : "number",
- "optional" : 1,
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
- "format_description" : "mbps"
- },
- "bps" : {
- "format_description" : "bps",
- "description" : "Maximum r/w speed speed in bytes per second.",
- "optional" : 1,
- "type" : "integer"
- },
- "snapshot" : {
- "type" : "boolean",
- "optional" : 1,
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making snapshots."
- },
- "cache" : {
- "type" : "string",
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ],
- "optional" : 1,
- "description" : "The drive's cache mode",
- "format_description" : "none|writethrough|writeback|unsafe|directsync"
- },
- "werror" : {
+ }
+ }
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/spiceproxy",
+ "text" : "spiceproxy"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 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",
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ],
- "description" : "Write error action.",
- "optional" : 1,
- "format_description" : "enospc|ignore|report|stop"
+ "typetext" : "<string>"
},
- "iops_rd" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "format_description" : "iops",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "agent" : {
+ "description" : "Qemu GuestAgent enabled in config.",
"optional" : 1,
- "description" : "Maximum read I/O speed in operations per second."
+ "type" : "boolean"
},
- "rerror" : {
- "type" : "string",
+ "cpus" : {
+ "description" : "Maximum usable CPUs.",
"optional" : 1,
- "description" : "Read error action.",
- "format_description" : "ignore|report|stop",
- "enum" : [
- "ignore",
- "report",
- "stop"
- ]
+ "type" : "number"
},
- "trans" : {
- "type" : "string",
- "optional" : 1,
- "format_description" : "none|lba|auto",
- "description" : "Force disk geometry bios translation mode.",
- "enum" : [
- "none",
- "lba",
- "auto"
- ]
+ "ha" : {
+ "description" : "HA manager service status.",
+ "type" : "object"
},
- "volume" : {
- "alias" : "file"
+ "lock" : {
+ "description" : "The current config lock, if any.",
+ "optional" : 1,
+ "type" : "string"
},
- "iops_rd_max" : {
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+ "maxdisk" : {
+ "description" : "Root disk size in bytes.",
"optional" : 1,
- "format_description" : "iops",
+ "renderer" : "bytes",
"type" : "integer"
},
- "mbps" : {
- "format_description" : "mbps",
+ "maxmem" : {
+ "description" : "Maximum memory in bytes.",
"optional" : 1,
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "type" : "number"
- },
- "bps_wr" : {
- "type" : "integer",
- "description" : "Maximum write speed speed in bytes per second.",
- "format_description" : "bps",
- "optional" : 1
+ "renderer" : "bytes",
+ "type" : "integer"
},
- "iops" : {
- "type" : "integer",
- "description" : "Maximum r/w I/O speed in operations per second.",
+ "name" : {
+ "description" : "VM name.",
"optional" : 1,
- "format_description" : "iops"
+ "type" : "string"
},
- "discard" : {
- "type" : "string",
- "enum" : [
- "ignore",
- "on"
- ],
+ "pid" : {
+ "description" : "PID of running qemu process.",
"optional" : 1,
- "format_description" : "ignore|on",
- "description" : "Controls whether to pass discard/trim requests to the underlying storage."
+ "type" : "integer"
},
- "serial" : {
- "maxLength" : 60,
+ "qmpstatus" : {
+ "description" : "Qemu QMP agent status.",
"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.",
+ "running-machine" : {
+ "description" : "The currently running machine type (if running).",
"optional" : 1,
- "format_description" : "mbps"
+ "type" : "string"
},
- "file" : {
- "format_description" : "volume",
- "description" : "The drive's backing volume.",
- "default_key" : 1,
- "format" : "pve-volume-id-or-qm-path",
+ "running-qemu" : {
+ "description" : "The currently running QEMU version (if running).",
+ "optional" : 1,
"type" : "string"
},
- "mbps_rd_max" : {
+ "spice" : {
+ "description" : "Qemu VGA configuration supports spice.",
"optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "type" : "number"
+ "type" : "boolean"
},
- "aio" : {
- "type" : "string",
+ "status" : {
+ "description" : "Qemu process status.",
"enum" : [
- "native",
- "threads"
+ "stopped",
+ "running"
],
- "description" : "AIO type to use.",
- "format_description" : "native|threads",
- "optional" : 1
- },
- "iops_max" : {
- "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",
- "optional" : 1,
- "description" : "Disk size. This is purely informational and has no effect."
- },
- "iops_wr_max" : {
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
- "optional" : 1,
- "format_description" : "iops",
- "type" : "integer"
+ "type" : "string"
},
- "bps_rd" : {
- "type" : "integer",
+ "tags" : {
+ "description" : "The current configured tags, if any",
"optional" : 1,
- "description" : "Maximum read speed speed in bytes per second.",
- "format_description" : "bps"
+ "type" : "string"
},
- "backup" : {
+ "uptime" : {
+ "description" : "Uptime.",
"optional" : 1,
- "description" : "Whether the drive should be included when making backups.",
- "format_description" : "on|off",
- "type" : "boolean"
+ "renderer" : "duration",
+ "type" : "integer"
},
- "model" : {
- "type" : "string",
- "format" : "urlencoded",
- "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/status/current",
+ "text" : "current"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Start virtual machine.",
+ "method" : "POST",
+ "name" : "vm_start",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "force-cpu" : {
+ "description" : "Override QEMU's -cpu argument with the given string.",
"optional" : 1,
- "maxLength" : 120,
- "format_description" : "model"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "media" : {
- "format_description" : "cdrom|disk",
+ "machine" : {
+ "description" : "Specifies the Qemu machine type.",
+ "maxLength" : 40,
"optional" : 1,
- "description" : "The drive's media type.",
- "enum" : [
- "cdrom",
- "disk"
- ],
- "type" : "string",
- "default" : "disk"
+ "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
+ "type" : "string"
},
- "detect_zeroes" : {
- "type" : "boolean",
+ "migratedfrom" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"optional" : 1,
- "description" : "Controls whether to detect and try to optimize writes of zeroes."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "iops_wr" : {
- "type" : "integer",
+ "migration_network" : {
+ "description" : "CIDR of the (sub) network that is used for migration.",
+ "format" : "CIDR",
"optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
- "format_description" : "iops"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "format" : {
+ "migration_type" : {
+ "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
"enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
+ "secure",
+ "insecure"
],
"optional" : 1,
- "description" : "The drive's backing file's data format.",
- "format_description" : "drive format",
"type" : "string"
},
- "cyls" : {
- "format_description" : "count",
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "type" : "integer"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "mbps_wr" : {
- "type" : "number",
- "format_description" : "mbps",
+ "stateuri" : {
+ "description" : "Some command save/restore state from this location.",
+ "maxLength" : 128,
"optional" : 1,
- "description" : "Maximum write speed speed in megabytes per second."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "heads" : {
+ "targetstorage" : {
+ "description" : "Mapping from source to target storages. Providing only a single storage ID maps all source storages to that storage. Providing the special value '1' will map each source storage to itself.",
+ "format" : "storage-pair-list",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "format_description" : "count",
- "type" : "integer"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "mbps_rd" : {
+ "timeout" : {
+ "default" : "max(30, vm memory in GiB)",
+ "description" : "Wait maximal timeout seconds.",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second.",
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "secs" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "optional" : 1,
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific sector count."
+ "typetext" : "<integer> (1 - N)"
}
- },
- "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
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.PowerMgmt"
+ ]
+ ]
},
- "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",
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
"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]" : {
- "format" : {
- "secs" : {
- "type" : "integer",
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "optional" : 1
- },
- "mbps_rd" : {
- "type" : "number",
- "description" : "Maximum read speed speed in megabytes per second.",
- "optional" : 1,
- "format_description" : "mbps"
- },
- "heads" : {
- "format_description" : "count",
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/status/start",
+ "text" : "start"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 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" : {
+ "default" : 0,
+ "description" : "Do not deactivate storage volumes.",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "type" : "integer"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
- "format_description" : "mbps",
+ "migratedfrom" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"optional" : 1,
- "type" : "number"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "cyls" : {
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "optional" : 1,
- "format_description" : "count",
- "type" : "integer"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "format" : {
- "format_description" : "drive format",
- "description" : "The drive's backing file's data format.",
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
"optional" : 1,
- "enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
- ],
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "detect_zeroes" : {
+ "timeout" : {
+ "description" : "Wait maximal timeout seconds.",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "type" : "boolean"
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "iops_wr" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "format_description" : "iops",
- "optional" : 1,
- "description" : "Maximum write I/O speed in operations per second."
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.PowerMgmt"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/status/stop",
+ "text" : "stop"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Reset virtual machine.",
+ "method" : "POST",
+ "name" : "vm_reset",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "media" : {
- "enum" : [
- "cdrom",
- "disk"
- ],
- "description" : "The drive's media type.",
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
"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
- },
- "bps_rd" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum read speed speed in bytes per second.",
- "format_description" : "bps"
- },
- "iops_wr_max" : {
- "type" : "integer",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
- "optional" : 1,
- "format_description" : "iops"
- },
- "size" : {
- "description" : "Disk size. This is purely informational and has no effect.",
- "optional" : 1,
- "format" : "disk-size",
- "type" : "string"
+ "typetext" : "<boolean>"
},
- "iops_max" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "format_description" : "iops",
- "optional" : 1
- },
- "aio" : {
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.PowerMgmt"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/status/reset",
+ "text" : "reset"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Shutdown virtual machine. This is similar to pressing the power button on a physical machine.This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown.",
+ "method" : "POST",
+ "name" : "vm_shutdown",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "forceStop" : {
+ "default" : 0,
+ "description" : "Make sure the VM stops.",
"optional" : 1,
- "format_description" : "native|threads",
- "description" : "AIO type to use.",
- "enum" : [
- "native",
- "threads"
- ],
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "mbps_rd_max" : {
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+ "keepActive" : {
+ "default" : 0,
+ "description" : "Do not deactivate storage volumes.",
"optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
- },
- "file" : {
- "default_key" : 1,
- "description" : "The drive's backing volume.",
- "format_description" : "volume",
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "serial" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "urlencoded",
- "format_description" : "serial",
- "optional" : 1,
- "maxLength" : 60,
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long."
+ "typetext" : "<string>"
},
- "discard" : {
- "type" : "string",
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
"optional" : 1,
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "format_description" : "ignore|on",
- "enum" : [
- "ignore",
- "on"
- ]
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "mbps_max" : {
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "timeout" : {
+ "description" : "Wait maximal timeout seconds.",
+ "minimum" : 0,
"optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "iops" : {
- "description" : "Maximum r/w I/O speed in operations per second.",
- "optional" : 1,
- "format_description" : "iops",
- "type" : "integer"
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.PowerMgmt"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/status/shutdown",
+ "text" : "shutdown"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Reboot the VM by shutting it down, and starting it again. Applies pending changes.",
+ "method" : "POST",
+ "name" : "vm_reboot",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "mbps" : {
- "type" : "number",
+ "timeout" : {
+ "description" : "Wait maximal timeout seconds for the shutdown.",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "format_description" : "mbps"
- },
- "bps_wr" : {
"type" : "integer",
- "optional" : 1,
- "description" : "Maximum write speed speed in bytes per second.",
- "format_description" : "bps"
+ "typetext" : "<integer> (0 - N)"
},
- "iops_rd_max" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "optional" : 1,
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "format_description" : "iops"
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.PowerMgmt"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/status/reboot",
+ "text" : "reboot"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Suspend virtual machine.",
+ "method" : "POST",
+ "name" : "vm_suspend",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "volume" : {
- "alias" : "file"
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "trans" : {
- "format_description" : "none|lba|auto",
+ "statestorage" : {
+ "description" : "The storage for the VM state",
+ "format" : "pve-storage-id",
"optional" : 1,
- "description" : "Force disk geometry bios translation mode.",
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
- "type" : "string"
+ "requires" : "todisk",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "rerror" : {
+ "todisk" : {
+ "default" : 0,
+ "description" : "If set, suspends the VM to disk. Will be resumed on next VM start.",
"optional" : 1,
- "description" : "Read error action.",
- "format_description" : "ignore|report|stop",
- "enum" : [
- "ignore",
- "report",
- "stop"
- ],
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "iops_rd" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.PowerMgmt"
+ ]
+ ],
+ "description" : "You need 'VM.PowerMgmt' on /vms/{vmid}, and if you have set 'todisk', you need also 'VM.Config.Disk' on /vms/{vmid} and 'Datastore.AllocateSpace' on the storage for the vmstate."
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/status/suspend",
+ "text" : "suspend"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Resume virtual machine.",
+ "method" : "POST",
+ "name" : "vm_resume",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "nocheck" : {
"optional" : 1,
- "description" : "Maximum read I/O speed in operations per second.",
- "format_description" : "iops"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "werror" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format_description" : "enospc|ignore|report|stop",
- "optional" : 1,
- "description" : "Write error action.",
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ]
- },
- "cache" : {
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ],
- "optional" : 1,
- "description" : "The drive's cache mode",
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "type" : "string"
- },
- "snapshot" : {
- "optional" : 1,
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making snapshots.",
- "type" : "boolean"
+ "typetext" : "<string>"
},
- "mbps_wr_max" : {
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
"optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "bps" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "optional" : 1,
- "format_description" : "bps",
- "description" : "Maximum r/w speed speed in bytes per second."
+ "typetext" : "<integer> (1 - N)"
}
- },
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.PowerMgmt"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/status/resume",
+ "text" : "resume"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index",
+ "method" : "GET",
+ "name" : "vmcmdidx",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
- "optional" : 1
+ "typetext" : "<string>"
},
- "bootdisk" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/status",
+ "text" : "status"
+ },
+ {
+ "info" : {
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Send key event to virtual machine.",
+ "method" : "PUT",
+ "name" : "vm_sendkey",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "key" : {
+ "description" : "The key (qemu monitor encoding).",
"type" : "string",
- "format" : "pve-qm-bootdisk",
- "pattern" : "(ide|sata|scsi|virtio)\\d+",
- "description" : "Enable booting from specified disk.",
- "optional" : 1
+ "typetext" : "<string>"
},
- "kvm" : {
- "default" : 1,
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
"type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/sendkey",
+ "text" : "sendkey"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Check if feature for virtual machine is available.",
+ "method" : "GET",
+ "name" : "vm_feature",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "feature" : {
+ "description" : "Feature to check.",
+ "enum" : [
+ "snapshot",
+ "clone",
+ "copy"
+ ],
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
"optional" : 1,
- "description" : "Enable/disable KVM hardware virtualization."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "hostpci[n]" : {
- "format" : "pve-qm-hostpci",
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "hasFeature" : {
+ "type" : "boolean"
+ },
+ "nodes" : {
+ "items" : {
+ "type" : "string"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/feature",
+ "text" : "feature"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a copy of virtual machine/template.",
+ "method" : "POST",
+ "name" : "clone_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "bwlimit" : {
+ "default" : "clone limit from datacenter or storage config",
+ "description" : "Override I/O bandwidth limit (in KiB/s).",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "description" : {
+ "description" : "Description for the new VM.",
+ "optional" : 1,
"type" : "string",
- "description" : "Map host pci devices. HOSTPCIDEVICE syntax is:\n\n'bus:dev.func' (hexadecimal numbers)\n\nYou can us the 'lspci' command to list existing pci devices.\n\nThe 'rombar' option determines whether or not the device's ROM will be visible in the guest's memory map (default is 'on').\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nExperimental: user reported problems with this option.\n",
- "optional" : 1
+ "typetext" : "<string>"
},
- "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",
+ "format" : {
+ "description" : "Target format for file storage. Only valid for full clone.",
"enum" : [
- "other",
- "wxp",
- "w2k",
- "w2k3",
- "w2k8",
- "wvista",
- "win7",
- "win8",
- "l24",
- "l26",
- "solaris"
+ "raw",
+ "qcow2",
+ "vmdk"
],
+ "optional" : 1,
"type" : "string"
},
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ "full" : {
+ "description" : "Create a full copy of all disks. This is always done when you clone a normal VM. For VM templates, we try to create a linked clone by default.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "unused[n]" : {
- "format" : "pve-volume-id",
+ "name" : {
+ "description" : "Set a name for the new VM.",
+ "format" : "dns-name",
+ "optional" : 1,
"type" : "string",
- "description" : "Reference to unused volumes.",
- "optional" : 1
+ "typetext" : "<string>"
},
- "template" : {
- "default" : 0,
- "type" : "boolean",
- "description" : "Enable/disable Template.",
- "optional" : 1
+ "newid" : {
+ "description" : "VMID for the clone.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "watchdog" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"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)"
+ "typetext" : "<string>"
},
- "digest" : {
+ "pool" : {
+ "description" : "Add the new VM to the specified pool.",
+ "format" : "pve-poolid",
+ "optional" : 1,
"type" : "string",
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1
+ "typetext" : "<string>"
},
- "vcpus" : {
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
"optional" : 1,
- "description" : "Number of hotplugged vcpus.",
- "type" : "integer",
- "default" : 0,
- "minimum" : 1
+ "type" : "string",
+ "typetext" : "<string>"
},
- "migrate_downtime" : {
- "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
+ "storage" : {
+ "description" : "Target storage for full clone.",
+ "format" : "pve-storage-id",
"optional" : 1,
- "type" : "number",
- "default" : 0.1,
- "minimum" : 0
+ "type" : "string",
+ "typetext" : "<string>"
},
- "cores" : {
- "type" : "integer",
- "default" : 1,
- "minimum" : 1,
+ "target" : {
+ "description" : "Target node. Only allowed if the original VM is on shared storage.",
+ "format" : "pve-node",
"optional" : 1,
- "description" : "The number of cores per socket."
- },
- "net[n]" : {
- "format" : "pve-qm-net",
"type" : "string",
- "optional" : 1,
- "description" : "Specify network devices.\n\nMODEL is one of: e1000 e1000-82540em e1000-82544gc e1000-82545em i82551 i82557b i82559er ne2k_isa ne2k_pci pcnet rtl8139 virtio vmxnet3\n\nXX:XX:XX:XX:XX:XX should be an unique MAC address. This is\nautomatically generated if not specified.\n\nThe bridge parameter can be used to automatically add the interface to a bridge device. The Proxmox VE standard bridge is called 'vmbr0'.\n\nOption 'rate' is used to limit traffic bandwidth from and to this interface. It is specified as floating point number, unit is 'Megabytes per second'.\n\nIf you specify no bridge, we create a kvm 'user' (NATed) network device, which provides DHCP and DNS services. The following addresses are used:\n\n10.0.2.2 Gateway\n10.0.2.3 DNS Server\n10.0.2.4 SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n\n"
+ "typetext" : "<string>"
},
- "keyboard" : {
- "description" : "Keybord layout for vnc server. Default is read from the datacenter configuration file.",
- "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"
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "and",
+ [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Clone"
+ ]
+ ],
+ [
+ "or",
+ [
+ "perm",
+ "/vms/{newid}",
+ [
+ "VM.Allocate"
+ ]
],
- "default" : "en-us",
- "type" : "string"
- },
- "freeze" : {
- "type" : "boolean",
+ [
+ "perm",
+ "/pool/{pool}",
+ [
+ "VM.Allocate"
+ ],
+ "require_param",
+ "pool"
+ ]
+ ]
+ ],
+ "description" : "You need 'VM.Clone' permissions on /vms/{vmid}, and 'VM.Allocate' permissions on /vms/{newid} (or on the VM pool /pool/{pool}). You also need 'Datastore.AllocateSpace' on any used storage."
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/clone",
+ "text" : "clone"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Move volume to different storage or to a different VM.",
+ "method" : "POST",
+ "name" : "move_vm_disk",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "bwlimit" : {
+ "default" : "move limit from datacenter or storage config",
+ "description" : "Override I/O bandwidth limit (in KiB/s).",
+ "minimum" : "0",
"optional" : 1,
- "description" : "Freeze CPU at startup (use 'c' monitor command to start execution)."
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "numa[n]" : {
+ "delete" : {
+ "default" : 0,
+ "description" : "Delete the original disk after successful copy. By default the original disk is kept as unused disk.",
"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"
- },
- "force" : {
- "requires" : "delete",
"type" : "boolean",
- "optional" : 1,
- "description" : "Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal."
+ "typetext" : "<boolean>"
},
- "cpu" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1\"\n\t\t .\" digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
"optional" : 1,
- "description" : "Emulated CPU type.",
- "format" : {
- "cputype" : {
- "enum" : [
- "486",
- "athlon",
- "pentium",
- "pentium2",
- "pentium3",
- "coreduo",
- "core2duo",
- "kvm32",
- "kvm64",
- "qemu32",
- "qemu64",
- "phenom",
- "Conroe",
- "Penryn",
- "Nehalem",
- "Westmere",
- "SandyBridge",
- "IvyBridge",
- "Haswell",
- "Haswell-noTSX",
- "Broadwell",
- "Broadwell-noTSX",
- "Opteron_G1",
- "Opteron_G2",
- "Opteron_G3",
- "Opteron_G4",
- "Opteron_G5",
- "host"
- ],
- "default_key" : 1,
- "format_description" : "cputype",
- "description" : "Emulated CPU type.",
- "default" : "kvm64",
- "type" : "string"
- },
- "hidden" : {
- "optional" : 1,
- "description" : "Do not identify as a KVM virtual machine.",
- "type" : "boolean",
- "default" : 0
- }
- },
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disk" : {
+ "description" : "The disk you want to move.",
+ "enum" : [
+ "ide0",
+ "ide1",
+ "ide2",
+ "ide3",
+ "scsi0",
+ "scsi1",
+ "scsi2",
+ "scsi3",
+ "scsi4",
+ "scsi5",
+ "scsi6",
+ "scsi7",
+ "scsi8",
+ "scsi9",
+ "scsi10",
+ "scsi11",
+ "scsi12",
+ "scsi13",
+ "scsi14",
+ "scsi15",
+ "scsi16",
+ "scsi17",
+ "scsi18",
+ "scsi19",
+ "scsi20",
+ "scsi21",
+ "scsi22",
+ "scsi23",
+ "scsi24",
+ "scsi25",
+ "scsi26",
+ "scsi27",
+ "scsi28",
+ "scsi29",
+ "scsi30",
+ "virtio0",
+ "virtio1",
+ "virtio2",
+ "virtio3",
+ "virtio4",
+ "virtio5",
+ "virtio6",
+ "virtio7",
+ "virtio8",
+ "virtio9",
+ "virtio10",
+ "virtio11",
+ "virtio12",
+ "virtio13",
+ "virtio14",
+ "virtio15",
+ "sata0",
+ "sata1",
+ "sata2",
+ "sata3",
+ "sata4",
+ "sata5",
+ "efidisk0",
+ "tpmstate0",
+ "unused0",
+ "unused1",
+ "unused2",
+ "unused3",
+ "unused4",
+ "unused5",
+ "unused6",
+ "unused7",
+ "unused8",
+ "unused9",
+ "unused10",
+ "unused11",
+ "unused12",
+ "unused13",
+ "unused14",
+ "unused15",
+ "unused16",
+ "unused17",
+ "unused18",
+ "unused19",
+ "unused20",
+ "unused21",
+ "unused22",
+ "unused23",
+ "unused24",
+ "unused25",
+ "unused26",
+ "unused27",
+ "unused28",
+ "unused29",
+ "unused30",
+ "unused31",
+ "unused32",
+ "unused33",
+ "unused34",
+ "unused35",
+ "unused36",
+ "unused37",
+ "unused38",
+ "unused39",
+ "unused40",
+ "unused41",
+ "unused42",
+ "unused43",
+ "unused44",
+ "unused45",
+ "unused46",
+ "unused47",
+ "unused48",
+ "unused49",
+ "unused50",
+ "unused51",
+ "unused52",
+ "unused53",
+ "unused54",
+ "unused55",
+ "unused56",
+ "unused57",
+ "unused58",
+ "unused59",
+ "unused60",
+ "unused61",
+ "unused62",
+ "unused63",
+ "unused64",
+ "unused65",
+ "unused66",
+ "unused67",
+ "unused68",
+ "unused69",
+ "unused70",
+ "unused71",
+ "unused72",
+ "unused73",
+ "unused74",
+ "unused75",
+ "unused76",
+ "unused77",
+ "unused78",
+ "unused79",
+ "unused80",
+ "unused81",
+ "unused82",
+ "unused83",
+ "unused84",
+ "unused85",
+ "unused86",
+ "unused87",
+ "unused88",
+ "unused89",
+ "unused90",
+ "unused91",
+ "unused92",
+ "unused93",
+ "unused94",
+ "unused95",
+ "unused96",
+ "unused97",
+ "unused98",
+ "unused99",
+ "unused100",
+ "unused101",
+ "unused102",
+ "unused103",
+ "unused104",
+ "unused105",
+ "unused106",
+ "unused107",
+ "unused108",
+ "unused109",
+ "unused110",
+ "unused111",
+ "unused112",
+ "unused113",
+ "unused114",
+ "unused115",
+ "unused116",
+ "unused117",
+ "unused118",
+ "unused119",
+ "unused120",
+ "unused121",
+ "unused122",
+ "unused123",
+ "unused124",
+ "unused125",
+ "unused126",
+ "unused127",
+ "unused128",
+ "unused129",
+ "unused130",
+ "unused131",
+ "unused132",
+ "unused133",
+ "unused134",
+ "unused135",
+ "unused136",
+ "unused137",
+ "unused138",
+ "unused139",
+ "unused140",
+ "unused141",
+ "unused142",
+ "unused143",
+ "unused144",
+ "unused145",
+ "unused146",
+ "unused147",
+ "unused148",
+ "unused149",
+ "unused150",
+ "unused151",
+ "unused152",
+ "unused153",
+ "unused154",
+ "unused155",
+ "unused156",
+ "unused157",
+ "unused158",
+ "unused159",
+ "unused160",
+ "unused161",
+ "unused162",
+ "unused163",
+ "unused164",
+ "unused165",
+ "unused166",
+ "unused167",
+ "unused168",
+ "unused169",
+ "unused170",
+ "unused171",
+ "unused172",
+ "unused173",
+ "unused174",
+ "unused175",
+ "unused176",
+ "unused177",
+ "unused178",
+ "unused179",
+ "unused180",
+ "unused181",
+ "unused182",
+ "unused183",
+ "unused184",
+ "unused185",
+ "unused186",
+ "unused187",
+ "unused188",
+ "unused189",
+ "unused190",
+ "unused191",
+ "unused192",
+ "unused193",
+ "unused194",
+ "unused195",
+ "unused196",
+ "unused197",
+ "unused198",
+ "unused199",
+ "unused200",
+ "unused201",
+ "unused202",
+ "unused203",
+ "unused204",
+ "unused205",
+ "unused206",
+ "unused207",
+ "unused208",
+ "unused209",
+ "unused210",
+ "unused211",
+ "unused212",
+ "unused213",
+ "unused214",
+ "unused215",
+ "unused216",
+ "unused217",
+ "unused218",
+ "unused219",
+ "unused220",
+ "unused221",
+ "unused222",
+ "unused223",
+ "unused224",
+ "unused225",
+ "unused226",
+ "unused227",
+ "unused228",
+ "unused229",
+ "unused230",
+ "unused231",
+ "unused232",
+ "unused233",
+ "unused234",
+ "unused235",
+ "unused236",
+ "unused237",
+ "unused238",
+ "unused239",
+ "unused240",
+ "unused241",
+ "unused242",
+ "unused243",
+ "unused244",
+ "unused245",
+ "unused246",
+ "unused247",
+ "unused248",
+ "unused249",
+ "unused250",
+ "unused251",
+ "unused252",
+ "unused253",
+ "unused254",
+ "unused255"
+ ],
"type" : "string"
},
- "autostart" : {
- "type" : "boolean",
- "default" : 0,
+ "format" : {
+ "description" : "Target Format.",
+ "enum" : [
+ "raw",
+ "qcow2",
+ "vmdk"
+ ],
"optional" : 1,
- "description" : "Automatic restart after crash (currently ignored)."
+ "type" : "string"
},
- "vga" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "optional" : 1,
- "description" : "Select the VGA type. If you want to use high resolution modes (>= 1280x1024x16) then you should use the options 'std' or 'vmware'. Default is 'std' for win8/win7/w2k8, and 'cirrus' for other OS types. The 'qxl' option enables the SPICE display sever. For win* OS you can select how many independent displays you want, Linux guests can add displays them self. You can also run without any graphic card, using a serial device as terminal.",
- "enum" : [
- "std",
- "cirrus",
- "vmware",
- "qxl",
- "serial0",
- "serial1",
- "serial2",
- "serial3",
- "qxl2",
- "qxl3",
- "qxl4"
- ]
+ "typetext" : "<string>"
},
- "startdate" : {
- "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
+ "storage" : {
+ "description" : "Target storage.",
+ "format" : "pve-storage-id",
"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
+ "type" : "string",
+ "typetext" : "<string>"
},
- "scsi[n]" : {
- "format" : {
- "cache" : {
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ],
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "description" : "The drive's cache mode",
- "optional" : 1,
- "type" : "string"
- },
- "snapshot" : {
- "optional" : 1,
- "description" : "Whether the drive should be included when making snapshots.",
- "format_description" : "on|off",
- "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",
- "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
- },
- "werror" : {
- "description" : "Write error action.",
- "format_description" : "enospc|ignore|report|stop",
- "optional" : 1,
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ],
- "type" : "string"
- },
- "iops_rd_max" : {
- "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.",
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
- "type" : "string"
- },
- "iops" : {
- "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.",
- "optional" : 1,
- "format_description" : "mbps"
- },
- "bps_wr" : {
- "type" : "integer",
- "format_description" : "bps",
- "optional" : 1,
- "description" : "Maximum write speed speed in bytes per second."
- },
- "file" : {
- "format" : "pve-volume-id-or-qm-path",
- "type" : "string",
- "format_description" : "volume",
- "description" : "The drive's backing volume.",
- "default_key" : 1
- },
- "discard" : {
- "enum" : [
- "ignore",
- "on"
- ],
- "optional" : 1,
- "format_description" : "ignore|on",
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "type" : "string"
- },
- "serial" : {
- "format_description" : "serial",
- "optional" : 1,
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "maxLength" : 60,
- "type" : "string",
- "format" : "urlencoded"
- },
- "mbps_max" : {
- "type" : "number",
- "format_description" : "mbps",
- "optional" : 1,
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second."
- },
- "iops_max" : {
- "optional" : 1,
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "format_description" : "iops",
- "type" : "integer"
- },
- "aio" : {
- "type" : "string",
- "optional" : 1,
- "format_description" : "native|threads",
- "description" : "AIO type to use.",
- "enum" : [
- "native",
- "threads"
- ]
- },
- "queues" : {
- "type" : "integer",
- "minimum" : 2,
- "format_description" : "nbqueues",
- "description" : "Number of queues.",
- "optional" : 1
- },
- "mbps_rd_max" : {
- "type" : "number",
- "optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum unthrottled read pool speed in megabytes per second."
- },
- "iops_wr_max" : {
- "format_description" : "iops",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
- "optional" : 1,
- "type" : "integer"
- },
- "iothread" : {
- "type" : "boolean",
- "description" : "Whether to use iothreads for this drive",
- "optional" : 1,
- "format_description" : "off|on"
- },
- "size" : {
- "description" : "Disk size. This is purely informational and has no effect.",
- "optional" : 1,
- "type" : "string",
- "format" : "disk-size"
- },
- "bps_rd" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum read speed speed in bytes per second.",
- "format_description" : "bps"
- },
- "backup" : {
- "description" : "Whether the drive should be included when making backups.",
- "optional" : 1,
- "format_description" : "on|off",
- "type" : "boolean"
- },
- "detect_zeroes" : {
- "optional" : 1,
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "type" : "boolean"
- },
- "iops_wr" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
- "format_description" : "iops"
- },
- "media" : {
- "optional" : 1,
- "description" : "The drive's media type.",
- "format_description" : "cdrom|disk",
- "enum" : [
- "cdrom",
- "disk"
- ],
- "type" : "string",
- "default" : "disk"
- },
- "format" : {
- "enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
- ],
- "description" : "The drive's backing file's data format.",
- "optional" : 1,
- "format_description" : "drive format",
- "type" : "string"
- },
- "cyls" : {
- "format_description" : "count",
- "optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "type" : "integer"
- },
- "mbps_wr" : {
- "type" : "number",
- "optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum write speed speed in megabytes per second."
- },
- "mbps_rd" : {
- "type" : "number",
- "optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second.",
- "format_description" : "mbps"
- },
- "heads" : {
- "type" : "integer",
- "format_description" : "count",
- "optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific head count."
- },
- "secs" : {
- "optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "format_description" : "count",
- "type" : "integer"
- }
- },
+ "target-digest" : {
+ "description" : "Prevent changes if the current config file of the target VM has a\"\n\t\t .\" different SHA1 digest. This can be used to detect concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "target-disk" : {
+ "description" : "The config key the disk will be moved to on the target VM (for example, ide0 or scsi1). Default is the source disk key.",
+ "enum" : [
+ "ide0",
+ "ide1",
+ "ide2",
+ "ide3",
+ "scsi0",
+ "scsi1",
+ "scsi2",
+ "scsi3",
+ "scsi4",
+ "scsi5",
+ "scsi6",
+ "scsi7",
+ "scsi8",
+ "scsi9",
+ "scsi10",
+ "scsi11",
+ "scsi12",
+ "scsi13",
+ "scsi14",
+ "scsi15",
+ "scsi16",
+ "scsi17",
+ "scsi18",
+ "scsi19",
+ "scsi20",
+ "scsi21",
+ "scsi22",
+ "scsi23",
+ "scsi24",
+ "scsi25",
+ "scsi26",
+ "scsi27",
+ "scsi28",
+ "scsi29",
+ "scsi30",
+ "virtio0",
+ "virtio1",
+ "virtio2",
+ "virtio3",
+ "virtio4",
+ "virtio5",
+ "virtio6",
+ "virtio7",
+ "virtio8",
+ "virtio9",
+ "virtio10",
+ "virtio11",
+ "virtio12",
+ "virtio13",
+ "virtio14",
+ "virtio15",
+ "sata0",
+ "sata1",
+ "sata2",
+ "sata3",
+ "sata4",
+ "sata5",
+ "efidisk0",
+ "tpmstate0",
+ "unused0",
+ "unused1",
+ "unused2",
+ "unused3",
+ "unused4",
+ "unused5",
+ "unused6",
+ "unused7",
+ "unused8",
+ "unused9",
+ "unused10",
+ "unused11",
+ "unused12",
+ "unused13",
+ "unused14",
+ "unused15",
+ "unused16",
+ "unused17",
+ "unused18",
+ "unused19",
+ "unused20",
+ "unused21",
+ "unused22",
+ "unused23",
+ "unused24",
+ "unused25",
+ "unused26",
+ "unused27",
+ "unused28",
+ "unused29",
+ "unused30",
+ "unused31",
+ "unused32",
+ "unused33",
+ "unused34",
+ "unused35",
+ "unused36",
+ "unused37",
+ "unused38",
+ "unused39",
+ "unused40",
+ "unused41",
+ "unused42",
+ "unused43",
+ "unused44",
+ "unused45",
+ "unused46",
+ "unused47",
+ "unused48",
+ "unused49",
+ "unused50",
+ "unused51",
+ "unused52",
+ "unused53",
+ "unused54",
+ "unused55",
+ "unused56",
+ "unused57",
+ "unused58",
+ "unused59",
+ "unused60",
+ "unused61",
+ "unused62",
+ "unused63",
+ "unused64",
+ "unused65",
+ "unused66",
+ "unused67",
+ "unused68",
+ "unused69",
+ "unused70",
+ "unused71",
+ "unused72",
+ "unused73",
+ "unused74",
+ "unused75",
+ "unused76",
+ "unused77",
+ "unused78",
+ "unused79",
+ "unused80",
+ "unused81",
+ "unused82",
+ "unused83",
+ "unused84",
+ "unused85",
+ "unused86",
+ "unused87",
+ "unused88",
+ "unused89",
+ "unused90",
+ "unused91",
+ "unused92",
+ "unused93",
+ "unused94",
+ "unused95",
+ "unused96",
+ "unused97",
+ "unused98",
+ "unused99",
+ "unused100",
+ "unused101",
+ "unused102",
+ "unused103",
+ "unused104",
+ "unused105",
+ "unused106",
+ "unused107",
+ "unused108",
+ "unused109",
+ "unused110",
+ "unused111",
+ "unused112",
+ "unused113",
+ "unused114",
+ "unused115",
+ "unused116",
+ "unused117",
+ "unused118",
+ "unused119",
+ "unused120",
+ "unused121",
+ "unused122",
+ "unused123",
+ "unused124",
+ "unused125",
+ "unused126",
+ "unused127",
+ "unused128",
+ "unused129",
+ "unused130",
+ "unused131",
+ "unused132",
+ "unused133",
+ "unused134",
+ "unused135",
+ "unused136",
+ "unused137",
+ "unused138",
+ "unused139",
+ "unused140",
+ "unused141",
+ "unused142",
+ "unused143",
+ "unused144",
+ "unused145",
+ "unused146",
+ "unused147",
+ "unused148",
+ "unused149",
+ "unused150",
+ "unused151",
+ "unused152",
+ "unused153",
+ "unused154",
+ "unused155",
+ "unused156",
+ "unused157",
+ "unused158",
+ "unused159",
+ "unused160",
+ "unused161",
+ "unused162",
+ "unused163",
+ "unused164",
+ "unused165",
+ "unused166",
+ "unused167",
+ "unused168",
+ "unused169",
+ "unused170",
+ "unused171",
+ "unused172",
+ "unused173",
+ "unused174",
+ "unused175",
+ "unused176",
+ "unused177",
+ "unused178",
+ "unused179",
+ "unused180",
+ "unused181",
+ "unused182",
+ "unused183",
+ "unused184",
+ "unused185",
+ "unused186",
+ "unused187",
+ "unused188",
+ "unused189",
+ "unused190",
+ "unused191",
+ "unused192",
+ "unused193",
+ "unused194",
+ "unused195",
+ "unused196",
+ "unused197",
+ "unused198",
+ "unused199",
+ "unused200",
+ "unused201",
+ "unused202",
+ "unused203",
+ "unused204",
+ "unused205",
+ "unused206",
+ "unused207",
+ "unused208",
+ "unused209",
+ "unused210",
+ "unused211",
+ "unused212",
+ "unused213",
+ "unused214",
+ "unused215",
+ "unused216",
+ "unused217",
+ "unused218",
+ "unused219",
+ "unused220",
+ "unused221",
+ "unused222",
+ "unused223",
+ "unused224",
+ "unused225",
+ "unused226",
+ "unused227",
+ "unused228",
+ "unused229",
+ "unused230",
+ "unused231",
+ "unused232",
+ "unused233",
+ "unused234",
+ "unused235",
+ "unused236",
+ "unused237",
+ "unused238",
+ "unused239",
+ "unused240",
+ "unused241",
+ "unused242",
+ "unused243",
+ "unused244",
+ "unused245",
+ "unused246",
+ "unused247",
+ "unused248",
+ "unused249",
+ "unused250",
+ "unused251",
+ "unused252",
+ "unused253",
+ "unused254",
+ "unused255"
+ ],
"optional" : 1,
- "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13)."
+ "type" : "string"
},
- "shares" : {
+ "target-vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "optional" : 1,
"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
+ "typetext" : "<integer> (1 - N)"
},
- "smbios1" : {
- "optional" : 1,
- "maxLength" : 256,
- "description" : "Specify SMBIOS type 1 fields.",
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Disk"
+ ]
+ ],
+ "description" : "You need 'VM.Config.Disk' permissions on /vms/{vmid}, and 'Datastore.AllocateSpace' permissions on the storage. To move a disk to another VM, you need the permissions on the target VM as well."
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/move_disk",
+ "text" : "move_disk"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get preconditions for migration.",
+ "method" : "GET",
+ "name" : "migrate_vm_precondition",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-qm-smbios1"
+ "typetext" : "<string>"
},
- "delete" : {
- "description" : "A list of settings you want to delete.",
+ "target" : {
+ "description" : "Target node.",
+ "format" : "pve-node",
"optional" : 1,
"type" : "string",
- "format" : "pve-configid-list"
+ "typetext" : "<string>"
},
- "memory" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Migrate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "allowed_nodes" : {
+ "description" : "List nodes allowed for offline migration, only passed if VM is offline",
"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" : "array"
},
- "description" : {
- "type" : "string",
+ "local_disks" : {
+ "description" : "List local disks including CD-Rom, unsused and not referenced disks",
+ "type" : "array"
+ },
+ "local_resources" : {
+ "description" : "List local resources e.g. pci, usb",
+ "type" : "array"
+ },
+ "not_allowed_nodes" : {
+ "description" : "List not allowed nodes with additional informations, only passed if VM is offline",
"optional" : 1,
- "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file."
+ "type" : "object"
},
- "onboot" : {
+ "running" : {
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Migrate virtual machine. Creates a new migration task.",
+ "method" : "POST",
+ "name" : "migrate_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "bwlimit" : {
+ "default" : "migrate limit from datacenter or storage config",
+ "description" : "Override I/O bandwidth limit (in KiB/s).",
+ "minimum" : "0",
"optional" : 1,
- "description" : "Specifies whether a VM will be started during system bootup.",
- "type" : "boolean",
- "default" : 0
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "localtime" : {
+ "force" : {
+ "description" : "Allow to migrate VMs which use local devices. Only root may use this option.",
+ "optional" : 1,
"type" : "boolean",
- "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.",
- "optional" : 1
+ "typetext" : "<boolean>"
},
- "boot" : {
- "default" : "cdn",
- "type" : "string",
- "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
+ "migration_network" : {
+ "description" : "CIDR of the (sub) network that is used for migration.",
+ "format" : "CIDR",
"optional" : 1,
- "pattern" : "[acdn]{1,4}"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "startup" : {
+ "migration_type" : {
+ "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
+ "enum" : [
+ "secure",
+ "insecure"
+ ],
"optional" : 1,
- "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] ",
- "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
- "format" : "pve-startup-order",
"type" : "string"
},
- "skiplock" : {
- "type" : "boolean",
- "description" : "Ignore locks - only root is allowed to use this option.",
- "optional" : 1
- },
- "scsihw" : {
- "default" : "lsi",
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "description" : "scsi controller model",
- "optional" : 1,
- "enum" : [
- "lsi",
- "lsi53c810",
- "virtio-scsi-pci",
- "virtio-scsi-single",
- "megasas",
- "pvscsi"
- ]
+ "typetext" : "<string>"
},
- "name" : {
+ "online" : {
+ "description" : "Use online/live migration if VM is running. Ignored if VM is stopped.",
"optional" : 1,
- "description" : "Set a name for the VM. Only used on the configuration web interface.",
- "format" : "dns-name",
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "balloon" : {
- "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
+ "target" : {
+ "description" : "Target node.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "targetstorage" : {
+ "description" : "Mapping from source to target storages. Providing only a single storage ID maps all source storages to that storage. Providing the special value '1' will map each source storage to itself.",
+ "format" : "storage-pair-list",
"optional" : 1,
- "type" : "integer",
- "minimum" : 0
+ "type" : "string",
+ "typetext" : "<string>"
},
"vmid" : {
- "type" : "integer",
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
"minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "revert" : {
- "description" : "Revert a pending change.",
+ "with-local-disks" : {
+ "description" : "Enable live storage migration for local disk",
"optional" : 1,
- "type" : "string",
- "format" : "pve-configid-list"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
- },
- "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.",
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Migrate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "type" : "null"
+ "description" : "the task ID.",
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/migrate",
+ "text" : "migrate"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Execute Qemu monitor commands.",
+ "method" : "POST",
+ "name" : "monitor",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "command" : {
+ "description" : "The monitor command.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Monitor"
+ ]
+ ],
+ "description" : "Sys.Modify is required for (sub)commands which are not read-only ('info *' and 'help')"
},
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/monitor",
+ "text" : "monitor"
+ },
+ {
+ "info" : {
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Extend volume size.",
"method" : "PUT",
- "name" : "update_vm"
- },
- "POST" : {
+ "name" : "resize_vm",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "tdf" : {
- "default" : 0,
- "type" : "boolean",
- "description" : "Enable/disable time drift fix.",
- "optional" : 1
- },
- "cdrom" : {
- "description" : "This is an alias for option -ide2",
- "typetext" : "volume",
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
"optional" : 1,
"type" : "string",
- "format" : "pve-qm-drive"
+ "typetext" : "<string>"
},
- "sockets" : {
- "description" : "The number of CPU sockets.",
- "optional" : 1,
- "minimum" : 1,
- "type" : "integer",
- "default" : 1
- },
- "serial[n]" : {
- "description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a host serial device (i.e. /dev/ttyS0), or create a unix socket on the host side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines - use with special care.\n\nExperimental: user reported problems with this option.\n",
- "optional" : 1,
- "pattern" : "(/dev/.+|socket)",
- "type" : "string"
- },
- "ide[n]" : {
- "type" : "string",
- "format" : {
- "cache" : {
- "type" : "string",
- "optional" : 1,
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "description" : "The drive's cache mode",
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ]
- },
- "snapshot" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Whether the drive should be included when making snapshots.",
- "format_description" : "on|off"
- },
- "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"
- },
- "trans" : {
- "type" : "string",
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
- "optional" : 1,
- "format_description" : "none|lba|auto",
- "description" : "Force disk geometry bios translation mode."
- },
- "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"
- },
- "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.",
- "optional" : 1,
- "format_description" : "enospc|ignore|report|stop",
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ],
- "type" : "string"
- },
- "discard" : {
- "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"
- },
- "file" : {
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path",
- "default_key" : 1,
- "format_description" : "volume",
- "description" : "The drive's backing volume."
- },
- "bps_wr" : {
- "description" : "Maximum write speed speed in bytes per second.",
- "optional" : 1,
- "format_description" : "bps",
- "type" : "integer"
- },
- "mbps" : {
- "type" : "number",
- "optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum r/w speed speed in megabytes per second."
- },
- "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"
- ],
- "optional" : 1,
- "description" : "AIO type to use.",
- "format_description" : "native|threads"
- },
- "backup" : {
- "type" : "boolean",
- "description" : "Whether the drive should be included when making backups.",
- "optional" : 1,
- "format_description" : "on|off"
- },
- "bps_rd" : {
- "type" : "integer",
- "format_description" : "bps",
- "description" : "Maximum read speed speed in bytes per second.",
- "optional" : 1
- },
- "format" : {
- "type" : "string",
- "enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
- ],
- "optional" : 1,
- "format_description" : "drive format",
- "description" : "The drive's backing file's data format."
- },
- "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
- },
- "media" : {
- "optional" : 1,
- "format_description" : "cdrom|disk",
- "description" : "The drive's media type.",
- "enum" : [
- "cdrom",
- "disk"
- ],
- "type" : "string",
- "default" : "disk"
- },
- "mbps_wr" : {
- "description" : "Maximum write 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",
- "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
- },
- "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
+ "disk" : {
+ "description" : "The disk you want to resize.",
+ "enum" : [
+ "ide0",
+ "ide1",
+ "ide2",
+ "ide3",
+ "scsi0",
+ "scsi1",
+ "scsi2",
+ "scsi3",
+ "scsi4",
+ "scsi5",
+ "scsi6",
+ "scsi7",
+ "scsi8",
+ "scsi9",
+ "scsi10",
+ "scsi11",
+ "scsi12",
+ "scsi13",
+ "scsi14",
+ "scsi15",
+ "scsi16",
+ "scsi17",
+ "scsi18",
+ "scsi19",
+ "scsi20",
+ "scsi21",
+ "scsi22",
+ "scsi23",
+ "scsi24",
+ "scsi25",
+ "scsi26",
+ "scsi27",
+ "scsi28",
+ "scsi29",
+ "scsi30",
+ "virtio0",
+ "virtio1",
+ "virtio2",
+ "virtio3",
+ "virtio4",
+ "virtio5",
+ "virtio6",
+ "virtio7",
+ "virtio8",
+ "virtio9",
+ "virtio10",
+ "virtio11",
+ "virtio12",
+ "virtio13",
+ "virtio14",
+ "virtio15",
+ "sata0",
+ "sata1",
+ "sata2",
+ "sata3",
+ "sata4",
+ "sata5",
+ "efidisk0",
+ "tpmstate0"
+ ],
+ "type" : "string"
},
- "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
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "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
+ "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"
},
- "lock" : {
- "type" : "string",
- "enum" : [
- "migrate",
- "backup",
- "snapshot",
- "rollback"
- ],
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
"optional" : 1,
- "description" : "Lock/unlock the VM."
- },
- "numa" : {
"type" : "boolean",
- "default" : 0,
- "optional" : 1,
- "description" : "Enable/disable NUMA."
+ "typetext" : "<boolean>"
},
- "virtio[n]" : {
- "format" : {
- "bps_rd" : {
- "type" : "integer",
- "format_description" : "bps",
- "optional" : 1,
- "description" : "Maximum read speed speed in bytes per second."
- },
- "backup" : {
- "description" : "Whether the drive should be included when making backups.",
- "optional" : 1,
- "format_description" : "on|off",
- "type" : "boolean"
- },
- "detect_zeroes" : {
- "type" : "boolean",
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "optional" : 1
- },
- "iops_wr" : {
- "format_description" : "iops",
- "optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
- "type" : "integer"
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Disk"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/resize",
+ "text" : "resize"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get snapshot configuration",
+ "method" : "GET",
+ "name" : "get_snapshot_config",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "media" : {
- "default" : "disk",
- "type" : "string",
- "optional" : 1,
- "format_description" : "cdrom|disk",
- "description" : "The drive's media type.",
- "enum" : [
- "cdrom",
- "disk"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Snapshot",
+ "VM.Snapshot.Rollback",
+ "VM.Audit"
+ ],
+ "any",
+ 1
]
},
- "format" : {
- "enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
- ],
- "description" : "The drive's backing file's data format.",
- "optional" : 1,
- "format_description" : "drive format",
- "type" : "string"
- },
- "cyls" : {
- "type" : "integer",
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "optional" : 1
- },
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
- "optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update snapshot metadata.",
+ "method" : "PUT",
+ "name" : "update_snapshot_config",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "description" : {
+ "description" : "A textual description or comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "mbps_rd" : {
- "type" : "number",
- "optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum read speed speed in megabytes per second."
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Snapshot"
+ ]
+ ]
},
- "heads" : {
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "format_description" : "count",
- "optional" : 1,
- "type" : "integer"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config",
+ "text" : "config"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Rollback VM state to specified snapshot.",
+ "method" : "POST",
+ "name" : "rollback",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "secs" : {
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "optional" : 1,
- "format_description" : "count"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Snapshot",
+ "VM.Snapshot.Rollback"
+ ],
+ "any",
+ 1
+ ]
},
- "snapshot" : {
- "type" : "boolean",
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback",
+ "text" : "rollback"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete a VM snapshot.",
+ "method" : "DELETE",
+ "name" : "delsnapshot",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "force" : {
+ "description" : "For removal from config file, even if removing disk snapshots fails.",
"optional" : 1,
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making snapshots."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "cache" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"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."
+ "typetext" : "<string>"
},
- "bps" : {
- "format_description" : "bps",
- "description" : "Maximum r/w speed speed in bytes per second.",
- "optional" : 1,
- "type" : "integer"
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "iops_rd" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "optional" : 1,
- "format_description" : "iops",
- "description" : "Maximum read I/O speed in operations per second."
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Snapshot"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "",
+ "method" : "GET",
+ "name" : "snapshot_cmd_idx",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "werror" : {
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{cmd}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}",
+ "text" : "{snapname}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List all snapshots.",
+ "method" : "GET",
+ "name" : "snapshot_list",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "description" : {
+ "description" : "Snapshot description.",
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
+ "type" : "string"
+ },
+ "parent" : {
+ "description" : "Parent snapshot identifier.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snaptime" : {
+ "description" : "Snapshot creation time",
+ "optional" : 1,
+ "renderer" : "timestamp",
+ "type" : "integer"
+ },
+ "vmstate" : {
+ "description" : "Snapshot includes RAM.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Snapshot a VM.",
+ "method" : "POST",
+ "name" : "snapshot",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "description" : {
+ "description" : "A textual description or comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "vmstate" : {
+ "description" : "Save the vmstate",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Snapshot"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/snapshot",
+ "text" : "snapshot"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a Template.",
+ "method" : "POST",
+ "name" : "template",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "disk" : {
+ "description" : "If you want to convert only 1 disk to base image.",
+ "enum" : [
+ "ide0",
+ "ide1",
+ "ide2",
+ "ide3",
+ "scsi0",
+ "scsi1",
+ "scsi2",
+ "scsi3",
+ "scsi4",
+ "scsi5",
+ "scsi6",
+ "scsi7",
+ "scsi8",
+ "scsi9",
+ "scsi10",
+ "scsi11",
+ "scsi12",
+ "scsi13",
+ "scsi14",
+ "scsi15",
+ "scsi16",
+ "scsi17",
+ "scsi18",
+ "scsi19",
+ "scsi20",
+ "scsi21",
+ "scsi22",
+ "scsi23",
+ "scsi24",
+ "scsi25",
+ "scsi26",
+ "scsi27",
+ "scsi28",
+ "scsi29",
+ "scsi30",
+ "virtio0",
+ "virtio1",
+ "virtio2",
+ "virtio3",
+ "virtio4",
+ "virtio5",
+ "virtio6",
+ "virtio7",
+ "virtio8",
+ "virtio9",
+ "virtio10",
+ "virtio11",
+ "virtio12",
+ "virtio13",
+ "virtio14",
+ "virtio15",
+ "sata0",
+ "sata1",
+ "sata2",
+ "sata3",
+ "sata4",
+ "sata5",
+ "efidisk0",
+ "tpmstate0"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Allocate"
+ ]
+ ],
+ "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/template",
+ "text" : "template"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get automatically generated cloudinit config.",
+ "method" : "GET",
+ "name" : "cloudinit_generated_config_dump",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"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"
- },
- "trans" : {
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
- "optional" : 1,
- "description" : "Force disk geometry bios translation mode.",
- "format_description" : "none|lba|auto",
- "type" : "string"
+ "typetext" : "<string>"
},
- "rerror" : {
- "optional" : 1,
- "description" : "Read error action.",
- "format_description" : "ignore|report|stop",
+ "type" : {
+ "description" : "Config type.",
"enum" : [
- "ignore",
- "report",
- "stop"
+ "user",
+ "network",
+ "meta"
],
"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" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"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.",
- "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"
+ "typetext" : "<integer> (1 - N)"
}
- },
- "type" : "string",
- "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
- "optional" : 1
+ }
},
- "bios" : {
- "type" : "string",
- "default" : "seabios",
- "enum" : [
- "seabios",
- "ovmf"
- ],
- "optional" : 1,
- "description" : "Select BIOS implementation."
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
},
- "agent" : {
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/qemu/{vmid}/cloudinit/dump",
+ "text" : "dump"
+ }
+ ],
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}/cloudinit",
+ "text" : "cloudinit"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Destroy the VM and all used/owned volumes. Removes any VM specific permissions and firewall rules",
+ "method" : "DELETE",
+ "name" : "destroy_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "destroy-unreferenced-disks" : {
+ "default" : 0,
+ "description" : "If set, destroy additionally all disks not referenced in the config but with a matching VMID from all enabled storages.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "purge" : {
+ "description" : "Remove VMID from configurations, like backup & replication jobs and HA.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index",
+ "method" : "GET",
+ "name" : "vmdiridx",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu/{vmid}",
+ "text" : "{vmid}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Virtual machine index (per node).",
+ "method" : "GET",
+ "name" : "vmlist",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "full" : {
+ "description" : "Determine the full status of active VMs.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Only list VMs where you have VM.Audit permissons on /vms/<vmid>.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "cpus" : {
+ "description" : "Maximum usable CPUs.",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "lock" : {
+ "description" : "The current config lock, if any.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "maxdisk" : {
+ "description" : "Root disk size in bytes.",
+ "optional" : 1,
+ "renderer" : "bytes",
+ "type" : "integer"
+ },
+ "maxmem" : {
+ "description" : "Maximum memory in bytes.",
+ "optional" : 1,
+ "renderer" : "bytes",
+ "type" : "integer"
+ },
+ "name" : {
+ "description" : "VM name.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "pid" : {
+ "description" : "PID of running qemu process.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "qmpstatus" : {
+ "description" : "Qemu QMP agent status.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "running-machine" : {
+ "description" : "The currently running machine type (if running).",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "running-qemu" : {
+ "description" : "The currently running QEMU version (if running).",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "status" : {
+ "description" : "Qemu process status.",
+ "enum" : [
+ "stopped",
+ "running"
+ ],
+ "type" : "string"
+ },
+ "tags" : {
+ "description" : "The current configured tags, if any",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "uptime" : {
+ "description" : "Uptime.",
+ "optional" : 1,
+ "renderer" : "duration",
+ "type" : "integer"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{vmid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create or restore a virtual machine.",
+ "method" : "POST",
+ "name" : "create_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "acpi" : {
+ "default" : 1,
+ "description" : "Enable/disable ACPI.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "agent" : {
+ "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
+ "format" : {
+ "enabled" : {
+ "default" : 0,
+ "default_key" : 1,
+ "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
+ "type" : "boolean"
+ },
+ "fstrim_cloned_disks" : {
+ "default" : 0,
+ "description" : "Run fstrim after moving a disk or migrating the VM.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "type" : {
+ "default" : "virtio",
+ "description" : "Select the agent type",
+ "enum" : [
+ "virtio",
+ "isa"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
+ },
+ "arch" : {
+ "description" : "Virtual processor architecture. Defaults to the host.",
+ "enum" : [
+ "x86_64",
+ "aarch64"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "archive" : {
+ "description" : "The backup archive. Either the file system path to a .tar or .vma file (use '-' to pipe data from stdin) or a proxmox storage backup volume identifier.",
+ "maxLength" : 255,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "args" : {
+ "description" : "Arbitrary arguments passed to kvm.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>",
+ "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
+ },
+ "audio0" : {
+ "description" : "Configure a audio device, useful in combination with QXL/Spice.",
+ "format" : {
+ "device" : {
+ "description" : "Configure an audio device.",
+ "enum" : [
+ "ich9-intel-hda",
+ "intel-hda",
+ "AC97"
+ ],
+ "type" : "string"
+ },
+ "driver" : {
+ "default" : "spice",
+ "description" : "Driver backend for the audio device.",
+ "enum" : [
+ "spice",
+ "none"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
+ },
+ "autostart" : {
+ "default" : 0,
+ "description" : "Automatic restart after crash (currently ignored).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "balloon" : {
+ "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "bios" : {
+ "default" : "seabios",
+ "description" : "Select BIOS implementation.",
+ "enum" : [
+ "seabios",
+ "ovmf"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "boot" : {
+ "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
+ "format" : "pve-qm-boot",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
+ },
+ "bootdisk" : {
+ "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
+ "format" : "pve-qm-bootdisk",
+ "optional" : 1,
+ "pattern" : "(ide|sata|scsi|virtio)\\d+",
+ "type" : "string"
+ },
+ "bwlimit" : {
+ "default" : "restore limit from datacenter or storage config",
+ "description" : "Override I/O bandwidth limit (in KiB/s).",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "cdrom" : {
+ "description" : "This is an alias for option -ide2",
+ "format" : "pve-qm-ide",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<volume>"
+ },
+ "cicustom" : {
+ "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
+ "format" : "pve-qm-cicustom",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
+ },
+ "cipassword" : {
+ "description" : "cloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "citype" : {
+ "description" : "Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.",
+ "enum" : [
+ "configdrive2",
+ "nocloud",
+ "opennebula"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ciuser" : {
+ "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "cores" : {
+ "default" : 1,
+ "description" : "The number of cores per socket.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "cpu" : {
+ "description" : "Emulated CPU type.",
+ "format" : "pve-vm-cpu-conf",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
+ },
+ "cpulimit" : {
+ "default" : 0,
+ "description" : "Limit of CPU usage.",
+ "maximum" : 128,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (0 - 128)",
+ "verbose_description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit."
+ },
+ "cpuunits" : {
+ "default" : "cgroup v1: 1024, cgroup v2: 100",
+ "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
+ "maximum" : 262144,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 262144)",
+ "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs."
+ },
+ "description" : {
+ "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
+ "maxLength" : 8192,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "efidisk0" : {
+ "description" : "Configure a Disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+ "format" : {
+ "efitype" : {
+ "default" : "2m",
+ "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified.",
+ "enum" : [
+ "2m",
+ "4m"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "import-from" : {
+ "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+ "format" : "pve-volume-id-or-absolute-path",
+ "format_description" : "source volume",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "pre-enrolled-keys" : {
+ "default" : 0,
+ "description" : "Use am EFI vars template with distribution-specific and Microsoft Standard keys enrolled, if used with 'efitype=4m'. Note that this will enable Secure Boot by default, though it can still be turned off from within the VM.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
+ },
+ "force" : {
+ "description" : "Allow to overwrite existing VM.",
+ "optional" : 1,
+ "requires" : "archive",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "freeze" : {
+ "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "hookscript" : {
+ "description" : "Script that will be executed during various steps in the vms lifetime.",
+ "format" : "pve-volume-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "hostpci[n]" : {
+ "description" : "Map host PCI devices into guest.",
+ "format" : "pve-qm-hostpci",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
+ "verbose_description" : "Map host PCI devices into guest.\n\nNOTE: This option allows direct access to host hardware. So it is no longer\npossible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+ },
+ "hotplug" : {
+ "default" : "network,disk,usb",
+ "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`.",
+ "format" : "pve-hotplug-features",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "hugepages" : {
+ "description" : "Enable/disable hugepages memory.",
+ "enum" : [
+ "any",
+ "2",
+ "1024"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ide[n]" : {
+ "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+ "format" : {
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads",
+ "io_uring"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd_length" : {
+ "alias" : "bps_rd_max_length"
+ },
+ "bps_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr_length" : {
+ "alias" : "bps_wr_max_length"
+ },
+ "bps_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "import-from" : {
+ "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+ "format" : "pve-volume-id-or-absolute-path",
+ "format_description" : "source volume",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_length" : {
+ "alias" : "iops_rd_max_length"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_length" : {
+ "alias" : "iops_wr_max_length"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "model" : {
+ "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "model",
+ "maxLength" : 120,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "replicate" : {
+ "default" : 1,
+ "description" : "Whether the drive should considered for replication jobs.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "rerror" : {
+ "description" : "Read error action.",
+ "enum" : [
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
+ "optional" : 1,
+ "type" : "boolean",
+ "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ssd" : {
+ "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
+ "optional" : 1,
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
+ },
+ "ipconfig[n]" : {
+ "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit\ngateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration. This requires\ncloud-init 19.4 or newer.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n",
+ "format" : "pve-qm-ipconfig",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
+ },
+ "ivshmem" : {
+ "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
+ "format" : {
+ "name" : {
+ "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
+ "format_description" : "string",
+ "optional" : 1,
+ "pattern" : "[a-zA-Z0-9\\-]+",
+ "type" : "string"
+ },
+ "size" : {
+ "description" : "The size of the file in MB.",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "size=<integer> [,name=<string>]"
+ },
+ "keephugepages" : {
+ "default" : 0,
+ "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "keyboard" : {
+ "default" : null,
+ "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
+ "enum" : [
+ "de",
+ "de-ch",
+ "da",
+ "en-gb",
+ "en-us",
+ "es",
+ "fi",
+ "fr",
+ "fr-be",
+ "fr-ca",
+ "fr-ch",
+ "hu",
+ "is",
+ "it",
+ "ja",
+ "lt",
+ "mk",
+ "nl",
+ "no",
+ "pl",
+ "pt",
+ "pt-br",
+ "sv",
+ "sl",
+ "tr"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "kvm" : {
+ "default" : 1,
+ "description" : "Enable/disable KVM hardware virtualization.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "live-restore" : {
+ "description" : "Start the VM immediately from the backup and restore in background. PBS only.",
+ "optional" : 1,
+ "requires" : "archive",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "localtime" : {
+ "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "lock" : {
+ "description" : "Lock/unlock the VM.",
+ "enum" : [
+ "backup",
+ "clone",
+ "create",
+ "migrate",
+ "rollback",
+ "snapshot",
+ "snapshot-delete",
+ "suspending",
+ "suspended"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "machine" : {
+ "description" : "Specifies the Qemu machine type.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
+ "type" : "string"
+ },
+ "memory" : {
+ "default" : 512,
+ "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
+ "minimum" : 16,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (16 - N)"
+ },
+ "migrate_downtime" : {
+ "default" : 0.1,
+ "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (0 - N)"
+ },
+ "migrate_speed" : {
+ "default" : 0,
+ "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "name" : {
+ "description" : "Set a name for the VM. Only used on the configuration web interface.",
+ "format" : "dns-name",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nameserver" : {
+ "description" : "cloud-init: Sets DNS server IP address for a container. Create will'\n\t .' automatically use the setting from the host if neither searchdomain nor nameserver'\n\t .' are set.",
+ "format" : "address-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "net[n]" : {
+ "description" : "Specify network devices.",
+ "format" : {
+ "bridge" : {
+ "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2 Gateway\n 10.0.2.3 DNS Server\n 10.0.2.4 SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n",
+ "format" : "pve-bridge-id",
+ "format_description" : "bridge",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "e1000" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "e1000-82540em" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "e1000-82544gc" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "e1000-82545em" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "e1000e" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "firewall" : {
+ "description" : "Whether this interface should be protected by the firewall.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "i82551" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "i82557b" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "i82559er" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "link_down" : {
+ "description" : "Whether this interface should be disconnected (like pulling the plug).",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "macaddr" : {
+ "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
+ "format" : "mac-addr",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
+ },
+ "model" : {
+ "default_key" : 1,
+ "description" : "Network Card Model. The 'virtio' model provides the best performance with very low CPU overhead. If your guest does not support this driver, it is usually best to use 'e1000'.",
+ "enum" : [
+ "e1000",
+ "e1000-82540em",
+ "e1000-82544gc",
+ "e1000-82545em",
+ "e1000e",
+ "i82551",
+ "i82557b",
+ "i82559er",
+ "ne2k_isa",
+ "ne2k_pci",
+ "pcnet",
+ "rtl8139",
+ "virtio",
+ "vmxnet3"
+ ],
+ "type" : "string"
+ },
+ "mtu" : {
+ "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
+ "maximum" : 65520,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "ne2k_isa" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "ne2k_pci" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "pcnet" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "queues" : {
+ "description" : "Number of packet queues to be used on the device.",
+ "maximum" : 16,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "rate" : {
+ "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number"
+ },
+ "rtl8139" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "tag" : {
+ "description" : "VLAN tag to apply to packets on this interface.",
+ "maximum" : 4094,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "trunks" : {
+ "description" : "VLAN trunks to pass through this interface.",
+ "format_description" : "vlanid[;vlanid...]",
+ "optional" : 1,
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
+ },
+ "virtio" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ },
+ "vmxnet3" : {
+ "alias" : "macaddr",
+ "keyAlias" : "model"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,mtu=<integer>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "numa" : {
+ "default" : 0,
+ "description" : "Enable/disable NUMA.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "numa[n]" : {
+ "description" : "NUMA topology.",
+ "format" : {
+ "cpus" : {
+ "description" : "CPUs accessing this NUMA node.",
+ "format_description" : "id[-id];...",
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
+ },
+ "hostnodes" : {
+ "description" : "Host NUMA nodes to use.",
+ "format_description" : "id[-id];...",
+ "optional" : 1,
+ "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+ "type" : "string"
+ },
+ "memory" : {
+ "description" : "Amount of memory this NUMA node provides.",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "policy" : {
+ "description" : "NUMA allocation policy.",
+ "enum" : [
+ "preferred",
+ "bind",
+ "interleave"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
+ },
+ "onboot" : {
+ "default" : 0,
+ "description" : "Specifies whether a VM will be started during system bootup.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "ostype" : {
+ "description" : "Specify guest operating system.",
+ "enum" : [
+ "other",
+ "wxp",
+ "w2k",
+ "w2k3",
+ "w2k8",
+ "wvista",
+ "win7",
+ "win8",
+ "win10",
+ "win11",
+ "l24",
+ "l26",
+ "solaris"
+ ],
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 5.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
+ },
+ "parallel[n]" : {
+ "description" : "Map host parallel devices (n is 0 to 2).",
+ "optional" : 1,
+ "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
+ "type" : "string",
+ "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+ },
+ "pool" : {
+ "description" : "Add the VM to the specified pool.",
+ "format" : "pve-poolid",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "protection" : {
+ "default" : 0,
+ "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "reboot" : {
+ "default" : 1,
+ "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "rng0" : {
+ "description" : "Configure a VirtIO-based Random Number Generator.",
+ "format" : {
+ "max_bytes" : {
+ "default" : 1024,
+ "description" : "Maximum bytes of entropy allowed to get injected into the guest every 'period' milliseconds. Prefer a lower value when using '/dev/random' as source. Use `0` to disable limiting (potentially dangerous!).",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "period" : {
+ "default" : 1000,
+ "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "source" : {
+ "default_key" : 1,
+ "description" : "The file on the host to gather entropy from. In most cases '/dev/urandom' should be preferred over '/dev/random' to avoid entropy-starvation issues on the host. Using urandom does *not* decrease security in any meaningful way, as it's still seeded from real entropy, and the bytes provided will most likely be mixed with real entropy on the guest as well. '/dev/hwrng' can be used to pass through a hardware RNG from the host.",
+ "enum" : [
+ "/dev/urandom",
+ "/dev/random",
+ "/dev/hwrng"
+ ],
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
+ },
+ "sata[n]" : {
+ "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+ "format" : {
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads",
+ "io_uring"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd_length" : {
+ "alias" : "bps_rd_max_length"
+ },
+ "bps_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr_length" : {
+ "alias" : "bps_wr_max_length"
+ },
+ "bps_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "import-from" : {
+ "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+ "format" : "pve-volume-id-or-absolute-path",
+ "format_description" : "source volume",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_length" : {
+ "alias" : "iops_rd_max_length"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_length" : {
+ "alias" : "iops_wr_max_length"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "replicate" : {
+ "default" : 1,
+ "description" : "Whether the drive should considered for replication jobs.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "rerror" : {
+ "description" : "Read error action.",
+ "enum" : [
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
+ "optional" : 1,
+ "type" : "boolean",
+ "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ssd" : {
+ "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
+ "optional" : 1,
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
+ },
+ "scsi[n]" : {
+ "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+ "format" : {
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads",
+ "io_uring"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd_length" : {
+ "alias" : "bps_rd_max_length"
+ },
+ "bps_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr_length" : {
+ "alias" : "bps_wr_max_length"
+ },
+ "bps_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "import-from" : {
+ "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+ "format" : "pve-volume-id-or-absolute-path",
+ "format_description" : "source volume",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_length" : {
+ "alias" : "iops_rd_max_length"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_length" : {
+ "alias" : "iops_wr_max_length"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iothread" : {
+ "description" : "Whether to use iothreads for this drive",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "queues" : {
+ "description" : "Number of queues.",
+ "minimum" : 2,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "replicate" : {
+ "default" : 1,
+ "description" : "Whether the drive should considered for replication jobs.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "rerror" : {
+ "description" : "Read error action.",
+ "enum" : [
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ro" : {
+ "description" : "Whether the drive is read-only.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "scsiblock" : {
+ "default" : 0,
+ "description" : "whether to use scsi-block for full passthrough of host block device\n\nWARNING: can lead to I/O errors in combination with low memory or high memory fragmentation on host",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
+ "optional" : 1,
+ "type" : "boolean",
+ "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ssd" : {
+ "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "wwn" : {
+ "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
+ "format_description" : "wwn",
+ "optional" : 1,
+ "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
+ },
+ "scsihw" : {
+ "default" : "lsi",
+ "description" : "SCSI controller model",
+ "enum" : [
+ "lsi",
+ "lsi53c810",
+ "virtio-scsi-pci",
+ "virtio-scsi-single",
+ "megasas",
+ "pvscsi"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "searchdomain" : {
+ "description" : "cloud-init: Sets DNS search domains for a container. Create will'\n\t .' automatically use the setting from the host if neither searchdomain nor nameserver'\n\t .' are set.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "serial[n]" : {
+ "description" : "Create a serial device inside the VM (n is 0 to 3)",
+ "optional" : 1,
+ "pattern" : "(/dev/.+|socket)",
+ "type" : "string",
+ "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines -\nuse with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+ },
+ "shares" : {
+ "default" : 1000,
+ "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning. Auto-ballooning is done by pvestatd.",
+ "maximum" : 50000,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 50000)"
+ },
+ "smbios1" : {
+ "description" : "Specify SMBIOS type 1 fields.",
+ "format" : "pve-qm-smbios1",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[base64=<1|0>] [,family=<Base64 encoded string>] [,manufacturer=<Base64 encoded string>] [,product=<Base64 encoded string>] [,serial=<Base64 encoded string>] [,sku=<Base64 encoded string>] [,uuid=<UUID>] [,version=<Base64 encoded string>]"
+ },
+ "smp" : {
+ "default" : 1,
+ "description" : "The number of CPUs. Please use option -sockets instead.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "sockets" : {
+ "default" : 1,
+ "description" : "The number of CPU sockets.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "spice_enhancements" : {
+ "description" : "Configure additional enhancements for SPICE.",
+ "format" : {
+ "foldersharing" : {
+ "default" : "0",
+ "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "videostreaming" : {
+ "default" : "off",
+ "description" : "Enable video streaming. Uses compression for detected video streams.",
+ "enum" : [
+ "off",
+ "all",
+ "filter"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
+ },
+ "sshkeys" : {
+ "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
+ "format" : "urlencoded",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "start" : {
+ "default" : 0,
+ "description" : "Start VM after it was created successfully.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "startdate" : {
+ "default" : "now",
+ "description" : "Set the initial date of the real time clock. Valid format for date are:'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
+ "optional" : 1,
+ "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
+ "type" : "string",
+ "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
+ },
+ "startup" : {
+ "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
+ "format" : "pve-startup-order",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
+ },
+ "storage" : {
+ "description" : "Default storage.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tablet" : {
+ "default" : 1,
+ "description" : "Enable/disable the USB tablet device.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>",
+ "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (`qm set <vmid> --vga qxl`)."
+ },
+ "tags" : {
+ "description" : "Tags of the VM. This is only meta information.",
+ "format" : "pve-tag-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tdf" : {
+ "default" : 0,
+ "description" : "Enable/disable time drift fix.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "template" : {
+ "default" : 0,
+ "description" : "Enable/disable Template.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "tpmstate0" : {
+ "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and 4 MiB will be used instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+ "format" : {
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "import-from" : {
+ "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+ "format" : "pve-volume-id-or-absolute-path",
+ "format_description" : "source volume",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "version" : {
+ "default" : "v2.0",
+ "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
+ "enum" : [
+ "v1.2",
+ "v2.0"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
+ },
+ "unique" : {
+ "description" : "Assign a unique random ethernet address.",
+ "optional" : 1,
+ "requires" : "archive",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "unused[n]" : {
+ "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
+ "format" : {
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume>"
+ },
+ "usb[n]" : {
+ "description" : "Configure an USB device (n is 0 to 4).",
+ "format" : {
+ "host" : {
+ "default_key" : 1,
+ "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
+ "format" : "pve-qm-usb-device",
+ "format_description" : "HOSTUSBDEVICE|spice",
+ "type" : "string"
+ },
+ "usb3" : {
+ "default" : 0,
+ "description" : "Specifies whether if given host option is a USB3 device or port.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
+ },
+ "vcpus" : {
+ "default" : 0,
+ "description" : "Number of hotplugged vcpus.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "vga" : {
+ "description" : "Configure the VGA hardware.",
+ "format" : {
+ "memory" : {
+ "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
+ "maximum" : 512,
+ "minimum" : 4,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "type" : {
+ "default" : "std",
+ "default_key" : 1,
+ "description" : "Select the VGA type.",
+ "enum" : [
+ "cirrus",
+ "qxl",
+ "qxl2",
+ "qxl3",
+ "qxl4",
+ "none",
+ "serial0",
+ "serial1",
+ "serial2",
+ "serial3",
+ "std",
+ "virtio",
+ "virtio-gl",
+ "vmware"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[type=]<enum>] [,memory=<integer>]",
+ "verbose_description" : "Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is 'std' for all OS types besides some Windows versions (XP and older) which use 'cirrus'. The 'qxl' option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays them self.\nYou can also run without any graphic card, using a serial device as terminal."
+ },
+ "virtio[n]" : {
+ "description" : "Use volume as VIRTIO hard disk (n is 0 to 15). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+ "format" : {
+ "aio" : {
+ "description" : "AIO type to use.",
+ "enum" : [
+ "native",
+ "threads",
+ "io_uring"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "backup" : {
+ "description" : "Whether the drive should be included when making backups.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "bps" : {
+ "description" : "Maximum r/w speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd" : {
+ "description" : "Maximum read speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_rd_length" : {
+ "alias" : "bps_rd_max_length"
+ },
+ "bps_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr" : {
+ "description" : "Maximum write speed in bytes per second.",
+ "format_description" : "bps",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "bps_wr_length" : {
+ "alias" : "bps_wr_max_length"
+ },
+ "bps_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "cache" : {
+ "description" : "The drive's cache mode",
+ "enum" : [
+ "none",
+ "writethrough",
+ "writeback",
+ "unsafe",
+ "directsync"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cyls" : {
+ "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "detect_zeroes" : {
+ "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "discard" : {
+ "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+ "enum" : [
+ "ignore",
+ "on"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "file" : {
+ "default_key" : 1,
+ "description" : "The drive's backing volume.",
+ "format" : "pve-volume-id-or-qm-path",
+ "format_description" : "volume",
+ "type" : "string"
+ },
+ "format" : {
+ "description" : "The drive's backing file's data format.",
+ "enum" : [
+ "raw",
+ "cow",
+ "qcow",
+ "qed",
+ "qcow2",
+ "vmdk",
+ "cloop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "heads" : {
+ "description" : "Force the drive's physical geometry to have a specific head count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "import-from" : {
+ "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+ "format" : "pve-volume-id-or-absolute-path",
+ "format_description" : "source volume",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "iops" : {
+ "description" : "Maximum r/w I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max" : {
+ "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_max_length" : {
+ "description" : "Maximum length of I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd" : {
+ "description" : "Maximum read I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_length" : {
+ "alias" : "iops_rd_max_length"
+ },
+ "iops_rd_max" : {
+ "description" : "Maximum unthrottled read I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_rd_max_length" : {
+ "description" : "Maximum length of read I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr" : {
+ "description" : "Maximum write I/O in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_length" : {
+ "alias" : "iops_wr_max_length"
+ },
+ "iops_wr_max" : {
+ "description" : "Maximum unthrottled write I/O pool in operations per second.",
+ "format_description" : "iops",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iops_wr_max_length" : {
+ "description" : "Maximum length of write I/O bursts in seconds.",
+ "format_description" : "seconds",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "iothread" : {
+ "description" : "Whether to use iothreads for this drive",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "mbps" : {
+ "description" : "Maximum r/w speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_max" : {
+ "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd" : {
+ "description" : "Maximum read speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_rd_max" : {
+ "description" : "Maximum unthrottled read pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr" : {
+ "description" : "Maximum write speed in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "mbps_wr_max" : {
+ "description" : "Maximum unthrottled write pool in megabytes per second.",
+ "format_description" : "mbps",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "media" : {
+ "default" : "disk",
+ "description" : "The drive's media type.",
+ "enum" : [
+ "cdrom",
+ "disk"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "replicate" : {
+ "default" : 1,
+ "description" : "Whether the drive should considered for replication jobs.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "rerror" : {
+ "description" : "Read error action.",
+ "enum" : [
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ro" : {
+ "description" : "Whether the drive is read-only.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "secs" : {
+ "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "serial" : {
+ "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+ "format" : "urlencoded",
+ "format_description" : "serial",
+ "maxLength" : 60,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this locally-managed volume as available on all nodes",
+ "optional" : 1,
+ "type" : "boolean",
+ "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+ },
+ "size" : {
+ "description" : "Disk size. This is purely informational and has no effect.",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snapshot" : {
+ "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "trans" : {
+ "description" : "Force disk geometry bios translation mode.",
+ "enum" : [
+ "none",
+ "lba",
+ "auto"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "alias" : "file"
+ },
+ "werror" : {
+ "description" : "Write error action.",
+ "enum" : [
+ "enospc",
+ "ignore",
+ "report",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+ },
+ "vmgenid" : {
+ "default" : "1 (autogenerated)",
+ "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
+ "format_description" : "UUID",
+ "optional" : 1,
+ "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
+ "type" : "string",
+ "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done through API/CLI create or update methods, but not when manually editing the config file."
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "vmstatestorage" : {
+ "description" : "Default storage for VM state volumes/files.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "watchdog" : {
+ "description" : "Create a virtual hardware watchdog device.",
+ "format" : "pve-qm-watchdog",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
+ "verbose_description" : "Create a virtual hardware watchdog device. Once enabled (by a guest action), the watchdog must be periodically polled by an agent inside the guest or else the watchdog will reset the guest (or execute the respective action specified)"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "You need 'VM.Allocate' permissions on /vms/{vmid} or on the VM pool /pool/{pool}. For restore (option 'archive'), it is enough if the user has 'VM.Backup' permission and the VM already exists. If you create disks you need 'Datastore.AllocateSpace' on any used storage.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/qemu",
+ "text" : "qemu"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get container configuration.",
+ "method" : "GET",
+ "name" : "vm_config",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "current" : {
"default" : 0,
+ "description" : "Get current values (instead of pending values).",
+ "optional" : 1,
"type" : "boolean",
- "description" : "Enable/disable Qemu GuestAgent.",
- "optional" : 1
+ "typetext" : "<boolean>"
},
- "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"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "tablet" : {
- "type" : "boolean",
- "default" : 1,
+ "snapshot" : {
+ "description" : "Fetch config values from given snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
"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
+ "typetext" : "<string>"
},
- "smp" : {
- "type" : "integer",
- "default" : 1,
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
"minimum" : 1,
- "description" : "The number of CPUs. Please use option -sockets instead.",
- "optional" : 1
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "arch" : {
+ "default" : "amd64",
+ "description" : "OS architecture type.",
+ "enum" : [
+ "amd64",
+ "i386",
+ "arm64",
+ "armhf"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "hostpci[n]" : {
- "format" : "pve-qm-hostpci",
- "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,
- "description" : "Map host pci devices. HOSTPCIDEVICE syntax is:\n\n'bus:dev.func' (hexadecimal numbers)\n\nYou can us the 'lspci' command to list existing pci devices.\n\nThe 'rombar' option determines whether or not the device's ROM will be visible in the guest's memory map (default is 'on').\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nExperimental: user reported problems with this option.\n"
+ "type" : "string"
},
- "kvm" : {
- "type" : "boolean",
+ "console" : {
"default" : 1,
+ "description" : "Attach a console device (/dev/console) to the container.",
"optional" : 1,
- "description" : "Enable/disable KVM hardware virtualization."
+ "type" : "boolean"
},
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "cores" : {
+ "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
+ "maximum" : 8192,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
},
- "ostype" : {
- "type" : "string",
- "enum" : [
- "other",
- "wxp",
- "w2k",
- "w2k3",
- "w2k8",
- "wvista",
- "win7",
- "win8",
- "l24",
- "l26",
- "solaris"
- ],
- "description" : "Used to enable special optimization/features for specific\noperating systems:\n\nother => unspecified OS\nwxp => Microsoft Windows XP\nw2k => Microsoft Windows 2000\nw2k3 => Microsoft Windows 2003\nw2k8 => Microsoft Windows 2008\nwvista => Microsoft Windows Vista\nwin7 => Microsoft Windows 7\nwin8 => Microsoft Windows 8/2012\nl24 => Linux 2.4 Kernel\nl26 => Linux 2.6/3.X Kernel\nsolaris => solaris/opensolaris/openindiania kernel\n\nother|l24|l26|solaris ... no special behaviour\nwxp|w2k|w2k3|w2k8|wvista|win7|win8 ... use --localtime switch\n",
- "optional" : 1
+ "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" : 8192,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number"
},
- "unused[n]" : {
- "format" : "pve-volume-id",
- "type" : "string",
+ "cpuunits" : {
+ "default" : 1024,
+ "description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to the weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0.",
+ "maximum" : 500000,
+ "minimum" : 0,
"optional" : 1,
- "description" : "Reference to unused volumes."
+ "type" : "integer"
},
- "template" : {
- "type" : "boolean",
+ "debug" : {
"default" : 0,
- "description" : "Enable/disable Template.",
- "optional" : 1
+ "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "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)",
+ "description" : {
+ "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
+ "maxLength" : 8192,
"optional" : 1,
- "type" : "string",
- "format" : "pve-qm-watchdog"
+ "type" : "string"
},
- "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
+ "digest" : {
+ "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
+ "type" : "string"
},
- "protection" : {
- "description" : "Sets the protection flag of the VM. This will prevent the remove operation.",
+ "features" : {
+ "description" : "Allow containers access to advanced features.",
+ "format" : {
+ "force_rw_sys" : {
+ "default" : 0,
+ "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "fuse" : {
+ "default" : 0,
+ "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "keyctl" : {
+ "default" : 0,
+ "description" : "For unprivileged containers only: Allow the use of the keyctl() system call. This is required to use docker inside a container. By default unprivileged containers will see this system call as non-existent. This is mostly a workaround for systemd-networkd, as it will treat it as a fatal error when some keyctl() operations are denied by the kernel due to lacking permissions. Essentially, you can choose between running systemd-networkd or docker.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "mknod" : {
+ "default" : 0,
+ "description" : "Allow unprivileged containers to use mknod() to add certain device nodes. This requires a kernel with seccomp trap to user space support (5.3 or newer). This is experimental.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "mount" : {
+ "description" : "Allow mounting file systems of specific types. This should be a list of file system types as used with the mount command. Note that this can have negative effects on the container's security. With access to a loop device, mounting a file can circumvent the mknod permission of the devices cgroup, mounting an NFS file system can block the host's I/O completely and prevent it from rebooting, etc.",
+ "format_description" : "fstype;fstype;...",
+ "optional" : 1,
+ "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
+ "type" : "string"
+ },
+ "nesting" : {
+ "default" : 0,
+ "description" : "Allow nesting. Best used with unprivileged containers with additional id mapping. Note that this will expose procfs and sysfs contents of the host to the guest.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
"optional" : 1,
- "type" : "boolean",
- "default" : 0
+ "type" : "string"
},
- "reboot" : {
+ "hookscript" : {
+ "description" : "Script that will be exectued during various steps in the containers lifetime.",
+ "format" : "pve-volume-id",
"optional" : 1,
- "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
- "type" : "boolean",
- "default" : 1
+ "type" : "string"
},
- "hotplug" : {
+ "hostname" : {
+ "description" : "Set a host name for the container.",
+ "format" : "dns-name",
+ "maxLength" : 255,
"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" : "string"
},
- "machine" : {
- "description" : "Specific the Qemu machine type.",
+ "lock" : {
+ "description" : "Lock/unlock the VM.",
+ "enum" : [
+ "backup",
+ "create",
+ "destroyed",
+ "disk",
+ "fstrim",
+ "migrate",
+ "mounted",
+ "rollback",
+ "snapshot",
+ "snapshot-delete"
+ ],
"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,
+ "lxc" : {
+ "description" : "Array of lxc low-level configurations ([[key1, value1], [key2, value2] ...]).",
+ "items" : {
+ "items" : {
+ "type" : "string"
+ },
+ "type" : "array"
+ },
"optional" : 1,
- "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit."
+ "type" : "array"
},
- "background_delay" : {
- "type" : "integer",
- "maximum" : 30,
- "minimum" : 1,
+ "memory" : {
+ "default" : 512,
+ "description" : "Amount of RAM for the VM in MB.",
+ "minimum" : 16,
"optional" : 1,
- "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time."
+ "type" : "integer"
},
- "sata[n]" : {
- "type" : "string",
+ "mp[n]" : {
+ "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
"format" : {
- "snapshot" : {
- "type" : "boolean",
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making snapshots.",
- "optional" : 1
- },
- "cache" : {
- "type" : "string",
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "optional" : 1,
- "description" : "The drive's cache mode",
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ]
- },
- "bps" : {
- "description" : "Maximum r/w speed speed in bytes per second.",
- "format_description" : "bps",
- "optional" : 1,
- "type" : "integer"
- },
- "mbps_wr_max" : {
- "type" : "number",
+ "acl" : {
+ "description" : "Explicitly enable or disable ACL support.",
"optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum unthrottled write pool speed in megabytes per second."
+ "type" : "boolean"
},
- "iops_rd" : {
- "type" : "integer",
+ "backup" : {
+ "description" : "Whether to include the mount point in backups.",
"optional" : 1,
- "format_description" : "iops",
- "description" : "Maximum read I/O speed in operations per second."
+ "type" : "boolean",
+ "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
},
- "werror" : {
- "description" : "Write error action.",
+ "mountoptions" : {
+ "description" : "Extra mount options for rootfs/mps.",
+ "format_description" : "opt[;opt...]",
"optional" : 1,
- "format_description" : "enospc|ignore|report|stop",
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ],
+ "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
"type" : "string"
},
- "volume" : {
- "alias" : "file"
+ "mp" : {
+ "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
+ "format" : "pve-lxc-mp-string",
+ "format_description" : "Path",
+ "type" : "string",
+ "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
},
- "iops_rd_max" : {
- "type" : "integer",
+ "quota" : {
+ "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
"optional" : 1,
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "format_description" : "iops"
- },
- "trans" : {
- "type" : "string",
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
- "format_description" : "none|lba|auto",
- "description" : "Force disk geometry bios translation mode.",
- "optional" : 1
+ "type" : "boolean"
},
- "rerror" : {
- "type" : "string",
- "description" : "Read error action.",
+ "replicate" : {
+ "default" : 1,
+ "description" : "Will include this volume to a storage replica job.",
"optional" : 1,
- "format_description" : "ignore|report|stop",
- "enum" : [
- "ignore",
- "report",
- "stop"
- ]
+ "type" : "boolean"
},
- "iops" : {
- "type" : "integer",
- "format_description" : "iops",
- "description" : "Maximum r/w I/O speed in operations per second.",
- "optional" : 1
+ "ro" : {
+ "description" : "Read-only mount point",
+ "optional" : 1,
+ "type" : "boolean"
},
- "bps_wr" : {
- "type" : "integer",
- "description" : "Maximum write speed speed in bytes per second.",
- "format_description" : "bps",
- "optional" : 1
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
+ "optional" : 1,
+ "type" : "boolean",
+ "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!"
},
- "mbps" : {
- "type" : "number",
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "format_description" : "mbps",
- "optional" : 1
+ "size" : {
+ "description" : "Volume size (read only value).",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
},
- "file" : {
+ "volume" : {
"default_key" : 1,
- "description" : "The drive's backing volume.",
+ "description" : "Volume, device or directory to mount into the container.",
+ "format" : "pve-lxc-mp-string",
"format_description" : "volume",
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path"
- },
- "serial" : {
- "maxLength" : 60,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "nameserver" : {
+ "description" : "Sets DNS server IP address for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
+ "format" : "lxc-ip-with-ll-iface-list",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "net[n]" : {
+ "description" : "Specifies network interfaces for the container.",
+ "format" : {
+ "bridge" : {
+ "description" : "Bridge to attach the network device to.",
+ "format_description" : "bridge",
"optional" : 1,
- "format_description" : "serial",
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "format" : "urlencoded",
+ "pattern" : "[-_.\\w\\d]+",
"type" : "string"
},
- "mbps_max" : {
- "format_description" : "mbps",
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "firewall" : {
+ "description" : "Controls whether this interface's firewall rules should be used.",
"optional" : 1,
- "type" : "number"
+ "type" : "boolean"
},
- "discard" : {
- "enum" : [
- "ignore",
- "on"
- ],
+ "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,
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "format_description" : "ignore|on",
"type" : "string"
},
- "iops_max" : {
- "type" : "integer",
+ "hwaddr" : {
+ "description" : "The interface MAC address. This is dynamically allocated by default, but you can set that statically if needed, for example to always have the same link-local IPv6 address. (lxc.network.hwaddr)",
+ "format" : "mac-addr",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
"optional" : 1,
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "format_description" : "iops"
- },
- "aio" : {
"type" : "string",
- "enum" : [
- "native",
- "threads"
- ],
+ "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
+ },
+ "ip" : {
+ "description" : "IPv4 address in CIDR format.",
+ "format" : "pve-ipv4-config",
+ "format_description" : "(IPv4/CIDR|dhcp|manual)",
"optional" : 1,
- "format_description" : "native|threads",
- "description" : "AIO type to use."
+ "type" : "string"
},
- "mbps_rd_max" : {
+ "ip6" : {
+ "description" : "IPv6 address in CIDR format.",
+ "format" : "pve-ipv6-config",
+ "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
"optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "type" : "number"
+ "type" : "string"
},
- "iops_wr_max" : {
+ "mtu" : {
+ "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
+ "minimum" : 64,
"optional" : 1,
- "format_description" : "iops",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
"type" : "integer"
},
- "size" : {
- "type" : "string",
- "format" : "disk-size",
- "optional" : 1,
- "description" : "Disk size. This is purely informational and has no effect."
+ "name" : {
+ "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
+ "format_description" : "string",
+ "pattern" : "[-_.\\w\\d]+",
+ "type" : "string"
},
- "bps_rd" : {
- "description" : "Maximum read speed speed in bytes per second.",
+ "rate" : {
+ "description" : "Apply rate limiting to the interface",
+ "format_description" : "mbps",
"optional" : 1,
- "format_description" : "bps",
- "type" : "integer"
+ "type" : "number"
},
- "backup" : {
- "type" : "boolean",
- "description" : "Whether the drive should be included when making backups.",
+ "tag" : {
+ "description" : "VLAN tag for this interface.",
+ "maximum" : 4094,
+ "minimum" : 1,
"optional" : 1,
- "format_description" : "on|off"
- },
- "detect_zeroes" : {
- "type" : "boolean",
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "optional" : 1
+ "type" : "integer"
},
- "iops_wr" : {
- "type" : "integer",
+ "trunks" : {
+ "description" : "VLAN ids to pass through the interface",
+ "format_description" : "vlanid[;vlanid...]",
"optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
- "format_description" : "iops"
+ "pattern" : "(?^:\\d+(?:;\\d+)*)",
+ "type" : "string"
},
- "media" : {
- "format_description" : "cdrom|disk",
- "optional" : 1,
- "description" : "The drive's media type.",
+ "type" : {
+ "description" : "Network interface type.",
"enum" : [
- "cdrom",
- "disk"
+ "veth"
],
- "default" : "disk",
+ "optional" : 1,
"type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "onboot" : {
+ "default" : 0,
+ "description" : "Specifies whether a VM will be started during system bootup.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ostype" : {
+ "description" : "OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/<ostype>.common.conf. Value 'unmanaged' can be used to skip and OS specific setup.",
+ "enum" : [
+ "debian",
+ "devuan",
+ "ubuntu",
+ "centos",
+ "fedora",
+ "opensuse",
+ "archlinux",
+ "alpine",
+ "gentoo",
+ "nixos",
+ "unmanaged"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "protection" : {
+ "default" : 0,
+ "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "rootfs" : {
+ "description" : "Use volume as container root.",
+ "format" : {
+ "acl" : {
+ "description" : "Explicitly enable or disable ACL support.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "format" : {
- "description" : "The drive's backing file's data format.",
- "format_description" : "drive format",
+ "mountoptions" : {
+ "description" : "Extra mount options for rootfs/mps.",
+ "format_description" : "opt[;opt...]",
"optional" : 1,
- "enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
- ],
+ "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
"type" : "string"
},
- "cyls" : {
- "format_description" : "count",
+ "quota" : {
+ "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "type" : "integer"
+ "type" : "boolean"
},
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
+ "replicate" : {
+ "default" : 1,
+ "description" : "Will include this volume to a storage replica job.",
"optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "boolean"
},
- "mbps_rd" : {
- "type" : "number",
+ "ro" : {
+ "description" : "Read-only mount point",
"optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum read speed speed in megabytes per second."
+ "type" : "boolean"
},
- "heads" : {
- "description" : "Force the drive's physical geometry to have a specific head count.",
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
"optional" : 1,
- "format_description" : "count",
- "type" : "integer"
+ "type" : "boolean",
+ "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!"
},
- "secs" : {
- "type" : "integer",
+ "size" : {
+ "description" : "Volume size (read only value).",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "format_description" : "count"
+ "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"
}
},
- "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
- "bootdisk" : {
- "type" : "string",
- "format" : "pve-qm-bootdisk",
- "pattern" : "(ide|sata|scsi|virtio)\\d+",
+ "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,
- "description" : "Enable booting from specified disk."
+ "type" : "string"
},
- "migrate_downtime" : {
+ "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,
- "type" : "number",
- "default" : 0.1,
- "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
- "optional" : 1
+ "optional" : 1,
+ "type" : "integer"
},
- "cores" : {
- "minimum" : 1,
- "type" : "integer",
- "default" : 1,
+ "tags" : {
+ "description" : "Tags of the Container. This is only meta information.",
+ "format" : "pve-tag-list",
"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",
+ "template" : {
+ "default" : 0,
+ "description" : "Enable/disable Template.",
"optional" : 1,
- "type" : "string",
- "format" : "pve-qm-net"
+ "type" : "boolean"
},
- "freeze" : {
- "type" : "boolean",
+ "timezone" : {
+ "description" : "Time zone to use in the container. If option isn't set, then nothing will be done. Can be set to 'host' to match the host time zone, or an arbitrary time zone option from /usr/share/zoneinfo/zone.tab",
+ "format" : "pve-ct-timezone",
"optional" : 1,
- "description" : "Freeze CPU at startup (use 'c' monitor command to start execution)."
+ "type" : "string"
},
- "keyboard" : {
+ "tty" : {
+ "default" : 2,
+ "description" : "Specify the number of tty available to the container",
+ "maximum" : 6,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "unprivileged" : {
+ "default" : 0,
+ "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "unused[n]" : {
+ "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
+ "format" : {
+ "volume" : {
+ "default_key" : 1,
+ "description" : "The volume that is not used currently.",
+ "format" : "pve-volume-id",
+ "format_description" : "volume",
+ "type" : "string"
+ }
+ },
"optional" : 1,
- "description" : "Keybord layout for vnc server. Default is read from the datacenter configuration file.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Set container options.",
+ "method" : "PUT",
+ "name" : "update_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "arch" : {
+ "default" : "amd64",
+ "description" : "OS architecture type.",
"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"
+ "amd64",
+ "i386",
+ "arm64",
+ "armhf"
],
- "default" : "en-us",
+ "optional" : 1,
"type" : "string"
},
- "digest" : {
+ "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,
- "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.",
+ "console" : {
+ "default" : 1,
+ "description" : "Attach a console device (/dev/console) to the container.",
"optional" : 1,
- "default" : 0,
- "type" : "integer",
- "minimum" : 1
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "memory" : {
- "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
+ "cores" : {
+ "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
+ "maximum" : 8192,
+ "minimum" : 1,
"optional" : 1,
- "minimum" : 16,
"type" : "integer",
- "default" : 512
- },
- "localtime" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS."
+ "typetext" : "<integer> (1 - 8192)"
},
- "onboot" : {
+ "cpulimit" : {
"default" : 0,
- "type" : "boolean",
- "description" : "Specifies whether a VM will be started during system bootup.",
- "optional" : 1
- },
- "description" : {
- "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"
- },
- "startup" : {
- "format" : "pve-startup-order",
- "type" : "string",
- "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] ",
- "optional" : 1,
- "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped."
- },
- "boot" : {
- "pattern" : "[acdn]{1,4}",
- "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
+ "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" : 8192,
+ "minimum" : 0,
"optional" : 1,
- "default" : "cdn",
- "type" : "string"
+ "type" : "number",
+ "typetext" : "<number> (0 - 8192)"
},
- "skiplock" : {
+ "cpuunits" : {
+ "default" : 1024,
+ "description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to the weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0.",
+ "maximum" : 500000,
+ "minimum" : 0,
"optional" : 1,
- "description" : "Ignore locks - only root is allowed to use this option.",
- "type" : "boolean"
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 500000)"
},
- "name" : {
+ "debug" : {
+ "default" : 0,
+ "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
"optional" : 1,
- "description" : "Set a name for the VM. Only used on the configuration web interface.",
- "format" : "dns-name",
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "scsihw" : {
- "enum" : [
- "lsi",
- "lsi53c810",
- "virtio-scsi-pci",
- "virtio-scsi-single",
- "megasas",
- "pvscsi"
- ],
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
"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"
+ "typetext" : "<string>"
},
- "revert" : {
+ "description" : {
+ "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
+ "maxLength" : 8192,
"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
+ "type" : "string",
+ "typetext" : "<string>"
},
- "numa[n]" : {
- "description" : "numa topology",
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
"optional" : 1,
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "features" : {
+ "description" : "Allow containers access to advanced features.",
"format" : {
- "cpus" : {
- "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
- "description" : "CPUs accessing this numa node.",
- "format_description" : "id[-id];...",
- "type" : "string"
+ "force_rw_sys" : {
+ "default" : 0,
+ "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "memory" : {
- "type" : "number",
+ "fuse" : {
+ "default" : 0,
+ "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
"optional" : 1,
- "description" : "Amount of memory this numa node provides.",
- "format_description" : "mb"
+ "type" : "boolean"
},
- "hostnodes" : {
- "type" : "string",
- "description" : "host numa nodes to use",
- "format_description" : "id[-id];...",
+ "keyctl" : {
+ "default" : 0,
+ "description" : "For unprivileged containers only: Allow the use of the keyctl() system call. This is required to use docker inside a container. By default unprivileged containers will see this system call as non-existent. This is mostly a workaround for systemd-networkd, as it will treat it as a fatal error when some keyctl() operations are denied by the kernel due to lacking permissions. Essentially, you can choose between running systemd-networkd or docker.",
"optional" : 1,
- "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)"
+ "type" : "boolean"
},
- "policy" : {
- "enum" : [
- "preferred",
- "bind",
- "interleave"
- ],
+ "mknod" : {
+ "default" : 0,
+ "description" : "Allow unprivileged containers to use mknod() to add certain device nodes. This requires a kernel with seccomp trap to user space support (5.3 or newer). This is experimental.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "mount" : {
+ "description" : "Allow mounting file systems of specific types. This should be a list of file system types as used with the mount command. Note that this can have negative effects on the container's security. With access to a loop device, mounting a file can circumvent the mknod permission of the devices cgroup, mounting an NFS file system can block the host's I/O completely and prevent it from rebooting, etc.",
+ "format_description" : "fstype;fstype;...",
"optional" : 1,
- "format_description" : "preferred|bind|interleave",
- "description" : "numa allocation policy.",
+ "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
"type" : "string"
- }
- }
- },
- "cpu" : {
- "optional" : 1,
- "description" : "Emulated CPU type.",
- "type" : "string",
- "format" : {
- "cputype" : {
- "type" : "string",
- "default" : "kvm64",
- "enum" : [
- "486",
- "athlon",
- "pentium",
- "pentium2",
- "pentium3",
- "coreduo",
- "core2duo",
- "kvm32",
- "kvm64",
- "qemu32",
- "qemu64",
- "phenom",
- "Conroe",
- "Penryn",
- "Nehalem",
- "Westmere",
- "SandyBridge",
- "IvyBridge",
- "Haswell",
- "Haswell-noTSX",
- "Broadwell",
- "Broadwell-noTSX",
- "Opteron_G1",
- "Opteron_G2",
- "Opteron_G3",
- "Opteron_G4",
- "Opteron_G5",
- "host"
- ],
- "format_description" : "cputype",
- "description" : "Emulated CPU type.",
- "default_key" : 1
},
- "hidden" : {
+ "nesting" : {
+ "default" : 0,
+ "description" : "Allow nesting. Best used with unprivileged containers with additional id mapping. Note that this will expose procfs and sysfs contents of the host to the guest.",
"optional" : 1,
- "description" : "Do not identify as a KVM virtual machine.",
- "type" : "boolean",
- "default" : 0
+ "type" : "boolean"
}
- }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
},
- "autostart" : {
+ "hookscript" : {
+ "description" : "Script that will be exectued during various steps in the containers lifetime.",
+ "format" : "pve-volume-id",
"optional" : 1,
- "description" : "Automatic restart after crash (currently ignored).",
- "type" : "boolean",
- "default" : 0
+ "type" : "string",
+ "typetext" : "<string>"
},
- "vga" : {
+ "hostname" : {
+ "description" : "Set a host name for the container.",
+ "format" : "dns-name",
+ "maxLength" : 255,
+ "optional" : 1,
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "lock" : {
+ "description" : "Lock/unlock the VM.",
"enum" : [
- "std",
- "cirrus",
- "vmware",
- "qxl",
- "serial0",
- "serial1",
- "serial2",
- "serial3",
- "qxl2",
- "qxl3",
- "qxl4"
+ "backup",
+ "create",
+ "destroyed",
+ "disk",
+ "fstrim",
+ "migrate",
+ "mounted",
+ "rollback",
+ "snapshot",
+ "snapshot-delete"
],
"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})?)"
+ "type" : "string"
},
- "acpi" : {
+ "memory" : {
+ "default" : 512,
+ "description" : "Amount of RAM for the VM in MB.",
+ "minimum" : 16,
"optional" : 1,
- "description" : "Enable/disable ACPI.",
- "type" : "boolean",
- "default" : 1
+ "type" : "integer",
+ "typetext" : "<integer> (16 - N)"
},
- "scsi[n]" : {
+ "mp[n]" : {
+ "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
"format" : {
- "secs" : {
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "optional" : 1,
- "type" : "integer"
- },
- "heads" : {
- "type" : "integer",
- "optional" : 1,
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific head count."
- },
- "mbps_rd" : {
- "optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second.",
- "format_description" : "mbps",
- "type" : "number"
- },
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
- "optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
- },
- "cyls" : {
- "type" : "integer",
- "optional" : 1,
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific cylinder count."
- },
- "format" : {
- "type" : "string",
- "optional" : 1,
- "format_description" : "drive format",
- "description" : "The drive's backing file's data format.",
- "enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
- ]
- },
- "iops_wr" : {
- "format_description" : "iops",
- "optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
- "type" : "integer"
- },
- "detect_zeroes" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Controls whether to detect and try to optimize writes of zeroes."
- },
- "media" : {
- "type" : "string",
- "default" : "disk",
- "format_description" : "cdrom|disk",
- "description" : "The drive's media type.",
- "optional" : 1,
- "enum" : [
- "cdrom",
- "disk"
- ]
- },
- "backup" : {
- "type" : "boolean",
- "description" : "Whether the drive should be included when making backups.",
- "optional" : 1,
- "format_description" : "on|off"
- },
- "bps_rd" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum read speed speed in bytes per second.",
- "format_description" : "bps"
- },
- "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"
- },
- "iothread" : {
- "type" : "boolean",
+ "acl" : {
+ "description" : "Explicitly enable or disable ACL support.",
"optional" : 1,
- "description" : "Whether to use iothreads for this drive",
- "format_description" : "off|on"
+ "type" : "boolean"
},
- "iops_max" : {
- "type" : "integer",
- "format_description" : "iops",
+ "backup" : {
+ "description" : "Whether to include the mount point in backups.",
"optional" : 1,
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second."
+ "type" : "boolean",
+ "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
},
- "mbps_rd_max" : {
- "format_description" : "mbps",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+ "mountoptions" : {
+ "description" : "Extra mount options for rootfs/mps.",
+ "format_description" : "opt[;opt...]",
"optional" : 1,
- "type" : "number"
+ "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
+ "type" : "string"
},
- "aio" : {
+ "mp" : {
+ "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
+ "format" : "pve-lxc-mp-string",
+ "format_description" : "Path",
"type" : "string",
- "enum" : [
- "native",
- "threads"
- ],
+ "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
+ },
+ "quota" : {
+ "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
"optional" : 1,
- "format_description" : "native|threads",
- "description" : "AIO type to use."
+ "type" : "boolean"
},
- "queues" : {
- "minimum" : 2,
- "type" : "integer",
+ "replicate" : {
+ "default" : 1,
+ "description" : "Will include this volume to a storage replica job.",
"optional" : 1,
- "format_description" : "nbqueues",
- "description" : "Number of queues."
+ "type" : "boolean"
},
- "discard" : {
- "type" : "string",
- "enum" : [
- "ignore",
- "on"
- ],
+ "ro" : {
+ "description" : "Read-only mount point",
"optional" : 1,
- "format_description" : "ignore|on",
- "description" : "Controls whether to pass discard/trim requests to the underlying storage."
+ "type" : "boolean"
},
- "serial" : {
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
"optional" : 1,
- "format_description" : "serial",
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "maxLength" : 60,
- "type" : "string",
- "format" : "urlencoded"
+ "type" : "boolean",
+ "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!"
},
- "mbps_max" : {
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "size" : {
+ "description" : "Volume size (read only value).",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
"optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "string"
},
- "file" : {
- "description" : "The drive's backing volume.",
- "format_description" : "volume",
+ "volume" : {
"default_key" : 1,
- "format" : "pve-volume-id-or-qm-path",
+ "description" : "Volume, device or directory to mount into the container.",
+ "format" : "pve-lxc-mp-string",
+ "format_description" : "volume",
"type" : "string"
- },
- "mbps" : {
- "type" : "number",
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[volume=]<volume> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
+ },
+ "nameserver" : {
+ "description" : "Sets DNS server IP address for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
+ "format" : "lxc-ip-with-ll-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "net[n]" : {
+ "description" : "Specifies network interfaces for the container.",
+ "format" : {
+ "bridge" : {
+ "description" : "Bridge to attach the network device to.",
+ "format_description" : "bridge",
"optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum r/w speed speed in megabytes per second."
+ "pattern" : "[-_.\\w\\d]+",
+ "type" : "string"
},
- "bps_wr" : {
- "format_description" : "bps",
- "description" : "Maximum write speed speed in bytes per second.",
+ "firewall" : {
+ "description" : "Controls whether this interface's firewall rules should be used.",
"optional" : 1,
- "type" : "integer"
+ "type" : "boolean"
},
- "iops" : {
- "description" : "Maximum r/w I/O speed in operations per second.",
+ "gw" : {
+ "description" : "Default gateway for IPv4 traffic.",
+ "format" : "ipv4",
+ "format_description" : "GatewayIPv4",
"optional" : 1,
- "format_description" : "iops",
- "type" : "integer"
+ "type" : "string"
},
- "trans" : {
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
+ "gw6" : {
+ "description" : "Default gateway for IPv6 traffic.",
+ "format" : "ipv6",
+ "format_description" : "GatewayIPv6",
"optional" : 1,
- "description" : "Force disk geometry bios translation mode.",
- "format_description" : "none|lba|auto",
"type" : "string"
},
- "volume" : {
- "alias" : "file"
- },
- "iops_rd_max" : {
+ "hwaddr" : {
+ "description" : "The interface MAC address. This is dynamically allocated by default, but you can set that statically if needed, for example to always have the same link-local IPv6 address. (lxc.network.hwaddr)",
+ "format" : "mac-addr",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
"optional" : 1,
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "format_description" : "iops",
- "type" : "integer"
+ "type" : "string",
+ "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
},
- "iops_rd" : {
- "format_description" : "iops",
- "description" : "Maximum read I/O speed in operations per second.",
+ "ip" : {
+ "description" : "IPv4 address in CIDR format.",
+ "format" : "pve-ipv4-config",
+ "format_description" : "(IPv4/CIDR|dhcp|manual)",
"optional" : 1,
- "type" : "integer"
+ "type" : "string"
},
- "werror" : {
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ],
- "format_description" : "enospc|ignore|report|stop",
+ "ip6" : {
+ "description" : "IPv6 address in CIDR format.",
+ "format" : "pve-ipv6-config",
+ "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
"optional" : 1,
- "description" : "Write error action.",
"type" : "string"
},
- "cache" : {
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ],
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
+ "mtu" : {
+ "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
+ "minimum" : 64,
"optional" : 1,
- "description" : "The drive's cache mode",
+ "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"
},
- "snapshot" : {
- "type" : "boolean",
+ "rate" : {
+ "description" : "Apply rate limiting to the interface",
+ "format_description" : "mbps",
"optional" : 1,
- "description" : "Whether the drive should be included when making snapshots.",
- "format_description" : "on|off"
+ "type" : "number"
},
- "bps" : {
- "type" : "integer",
+ "tag" : {
+ "description" : "VLAN tag for this interface.",
+ "maximum" : 4094,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "trunks" : {
+ "description" : "VLAN ids to pass through the interface",
+ "format_description" : "vlanid[;vlanid...]",
"optional" : 1,
- "description" : "Maximum r/w speed speed in bytes per second.",
- "format_description" : "bps"
+ "pattern" : "(?^:\\d+(?:;\\d+)*)",
+ "type" : "string"
},
- "mbps_wr_max" : {
- "type" : "number",
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+ "type" : {
+ "description" : "Network interface type.",
+ "enum" : [
+ "veth"
+ ],
"optional" : 1,
- "format_description" : "mbps"
+ "type" : "string"
}
},
- "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."
- },
- "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
+ "typetext" : "name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
},
- "smbios1" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-qm-smbios1",
+ "typetext" : "<string>"
+ },
+ "onboot" : {
+ "default" : 0,
+ "description" : "Specifies whether a VM will be started during system bootup.",
"optional" : 1,
- "description" : "Specify SMBIOS type 1 fields.",
- "maxLength" : 256
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Disk",
- "VM.Config.CDROM",
- "VM.Config.CPU",
- "VM.Config.Memory",
- "VM.Config.Network",
- "VM.Config.HWType",
- "VM.Config.Options"
- ],
- "any",
- 1
- ]
- },
- "protected" : 1,
- "method" : "POST",
- "name" : "update_vm_async",
- "returns" : {
- "optional" : 1,
- "type" : "string"
- },
- "description" : "Set virtual machine options (asynchrounous API)."
- },
- "GET" : {
- "description" : "Get current virtual machine configuration. This does not include pending configuration changes (see 'pending' API).",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "method" : "GET",
- "name" : "vm_config",
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "current" : {
"type" : "boolean",
- "default" : 0,
+ "typetext" : "<boolean>"
+ },
+ "ostype" : {
+ "description" : "OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/<ostype>.common.conf. Value 'unmanaged' can be used to skip and OS specific setup.",
+ "enum" : [
+ "debian",
+ "devuan",
+ "ubuntu",
+ "centos",
+ "fedora",
+ "opensuse",
+ "archlinux",
+ "alpine",
+ "gentoo",
+ "nixos",
+ "unmanaged"
+ ],
"optional" : 1,
- "description" : "Get current values (instead of pending values)."
+ "type" : "string"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
+ "protection" : {
+ "default" : 0,
+ "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- }
- },
- "returns" : {
- "properties" : {
- "digest" : {
- "type" : "string",
- "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications."
- }
- },
- "type" : "object"
- }
- }
- },
- "text" : "config",
- "leaf" : 1
- },
- {
- "info" : {
- "GET" : {
- "parameters" : {
- "properties" : {
- "node" : {
- "format" : "pve-node",
+ "revert" : {
+ "description" : "Revert a pending change.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "delete" : {
- "optional" : 1,
- "description" : "Indicates a pending delete request if present and not 0. The value 2 indicates a force-delete request.",
- "maximum" : 2,
- "type" : "integer",
- "minimum" : 0
- },
- "key" : {
- "type" : "string",
- "description" : "Configuration option name."
- },
- "value" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Current value."
+ "rootfs" : {
+ "description" : "Use volume as container root.",
+ "format" : {
+ "acl" : {
+ "description" : "Explicitly enable or disable ACL support.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "mountoptions" : {
+ "description" : "Extra mount options for rootfs/mps.",
+ "format_description" : "opt[;opt...]",
+ "optional" : 1,
+ "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
+ "type" : "string"
+ },
+ "quota" : {
+ "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "replicate" : {
+ "default" : 1,
+ "description" : "Will include this volume to a storage replica job.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ro" : {
+ "description" : "Read-only mount point",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
+ "optional" : 1,
+ "type" : "boolean",
+ "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!"
+ },
+ "size" : {
+ "description" : "Volume size (read only value).",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "volume" : {
+ "default_key" : 1,
+ "description" : "Volume, device or directory to mount into the container.",
+ "format" : "pve-lxc-mp-string",
+ "format_description" : "volume",
+ "type" : "string"
+ }
},
- "pending" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Pending value."
- }
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[volume=]<volume> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
},
- "type" : "object"
- }
- },
- "name" : "vm_pending",
- "method" : "GET",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "description" : "Get virtual machine configuration, including pending changes."
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/pending",
- "text" : "pending",
- "leaf" : 1
- },
- {
- "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" : {
- "properties" : {
- "idlist" : {
- "description" : "A list of disk IDs you want to delete.",
+ "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",
- "format" : "pve-configid-list"
+ "typetext" : "<string>"
},
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
+ "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+] "
},
- "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.",
+ "swap" : {
+ "default" : 512,
+ "description" : "Amount of SWAP for the VM in MB.",
+ "minimum" : 0,
"optional" : 1,
- "type" : "boolean"
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "node" : {
- "format" : "pve-node",
+ "tags" : {
+ "description" : "Tags of the Container. This is only meta information.",
+ "format" : "pve-tag-list",
+ "optional" : 1,
"type" : "string",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node"
- }
- }
- },
- {
- "path" : "/nodes/{node}/qemu/{vmid}/vncproxy",
- "info" : {
- "POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Console"
- ]
- ]
- },
- "description" : "Creates a TCP VNC proxy connections.",
- "protected" : 1,
- "method" : "POST",
- "name" : "vncproxy",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "typetext" : "<string>"
},
- "websocket" : {
- "description" : "starts websockify instead of vncproxy",
+ "template" : {
+ "default" : 0,
+ "description" : "Enable/disable Template.",
"optional" : 1,
- "type" : "boolean"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "node" : {
- "description" : "The cluster node name.",
+ "timezone" : {
+ "description" : "Time zone to use in the container. If option isn't set, then nothing will be done. Can be set to 'host' to match the host time zone, or an arbitrary time zone option from /usr/share/zoneinfo/zone.tab",
+ "format" : "pve-ct-timezone",
+ "optional" : 1,
"type" : "string",
- "format" : "pve-node"
- }
- }
- },
- "returns" : {
- "properties" : {
- "upid" : {
- "type" : "string"
- },
- "ticket" : {
- "type" : "string"
+ "typetext" : "<string>"
},
- "user" : {
- "type" : "string"
+ "tty" : {
+ "default" : 2,
+ "description" : "Specify the number of tty available to the container",
+ "maximum" : 6,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 6)"
},
- "port" : {
- "type" : "integer"
+ "unprivileged" : {
+ "default" : 0,
+ "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "unused[n]" : {
+ "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
+ "format" : {
+ "volume" : {
+ "default_key" : 1,
+ "description" : "The volume that is not used currently.",
+ "format" : "pve-volume-id",
+ "format_description" : "volume",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[volume=]<volume>"
},
- "cert" : {
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- }
- }
- },
- "text" : "vncproxy",
- "leaf" : 1
- },
- {
- "leaf" : 1,
- "text" : "vncwebsocket",
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "vncwebsocket",
- "returns" : {
- "type" : "object",
- "properties" : {
- "port" : {
- "type" : "string"
- }
- }
- },
- "parameters" : {
- "properties" : {
"vmid" : {
"description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
"minimum" : 1,
"type" : "integer",
- "format" : "pve-vmid"
- },
- "port" : {
- "description" : "Port number returned by previous vncproxy call.",
- "minimum" : 5900,
- "type" : "integer",
- "maximum" : 5999
- },
- "vncticket" : {
- "description" : "Ticket from previous call to vncproxy.",
- "maxLength" : 512,
- "type" : "string"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
- "description" : "You also need to pass a valid ticket (vncticket).",
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Console"
- ]
- ]
+ "VM.Config.Disk",
+ "VM.Config.CPU",
+ "VM.Config.Memory",
+ "VM.Config.Network",
+ "VM.Config.Options"
+ ],
+ "any",
+ 1
+ ],
+ "description" : "non-volume mount points in rootfs and mp[n] are restricted to root@pam"
},
- "description" : "Opens a weksocket for VNC traffic."
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "path" : "/nodes/{node}/qemu/{vmid}/vncwebsocket"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/config",
+ "text" : "config"
},
{
- "info" : {
- "POST" : {
- "description" : "Returns a SPICE configuration to connect to the VM.",
- "returns" : {
- "properties" : {
- "tls-port" : {
- "type" : "integer"
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 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",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "password" : {
- "type" : "string"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
},
- "type" : {
- "type" : "string"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "cpus" : {
+ "description" : "Maximum usable CPUs.",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "ha" : {
+ "description" : "HA manager service status.",
+ "type" : "object"
+ },
+ "lock" : {
+ "description" : "The current config lock, if any.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "maxdisk" : {
+ "description" : "Root disk size in bytes.",
+ "optional" : 1,
+ "renderer" : "bytes",
+ "type" : "integer"
+ },
+ "maxmem" : {
+ "description" : "Maximum memory in bytes.",
+ "optional" : 1,
+ "renderer" : "bytes",
+ "type" : "integer"
+ },
+ "maxswap" : {
+ "description" : "Maximum SWAP memory in bytes.",
+ "optional" : 1,
+ "renderer" : "bytes",
+ "type" : "integer"
+ },
+ "name" : {
+ "description" : "Container name.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "status" : {
+ "description" : "LXC Container status.",
+ "enum" : [
+ "stopped",
+ "running"
+ ],
+ "type" : "string"
+ },
+ "tags" : {
+ "description" : "The current configured tags, if any.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "uptime" : {
+ "description" : "Uptime.",
+ "optional" : 1,
+ "renderer" : "duration",
+ "type" : "integer"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/status/current",
+ "text" : "current"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Start the container.",
+ "method" : "POST",
+ "name" : "vm_start",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "debug" : {
+ "default" : 0,
+ "description" : "If set, enables very verbose debug log-level on start.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "host" : {
- "type" : "string"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.PowerMgmt"
+ ]
+ ]
},
- "proxy" : {
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
"type" : "string"
}
- },
- "additionalProperties" : 1,
- "description" : "Returned values can be directly passed to the 'remote-viewer' application."
- },
- "name" : "spiceproxy",
- "method" : "POST",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Console"
- ]
- ]
+ }
},
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "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)."
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/status/start",
+ "text" : "start"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Stop the container. This will abruptly stop all processes running in the container.",
+ "method" : "POST",
+ "name" : "vm_stop",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "skiplock" : {
+ "description" : "Ignore locks - only root is allowed to use this option.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.PowerMgmt"
+ ]
+ ]
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
"type" : "string"
}
}
},
- "proxyto" : "node"
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/spiceproxy",
- "leaf" : 1,
- "text" : "spiceproxy"
- },
- {
- "text" : "status",
- "leaf" : 0,
- "path" : "/nodes/{node}/qemu/{vmid}/status",
- "children" : [
- {
"leaf" : 1,
- "text" : "current",
- "path" : "/nodes/{node}/qemu/{vmid}/status/current",
+ "path" : "/nodes/{node}/lxc/{vmid}/status/stop",
+ "text" : "stop"
+ },
+ {
"info" : {
- "GET" : {
- "proxyto" : "node",
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.",
+ "method" : "POST",
+ "name" : "vm_shutdown",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "forceStop" : {
+ "default" : 0,
+ "description" : "Make sure the Container stops.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "timeout" : {
+ "default" : 60,
+ "description" : "Wait maximal timeout seconds.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
"minimum" : 1,
"type" : "integer",
- "format" : "pve-vmid"
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Audit"
+ "VM.PowerMgmt"
]
]
},
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "type" : "object"
- },
- "name" : "vm_status",
- "method" : "GET",
- "description" : "Get virtual machine status."
+ "type" : "string"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/status/shutdown",
+ "text" : "shutdown"
},
{
- "text" : "start",
- "leaf" : 1,
"info" : {
"POST" : {
+ "allowtoken" : 1,
+ "description" : "Suspend the container. This is experimental.",
"method" : "POST",
- "name" : "vm_start",
- "returns" : {
- "type" : "string"
- },
- "description" : "Start virtual machine.",
- "proxyto" : "node",
+ "name" : "vm_suspend",
"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
- },
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
- },
- "stateuri" : {
- "optional" : 1,
- "description" : "Some command save/restore state from this location.",
- "maxLength" : 128,
- "type" : "string"
+ "typetext" : "<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",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "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}/lxc/{vmid}/status/suspend",
+ "text" : "suspend"
},
{
- "path" : "/nodes/{node}/qemu/{vmid}/status/stop",
"info" : {
"POST" : {
+ "allowtoken" : 1,
+ "description" : "Resume the container.",
+ "method" : "POST",
+ "name" : "vm_resume",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
]
},
"protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/status/resume",
+ "text" : "resume"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Reboot the container by shutting it down, and starting it again. Applies pending changes.",
+ "method" : "POST",
+ "name" : "vm_reboot",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "keepActive" : {
- "type" : "boolean",
- "default" : 0,
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "timeout" : {
+ "description" : "Wait maximal timeout seconds for the shutdown.",
+ "minimum" : 0,
"optional" : 1,
- "description" : "Do not decativate storage volumes."
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
"vmid" : {
- "minimum" : 1,
+ "description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "description" : "The (unique) ID of the VM."
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.PowerMgmt"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/status/reboot",
+ "text" : "reboot"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index",
+ "method" : "GET",
+ "name" : "vmcmdidx",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/status",
+ "text" : "status"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Rollback LXC state to specified snapshot.",
+ "method" : "POST",
+ "name" : "rollback",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "migratedfrom" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name.",
- "optional" : 1
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Snapshot",
+ "VM.Snapshot.Rollback"
+ ],
+ "any",
+ 1
+ ]
},
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback",
+ "text" : "rollback"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get snapshot configuration",
+ "method" : "GET",
+ "name" : "get_snapshot_config",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "skiplock" : {
- "description" : "Ignore locks - only root is allowed to use this option.",
- "optional" : 1,
- "type" : "boolean"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Snapshot",
+ "VM.Snapshot.Rollback",
+ "VM.Audit"
+ ],
+ "any",
+ 1
+ ]
},
- "timeout" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1,
- "description" : "Wait maximal timeout seconds."
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "object"
}
},
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "description" : "Stop virtual machine. The qemu process will exit immediately. Thisis akin to pulling the power plug of a running computer and may damage the VM data",
- "returns" : {
- "type" : "string"
- },
- "method" : "POST",
- "name" : "vm_stop"
- }
- },
- "leaf" : 1,
- "text" : "stop"
- },
- {
- "info" : {
- "POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.PowerMgmt"
- ]
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update snapshot metadata.",
+ "method" : "PUT",
+ "name" : "update_snapshot_config",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "description" : {
+ "description" : "A textual description or comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Snapshot"
+ ]
+ ]
},
- "skiplock" : {
- "type" : "boolean",
- "description" : "Ignore locks - only root is allowed to use this option.",
- "optional" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
- },
- "additionalProperties" : 0
+ }
},
- "description" : "Reset virtual machine.",
- "method" : "POST",
- "name" : "vm_reset",
- "returns" : {
- "type" : "string"
- }
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config",
+ "text" : "config"
}
- },
- "path" : "/nodes/{node}/qemu/{vmid}/status/reset",
- "leaf" : 1,
- "text" : "reset"
- },
- {
- "path" : "/nodes/{node}/qemu/{vmid}/status/shutdown",
+ ],
"info" : {
- "POST" : {
- "returns" : {
- "type" : "string"
- },
- "method" : "POST",
- "name" : "vm_shutdown",
- "description" : "Shutdown virtual machine. This is similar to pressing the power button on a physical machine.This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown.",
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete a LXC snapshot.",
+ "method" : "DELETE",
+ "name" : "delsnapshot",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "timeout" : {
+ "force" : {
+ "description" : "For removal from config file, even if removing disk snapshots fails.",
"optional" : 1,
- "description" : "Wait maximal timeout seconds.",
- "minimum" : 0,
- "type" : "integer"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
- },
- "skiplock" : {
- "type" : "boolean",
- "description" : "Ignore locks - only root is allowed to use this option.",
- "optional" : 1
+ "typetext" : "<string>"
},
- "forceStop" : {
- "optional" : 1,
- "description" : "Make sure the VM stops.",
- "default" : 0,
- "type" : "boolean"
- },
- "keepActive" : {
- "type" : "boolean",
- "default" : 0,
- "optional" : 1,
- "description" : "Do not decativate storage volumes."
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
- "type" : "integer",
"format" : "pve-vmid",
- "minimum" : 1
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.PowerMgmt"
- ]
- ]
- },
- "protected" : 1
- }
- },
- "leaf" : 1,
- "text" : "shutdown"
- },
- {
- "path" : "/nodes/{node}/qemu/{vmid}/status/suspend",
- "info" : {
- "POST" : {
- "description" : "Suspend virtual machine.",
- "method" : "POST",
- "name" : "vm_suspend",
- "returns" : {
- "type" : "string"
+ }
},
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.PowerMgmt"
+ "VM.Snapshot"
]
]
},
"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" : {
+ "description" : "the task ID.",
+ "type" : "string"
}
- }
- },
- "text" : "suspend",
- "leaf" : 1
- },
- {
- "text" : "resume",
- "leaf" : 1,
- "info" : {
- "POST" : {
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "skiplock" : {
- "optional" : 1,
- "description" : "Ignore locks - only root is allowed to use this option.",
- "type" : "boolean"
- },
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "",
+ "method" : "GET",
+ "name" : "snapshot_cmd_idx",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "nocheck" : {
- "type" : "boolean",
- "optional" : 1
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
},
"permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.PowerMgmt"
- ]
- ]
+ "user" : "all"
},
- "protected" : 1,
"returns" : {
- "type" : "string"
- },
- "method" : "POST",
- "name" : "vm_resume",
- "description" : "Resume virtual machine."
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{cmd}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
}
},
- "path" : "/nodes/{node}/qemu/{vmid}/status/resume"
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}",
+ "text" : "{snapname}"
}
],
"info" : {
"GET" : {
- "permissions" : {
- "user" : "all"
- },
- "description" : "Directory index",
+ "allowtoken" : 1,
+ "description" : "List all snapshots.",
"method" : "GET",
- "name" : "vmcmdidx",
+ "name" : "list",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<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
- },
- "proxyto" : "node",
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "subdir" : {
- "type" : "string"
- }
- }
- },
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{subdir}"
- }
- ]
- }
- }
- }
- },
- {
- "leaf" : 1,
- "text" : "sendkey",
- "path" : "/nodes/{node}/qemu/{vmid}/sendkey",
- "info" : {
- "PUT" : {
- "returns" : {
- "type" : "null"
- },
- "name" : "vm_sendkey",
- "method" : "PUT",
- "description" : "Send key event to virtual machine.",
- "parameters" : {
- "properties" : {
- "vmid" : {
"type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "key" : {
- "type" : "string",
- "description" : "The key (qemu monitor encoding)."
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "skiplock" : {
- "description" : "Ignore locks - only root is allowed to use this option.",
- "optional" : 1,
- "type" : "boolean"
+ "typetext" : "<integer> (1 - N)"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Console"
+ "VM.Audit"
]
]
- }
- }
- }
- },
- {
- "text" : "feature",
- "leaf" : 1,
- "info" : {
- "GET" : {
- "description" : "Check if feature for virtual machine is available.",
- "name" : "vm_feature",
- "method" : "GET",
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "properties" : {
- "nodes" : {
- "items" : {
+ "items" : {
+ "properties" : {
+ "description" : {
+ "description" : "Snapshot description.",
"type" : "string"
},
- "type" : "array"
+ "name" : {
+ "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
+ "type" : "string"
+ },
+ "parent" : {
+ "description" : "Parent snapshot identifier.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "snaptime" : {
+ "description" : "Snapshot creation time",
+ "optional" : 1,
+ "renderer" : "timestamp",
+ "type" : "integer"
+ }
},
- "hasFeature" : {
- "type" : "boolean"
- }
+ "type" : "object"
},
- "type" : "object"
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "feature" : {
- "type" : "string",
- "enum" : [
- "snapshot",
- "clone",
- "copy"
- ],
- "description" : "Feature to check."
- },
- "snapname" : {
- "optional" : 1,
- "maxLength" : 40,
- "description" : "The name of the snapshot.",
- "type" : "string",
- "format" : "pve-configid"
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
}
- },
- "additionalProperties" : 0
+ ],
+ "type" : "array"
}
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/feature"
- },
- {
- "path" : "/nodes/{node}/qemu/{vmid}/clone",
- "info" : {
+ },
"POST" : {
- "returns" : {
- "type" : "string"
- },
- "name" : "clone_vm",
+ "allowtoken" : 1,
+ "description" : "Snapshot a container.",
"method" : "POST",
- "description" : "Create a copy of virtual machine/template.",
- "proxyto" : "node",
+ "name" : "snapshot",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "snapname" : {
- "type" : "string",
- "format" : "pve-configid",
- "maxLength" : 40,
- "description" : "The name of the snapshot.",
- "optional" : 1
- },
- "full" : {
- "optional" : 1,
- "description" : "Create a full copy of all disk. This is always done when you clone a normal VM. For VM templates, we try to create a linked clone by default.",
- "default" : 0,
- "type" : "boolean"
- },
- "target" : {
- "description" : "Target node. Only allowed if the original VM is on shared storage.",
+ "description" : {
+ "description" : "A textual description or comment.",
"optional" : 1,
- "format" : "pve-node",
- "type" : "string"
- },
- "pool" : {
- "format" : "pve-poolid",
"type" : "string",
- "description" : "Add the new VM to the specified pool.",
- "optional" : 1
+ "typetext" : "<string>"
},
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
- },
- "description" : {
- "description" : "Description for the new VM.",
- "optional" : 1,
- "type" : "string"
- },
- "name" : {
- "description" : "Set a name for the new VM.",
- "optional" : 1,
- "format" : "dns-name",
- "type" : "string"
- },
- "newid" : {
- "description" : "VMID for the clone.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
+ "type" : "string",
+ "typetext" : "<string>"
},
- "format" : {
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
"type" : "string",
- "requires" : "full",
- "enum" : [
- "raw",
- "qcow2",
- "vmdk"
- ],
- "description" : "Target format for file storage.",
- "optional" : 1
+ "typetext" : "<string>"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Snapshot"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/snapshot",
+ "text" : "snapshot"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 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.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get single rule data.",
+ "method" : "GET",
+ "name" : "get_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "proxyto" : null,
+ "returns" : {
+ "properties" : {
+ "action" : {
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dest" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dport" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "enable" : {
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "icmp-type" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "iface" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ipversion" : {
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "pos" : {
+ "type" : "integer"
+ },
+ "proto" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "source" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "sport" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Modify rule data.",
+ "method" : "PUT",
+ "name" : "update_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "comment" : {
+ "description" : "Descriptive comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dest" : {
+ "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dport" : {
+ "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-dport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "icmp-type" : {
+ "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+ "format" : "pve-fw-icmp-type-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "iface" : {
+ "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "moveto" : {
+ "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "proto" : {
+ "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "format" : "pve-fw-protocol-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "source" : {
+ "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Rule type.",
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ }
},
- "storage" : {
- "description" : "Target storage for full clone.",
- "optional" : 1,
- "format" : "pve-storage-id",
- "requires" : "full",
- "type" : "string"
- }
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}",
+ "text" : "{pos}"
}
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "and",
- [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Clone"
- ]
- ],
- [
- "or",
- [
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List rules.",
+ "method" : "GET",
+ "name" : "get_rules",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
"perm",
- "/vms/{newid}",
+ "/vms/{vmid}",
[
- "VM.Allocate"
+ "VM.Audit"
]
- ],
- [
- "perm",
- "/pool/{pool}",
- [
- "VM.Allocate"
- ],
- "require_param",
- "pool"
- ]
- ]
- ],
- "description" : "You need 'VM.Clone' permissions on /vms/{vmid}, and 'VM.Allocate' permissions on /vms/{newid} (or on the VM pool /pool/{pool}). You also need 'Datastore.AllocateSpace' on any used storage."
- }
- }
- },
- "leaf" : 1,
- "text" : "clone"
- },
- {
- "leaf" : 1,
- "text" : "move_disk",
- "path" : "/nodes/{node}/qemu/{vmid}/move_disk",
- "info" : {
- "POST" : {
- "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",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "delete" : {
- "type" : "boolean",
- "default" : 0,
- "description" : "Delete the original disk after successful copy. By default the original disk is kept as unused disk.",
- "optional" : 1
- },
- "format" : {
- "type" : "string",
- "description" : "Target Format.",
- "optional" : 1,
- "enum" : [
- "raw",
- "qcow2",
- "vmdk"
]
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
- },
- "storage" : {
- "description" : "Target storage.",
- "format" : "pve-storage-id",
- "type" : "string"
+ "proxyto" : null,
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "pos" : {
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{pos}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create new rule.",
+ "method" : "POST",
+ "name" : "create_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 0,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "comment" : {
+ "description" : "Descriptive comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dest" : {
+ "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dport" : {
+ "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-dport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "icmp-type" : {
+ "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+ "format" : "pve-fw-icmp-type-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "iface" : {
+ "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "proto" : {
+ "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "format" : "pve-fw-protocol-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "source" : {
+ "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Rule type.",
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 0,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "disk" : {
- "type" : "string",
- "description" : "The disk you want to move.",
- "enum" : [
- "ide0",
- "ide1",
- "ide2",
- "ide3",
- "scsi0",
- "scsi1",
- "scsi2",
- "scsi3",
- "scsi4",
- "scsi5",
- "scsi6",
- "scsi7",
- "scsi8",
- "scsi9",
- "scsi10",
- "scsi11",
- "scsi12",
- "scsi13",
- "virtio0",
- "virtio1",
- "virtio2",
- "virtio3",
- "virtio4",
- "virtio5",
- "virtio6",
- "virtio7",
- "virtio8",
- "virtio9",
- "virtio10",
- "virtio11",
- "virtio12",
- "virtio13",
- "virtio14",
- "virtio15",
- "sata0",
- "sata1",
- "sata2",
- "sata3",
- "sata4",
- "sata5"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
]
},
- "digest" : {
- "maxLength" : 40,
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "type" : "string"
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules",
+ "text" : "rules"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Remove IP or Network alias.",
+ "method" : "DELETE",
+ "name" : "remove_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read alias.",
+ "method" : "GET",
+ "name" : "read_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update IP or Network alias.",
+ "method" : "PUT",
+ "name" : "update_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "rename" : {
+ "description" : "Rename an existing alias.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "optional" : 1,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
},
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}",
+ "text" : "{name}"
}
- },
- "description" : "Move volume to different storage.",
- "method" : "POST",
- "name" : "move_vm_disk",
- "returns" : {
- "type" : "string",
- "description" : "the task ID."
- }
- }
- }
- },
- {
- "text" : "migrate",
- "leaf" : 1,
- "path" : "/nodes/{node}/qemu/{vmid}/migrate",
- "info" : {
- "POST" : {
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List aliases",
+ "method" : "GET",
+ "name" : "get_aliases",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "online" : {
- "optional" : 1,
- "description" : "Use online/live migration.",
- "type" : "boolean"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
+ "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" : {
+ "allowtoken" : 1,
+ "description" : "Create IP or Network Alias.",
+ "method" : "POST",
+ "name" : "create_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "force" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Allow to migrate VMs which use local devices. Only root may use this option."
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
},
- "target" : {
- "description" : "Target node.",
- "format" : "pve-node",
- "type" : "string"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Migrate"
- ]
- ]
- },
- "returns" : {
- "description" : "the task ID.",
- "type" : "string"
- },
- "name" : "migrate_vm",
- "method" : "POST",
- "description" : "Migrate virtual machine. Creates a new migration task."
- }
- }
- },
- {
- "info" : {
- "POST" : {
- "method" : "POST",
- "name" : "monitor",
- "returns" : {
- "type" : "string"
- },
- "description" : "Execute Qemu monitor commands.",
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "command" : {
- "description" : "The monitor command.",
- "type" : "string"
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases",
+ "text" : "aliases"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Remove IP or Network from IPSet.",
+ "method" : "DELETE",
+ "name" : "remove_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read IP or Network settings from IPSet.",
+ "method" : "GET",
+ "name" : "read_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update IP or Network settings",
+ "method" : "PUT",
+ "name" : "update_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}",
+ "text" : "{cidr}"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete IPSet",
+ "method" : "DELETE",
+ "name" : "delete_ipset",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List IPSet content",
+ "method" : "GET",
+ "name" : "get_ipset",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "cidr" : {
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{cidr}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Add IP or Network to IPSet.",
+ "method" : "POST",
+ "name" : "create_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer"
- }
- },
- "additionalProperties" : 0
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Monitor"
- ]
- ]
- }
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/monitor",
- "text" : "monitor",
- "leaf" : 1
- },
- {
- "leaf" : 1,
- "text" : "resize",
- "path" : "/nodes/{node}/qemu/{vmid}/resize",
- "info" : {
- "PUT" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Disk"
- ]
- ]
- },
- "protected" : 1,
- "parameters" : {
- "properties" : {
- "size" : {
- "description" : "The new size. With the '+' sign the value is added to the actual size of the volume and without it, the value is taken as an absolute one. Shrinking disk size is not supported.",
- "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
- "type" : "string"
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List IPSets",
+ "method" : "GET",
+ "name" : "ipset_index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
},
- "disk" : {
- "description" : "The disk you want to resize.",
- "enum" : [
- "ide0",
- "ide1",
- "ide2",
- "ide3",
- "scsi0",
- "scsi1",
- "scsi2",
- "scsi3",
- "scsi4",
- "scsi5",
- "scsi6",
- "scsi7",
- "scsi8",
- "scsi9",
- "scsi10",
- "scsi11",
- "scsi12",
- "scsi13",
- "virtio0",
- "virtio1",
- "virtio2",
- "virtio3",
- "virtio4",
- "virtio5",
- "virtio6",
- "virtio7",
- "virtio8",
- "virtio9",
- "virtio10",
- "virtio11",
- "virtio12",
- "virtio13",
- "virtio14",
- "virtio15",
- "sata0",
- "sata1",
- "sata2",
- "sata3",
- "sata4",
- "sata5"
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
],
- "type" : "string"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string"
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "skiplock" : {
- "description" : "Ignore locks - only root is allowed to use this option.",
- "optional" : 1,
- "type" : "boolean"
+ "type" : "array"
}
},
- "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"
- ]
- ]
- },
- "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"
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create new IPSet",
+ "method" : "POST",
+ "name" : "create_ipset",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "rename" : {
+ "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "optional" : 1,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "snapname" : {
- "format" : "pve-configid",
- "type" : "string",
- "maxLength" : 40,
- "description" : "The name of the snapshot."
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node"
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset",
+ "text" : "ipset"
},
- "GET" : {
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get VM firewall options.",
+ "method" : "GET",
+ "name" : "get_options",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "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"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "dhcp" : {
+ "default" : 0,
+ "description" : "Enable DHCP.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "enable" : {
+ "default" : 0,
+ "description" : "Enable/disable firewall rules.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ipfilter" : {
+ "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "log_level_in" : {
+ "description" : "Log level for incoming traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "log_level_out" : {
+ "description" : "Log level for outgoing traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macfilter" : {
+ "default" : 0,
+ "description" : "Enable/disable MAC address filter.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ndp" : {
+ "default" : 0,
+ "description" : "Enable NDP (Neighbor Discovery Protocol).",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "policy_in" : {
+ "description" : "Input policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "policy_out" : {
+ "description" : "Output policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "radv" : {
+ "description" : "Allow sending Router Advertisement.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
}
- ],
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
- }
- },
- "name" : "snapshot_list",
- "method" : "GET",
- "description" : "List all snapshots."
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/snapshot",
- "children" : [
- {
- "children" : [
- {
- "text" : "config",
- "leaf" : 1,
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "get_snapshot_config",
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- },
- "snapname" : {
- "description" : "The name of the snapshot.",
- "maxLength" : 40,
- "type" : "string",
- "format" : "pve-configid"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Set Firewall options.",
+ "method" : "PUT",
+ "name" : "set_options",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dhcp" : {
+ "default" : 0,
+ "description" : "Enable DHCP.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "returns" : {
- "type" : "object"
+ "enable" : {
+ "default" : 0,
+ "description" : "Enable/disable firewall rules.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
+ "ipfilter" : {
+ "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "description" : "Get snapshot configuration"
- },
- "PUT" : {
- "description" : "Update snapshot metadata.",
- "returns" : {
- "type" : "null"
+ "log_level_in" : {
+ "description" : "Log level for incoming traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "name" : "update_snapshot_config",
- "method" : "PUT",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
+ "log_level_out" : {
+ "description" : "Log level for outgoing traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "parameters" : {
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "description" : {
- "type" : "string",
- "description" : "A textual description or comment.",
- "optional" : 1
- },
- "snapname" : {
- "description" : "The name of the snapshot.",
- "maxLength" : 40,
- "type" : "string",
- "format" : "pve-configid"
- }
- },
- "additionalProperties" : 0
+ "macfilter" : {
+ "default" : 0,
+ "description" : "Enable/disable MAC address filter.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "proxyto" : "node"
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config"
- },
- {
- "leaf" : 1,
- "text" : "rollback",
- "info" : {
- "POST" : {
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "snapname" : {
- "type" : "string",
- "format" : "pve-configid",
- "maxLength" : 40,
- "description" : "The name of the snapshot."
- },
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- }
- }
+ "ndp" : {
+ "default" : 0,
+ "description" : "Enable NDP (Neighbor Discovery Protocol).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "returns" : {
- "description" : "the task ID.",
+ "policy_in" : {
+ "description" : "Input policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
"type" : "string"
},
- "method" : "POST",
- "name" : "rollback",
- "description" : "Rollback VM state to specified snapshot."
+ "policy_out" : {
+ "description" : "Output policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "radv" : {
+ "description" : "Allow sending Router Advertisement.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
}
},
- "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Network"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
}
- ],
- "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}",
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/options",
+ "text" : "options"
+ },
+ {
"info" : {
"GET" : {
+ "allowtoken" : 1,
+ "description" : "Read firewall log",
+ "method" : "GET",
+ "name" : "log",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "snapname" : {
- "format" : "pve-configid",
+ "limit" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "description" : "The name of the snapshot.",
- "maxLength" : 40
+ "typetext" : "<string>"
+ },
+ "start" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "n" : {
+ "description" : "Line number",
+ "type" : "integer"
+ },
+ "t" : {
+ "description" : "Line text",
+ "type" : "string"
+ }
},
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/log",
+ "text" : "log"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
+ "method" : "GET",
+ "name" : "refs",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Only list references of specified type.",
+ "enum" : [
+ "alias",
+ "ipset"
+ ],
+ "optional" : 1,
+ "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",
+ "typetext" : "<integer> (1 - N)"
}
- ]
- },
- "name" : "snapshot_cmd_idx",
- "method" : "GET",
- "permissions" : {
- "user" : "all"
+ }
},
- "description" : ""
- },
- "DELETE" : {
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"/vms/{vmid}",
[
- "VM.Snapshot"
+ "VM.Audit"
]
]
},
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- },
- "force" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "For removal from config file, even if removing disk snapshots fails."
- },
- "snapname" : {
- "type" : "string",
- "format" : "pve-configid",
- "maxLength" : 40,
- "description" : "The name of the snapshot."
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- }
- },
- "description" : "Delete a VM snapshot.",
"returns" : {
- "type" : "string",
- "description" : "the task ID."
- },
- "method" : "DELETE",
- "name" : "delsnapshot"
- }
- },
- "leaf" : 0,
- "text" : "{snapname}"
- }
- ],
- "text" : "snapshot",
- "leaf" : 0
- },
- {
- "text" : "template",
- "leaf" : 1,
- "info" : {
- "POST" : {
- "description" : "Create a Template.",
- "method" : "POST",
- "name" : "template",
- "returns" : {
- "type" : "null"
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Allocate"
- ]
- ],
- "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
- },
- "protected" : 1,
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "disk" : {
- "optional" : 1,
- "description" : "If you want to convert only 1 disk to base image.",
- "enum" : [
- "ide0",
- "ide1",
- "ide2",
- "ide3",
- "scsi0",
- "scsi1",
- "scsi2",
- "scsi3",
- "scsi4",
- "scsi5",
- "scsi6",
- "scsi7",
- "scsi8",
- "scsi9",
- "scsi10",
- "scsi11",
- "scsi12",
- "scsi13",
- "virtio0",
- "virtio1",
- "virtio2",
- "virtio3",
- "virtio4",
- "virtio5",
- "virtio6",
- "virtio7",
- "virtio8",
- "virtio9",
- "virtio10",
- "virtio11",
- "virtio12",
- "virtio13",
- "virtio14",
- "virtio15",
- "sata0",
- "sata1",
- "sata2",
- "sata3",
- "sata4",
- "sata5"
- ],
- "type" : "string"
- },
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node"
- }
- },
- "path" : "/nodes/{node}/qemu/{vmid}/template"
- }
- ],
- "text" : "{vmid}",
- "leaf" : 0
- }
- ],
- "info" : {
- "POST" : {
- "returns" : {
- "type" : "string"
- },
- "name" : "create_vm",
- "method" : "POST",
- "description" : "Create or restore a virtual machine.",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "memory" : {
- "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
- "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",
- "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
- },
- "description" : {
- "optional" : 1,
- "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file.",
- "type" : "string"
- },
- "balloon" : {
- "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",
- "optional" : 1,
- "enum" : [
- "lsi",
- "lsi53c810",
- "virtio-scsi-pci",
- "virtio-scsi-single",
- "megasas",
- "pvscsi"
- ]
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "numa[n]" : {
- "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"
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "type" : "string"
+ },
+ "type" : {
+ "enum" : [
+ "alias",
+ "ipset"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
},
- "hostnodes" : {
- "type" : "string",
- "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
- "format_description" : "id[-id];...",
- "optional" : 1,
- "description" : "host numa nodes to use"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall/refs",
+ "text" : "refs"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "policy" : {
- "type" : "string",
- "enum" : [
- "preferred",
- "bind",
- "interleave"
- ],
- "description" : "numa allocation policy.",
- "optional" : 1,
- "format_description" : "preferred|bind|interleave"
- }
- },
- "type" : "string"
- },
- "force" : {
- "optional" : 1,
- "description" : "Allow to overwrite existing VM.",
- "requires" : "archive",
- "type" : "boolean"
- },
- "autostart" : {
- "default" : 0,
- "type" : "boolean",
- "optional" : 1,
- "description" : "Automatic restart after crash (currently ignored)."
- },
- "cpu" : {
- "optional" : 1,
- "description" : "Emulated CPU type.",
- "type" : "string",
- "format" : {
- "hidden" : {
- "default" : 0,
- "type" : "boolean",
- "optional" : 1,
- "description" : "Do not identify as a KVM virtual machine."
+ "permissions" : {
+ "user" : "all"
},
- "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"
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
],
- "description" : "Emulated CPU type.",
- "format_description" : "cputype",
- "default_key" : 1
+ "type" : "array"
}
}
},
- "acpi" : {
- "description" : "Enable/disable ACPI.",
- "optional" : 1,
- "default" : 1,
- "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'.",
- "optional" : 1,
- "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)"
- },
- "vga" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Select the VGA type. If you want to use high resolution modes (>= 1280x1024x16) then you should use the options 'std' or 'vmware'. Default is 'std' for win8/win7/w2k8, and 'cirrus' for other OS types. The 'qxl' option enables the SPICE display sever. For win* OS you can select how many independent displays you want, Linux guests can add displays them self. You can also run without any graphic card, using a serial device as terminal.",
- "enum" : [
- "std",
- "cirrus",
- "vmware",
- "qxl",
- "serial0",
- "serial1",
- "serial2",
- "serial3",
- "qxl2",
- "qxl3",
- "qxl4"
- ]
- },
- "scsi[n]" : {
- "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
- "optional" : 1,
- "format" : {
- "heads" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "format_description" : "count"
- },
- "mbps_rd" : {
- "type" : "number",
- "format_description" : "mbps",
- "description" : "Maximum read speed speed in megabytes per second.",
- "optional" : 1
- },
- "secs" : {
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "optional" : 1,
- "format_description" : "count"
- },
- "cyls" : {
- "type" : "integer",
- "format_description" : "count",
- "optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific cylinder count."
- },
- "mbps_wr" : {
- "optional" : 1,
- "description" : "Maximum write speed speed in megabytes per second.",
- "format_description" : "mbps",
- "type" : "number"
- },
- "detect_zeroes" : {
- "optional" : 1,
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "type" : "boolean"
- },
- "iops_wr" : {
- "type" : "integer",
- "optional" : 1,
- "format_description" : "iops",
- "description" : "Maximum write I/O speed in operations per second."
- },
- "media" : {
- "enum" : [
- "cdrom",
- "disk"
- ],
- "format_description" : "cdrom|disk",
- "optional" : 1,
- "description" : "The drive's media type.",
- "type" : "string",
- "default" : "disk"
- },
- "format" : {
- "enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
- ],
- "format_description" : "drive format",
- "description" : "The drive's backing file's data format.",
- "optional" : 1,
- "type" : "string"
- },
- "bps_rd" : {
- "type" : "integer",
- "description" : "Maximum read speed speed in bytes per second.",
- "optional" : 1,
- "format_description" : "bps"
- },
- "backup" : {
- "description" : "Whether the drive should be included when making backups.",
- "optional" : 1,
- "format_description" : "on|off",
- "type" : "boolean"
- },
- "iops_max" : {
- "format_description" : "iops",
- "optional" : 1,
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "type" : "integer"
- },
- "mbps_rd_max" : {
- "optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "type" : "number"
- },
- "aio" : {
- "type" : "string",
- "optional" : 1,
- "description" : "AIO type to use.",
- "format_description" : "native|threads",
- "enum" : [
- "native",
- "threads"
- ]
- },
- "queues" : {
- "minimum" : 2,
- "type" : "integer",
- "format_description" : "nbqueues",
- "optional" : 1,
- "description" : "Number of queues."
- },
- "iops_wr_max" : {
- "type" : "integer",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
- "optional" : 1,
- "format_description" : "iops"
- },
- "size" : {
- "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
- },
- "mbps" : {
- "type" : "number",
- "optional" : 1,
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "format_description" : "mbps"
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}/firewall",
+ "text" : "firewall"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read VM RRD statistics (returns PNG)",
+ "method" : "GET",
+ "name" : "rrd",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cf" : {
+ "description" : "The RRD consolidation function",
+ "enum" : [
+ "AVERAGE",
+ "MAX"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ds" : {
+ "description" : "The list of datasources you want to display.",
+ "format" : "pve-configid-list",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "timeframe" : {
+ "description" : "Specify the time frame you are interested in.",
+ "enum" : [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "bps_wr" : {
- "description" : "Maximum write speed speed in bytes per second.",
- "optional" : 1,
- "format_description" : "bps",
- "type" : "integer"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
},
- "iops" : {
- "format_description" : "iops",
- "description" : "Maximum r/w I/O speed in operations per second.",
- "optional" : 1,
- "type" : "integer"
+ "protected" : 1,
+ "returns" : {
+ "properties" : {
+ "filename" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/rrd",
+ "text" : "rrd"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read VM RRD statistics",
+ "method" : "GET",
+ "name" : "rrddata",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cf" : {
+ "description" : "The RRD consolidation function",
+ "enum" : [
+ "AVERAGE",
+ "MAX"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "timeframe" : {
+ "description" : "Specify the time frame you are interested in.",
+ "enum" : [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "mbps_max" : {
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
- "format_description" : "mbps",
- "optional" : 1,
- "type" : "number"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
},
- "serial" : {
- "type" : "string",
- "format" : "urlencoded",
- "format_description" : "serial",
- "optional" : 1,
- "maxLength" : 60,
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long."
+ "protected" : 1,
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/rrddata",
+ "text" : "rrddata"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Creates a TCP VNC proxy connections.",
+ "method" : "POST",
+ "name" : "vncproxy",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "height" : {
+ "description" : "sets the height of the console in pixels.",
+ "maximum" : 2160,
+ "minimum" : 16,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (16 - 2160)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "websocket" : {
+ "description" : "use websocket instead of standard VNC.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "width" : {
+ "description" : "sets the width of the console in pixels.",
+ "maximum" : 4096,
+ "minimum" : 16,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (16 - 4096)"
+ }
+ }
},
- "discard" : {
- "enum" : [
- "ignore",
- "on"
- ],
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "optional" : 1,
- "format_description" : "ignore|on",
- "type" : "string"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Console"
+ ]
+ ]
},
- "file" : {
- "format" : "pve-volume-id-or-qm-path",
- "type" : "string",
- "format_description" : "volume",
- "description" : "The drive's backing volume.",
- "default_key" : 1
+ "protected" : 1,
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cert" : {
+ "type" : "string"
+ },
+ "port" : {
+ "type" : "integer"
+ },
+ "ticket" : {
+ "type" : "string"
+ },
+ "upid" : {
+ "type" : "string"
+ },
+ "user" : {
+ "type" : "string"
+ }
+ }
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/vncproxy",
+ "text" : "vncproxy"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Creates a TCP proxy connection.",
+ "method" : "POST",
+ "name" : "termproxy",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "iops_rd" : {
- "type" : "integer",
- "optional" : 1,
- "format_description" : "iops",
- "description" : "Maximum read I/O speed in operations per second."
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Console"
+ ]
+ ]
},
- "werror" : {
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ],
- "optional" : 1,
- "format_description" : "enospc|ignore|report|stop",
- "description" : "Write error action.",
- "type" : "string"
+ "protected" : 1,
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "port" : {
+ "type" : "integer"
+ },
+ "ticket" : {
+ "type" : "string"
+ },
+ "upid" : {
+ "type" : "string"
+ },
+ "user" : {
+ "type" : "string"
+ }
+ }
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/termproxy",
+ "text" : "termproxy"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Opens a weksocket for VNC traffic.",
+ "method" : "GET",
+ "name" : "vncwebsocket",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "port" : {
+ "description" : "Port number returned by previous vncproxy call.",
+ "maximum" : 5999,
+ "minimum" : 5900,
+ "type" : "integer",
+ "typetext" : "<integer> (5900 - 5999)"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "vncticket" : {
+ "description" : "Ticket from previous call to vncproxy.",
+ "maxLength" : 512,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "trans" : {
- "format_description" : "none|lba|auto",
- "optional" : 1,
- "description" : "Force disk geometry bios translation mode.",
- "enum" : [
- "none",
- "lba",
- "auto"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Console"
+ ]
],
- "type" : "string"
- },
- "volume" : {
- "alias" : "file"
- },
- "iops_rd_max" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "format_description" : "iops"
- },
- "cache" : {
- "type" : "string",
- "optional" : 1,
- "description" : "The drive's cache mode",
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ]
- },
- "snapshot" : {
- "type" : "boolean",
- "description" : "Whether the drive should be included when making snapshots.",
- "format_description" : "on|off",
- "optional" : 1
- },
- "mbps_wr_max" : {
- "type" : "number",
- "optional" : 1,
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
- "format_description" : "mbps"
+ "description" : "You also need to pass a valid ticket (vncticket)."
},
- "bps" : {
- "format_description" : "bps",
- "optional" : 1,
- "description" : "Maximum r/w speed speed in bytes per second.",
- "type" : "integer"
+ "returns" : {
+ "properties" : {
+ "port" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
}
- },
- "type" : "string"
- },
- "shares" : {
- "optional" : 1,
- "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning",
- "minimum" : 0,
- "maximum" : 50000,
- "default" : 1000,
- "type" : "integer"
- },
- "smbios1" : {
- "description" : "Specify SMBIOS type 1 fields.",
- "optional" : 1,
- "maxLength" : 256,
- "type" : "string",
- "format" : "pve-qm-smbios1"
- },
- "cores" : {
- "type" : "integer",
- "default" : 1,
- "minimum" : 1,
- "description" : "The number of cores per socket.",
- "optional" : 1
- },
- "migrate_downtime" : {
- "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
- "optional" : 1,
- "minimum" : 0,
- "default" : 0.1,
- "type" : "number"
- },
- "keyboard" : {
- "type" : "string",
- "default" : "en-us",
- "enum" : [
- "en-gb",
- "de-ch",
- "en-us",
- "mk",
- "fr-be",
- "de",
- "pt-br",
- "sv",
- "fr-ch",
- "no",
- "pt",
- "hu",
- "sl",
- "lt",
- "fi",
- "it",
- "nl",
- "is",
- "da",
- "fr-ca",
- "pl",
- "fr",
- "es",
- "ja",
- "tr"
- ],
- "optional" : 1,
- "description" : "Keybord layout for vnc server. Default is read from the datacenter configuration file."
- },
- "freeze" : {
- "type" : "boolean",
- "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
- "optional" : 1
- },
- "net[n]" : {
- "format" : "pve-qm-net",
- "type" : "string",
- "optional" : 1,
- "description" : "Specify network devices.\n\nMODEL is one of: e1000 e1000-82540em e1000-82544gc e1000-82545em i82551 i82557b i82559er ne2k_isa ne2k_pci pcnet rtl8139 virtio vmxnet3\n\nXX:XX:XX:XX:XX:XX should be an unique MAC address. This is\nautomatically generated if not specified.\n\nThe bridge parameter can be used to automatically add the interface to a bridge device. The Proxmox VE standard bridge is called 'vmbr0'.\n\nOption 'rate' is used to limit traffic bandwidth from and to this interface. It is specified as floating point number, unit is 'Megabytes per second'.\n\nIf you specify no bridge, we create a kvm 'user' (NATed) network device, which provides DHCP and DNS services. The following addresses are used:\n\n10.0.2.2 Gateway\n10.0.2.3 DNS Server\n10.0.2.4 SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n\n"
- },
- "vcpus" : {
- "minimum" : 1,
- "default" : 0,
- "type" : "integer",
- "optional" : 1,
- "description" : "Number of hotplugged vcpus."
- },
- "pool" : {
- "optional" : 1,
- "description" : "Add the VM to the specified pool.",
- "format" : "pve-poolid",
- "type" : "string"
- },
- "archive" : {
- "maxLength" : 255,
- "optional" : 1,
- "description" : "The backup file.",
- "type" : "string"
- },
- "hostpci[n]" : {
- "description" : "Map host pci devices. HOSTPCIDEVICE syntax is:\n\n'bus:dev.func' (hexadecimal numbers)\n\nYou can us the 'lspci' command to list existing pci devices.\n\nThe 'rombar' option determines whether or not the device's ROM will be visible in the guest's memory map (default is 'on').\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nExperimental: user reported problems with this option.\n",
- "optional" : 1,
- "format" : "pve-qm-hostpci",
- "type" : "string"
- },
- "kvm" : {
- "default" : 1,
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable/disable KVM hardware virtualization."
- },
- "ostype" : {
- "type" : "string",
- "enum" : [
- "other",
- "wxp",
- "w2k",
- "w2k3",
- "w2k8",
- "wvista",
- "win7",
- "win8",
- "l24",
- "l26",
- "solaris"
- ],
- "description" : "Used to enable special optimization/features for specific\noperating systems:\n\nother => unspecified OS\nwxp => Microsoft Windows XP\nw2k => Microsoft Windows 2000\nw2k3 => Microsoft Windows 2003\nw2k8 => Microsoft Windows 2008\nwvista => Microsoft Windows Vista\nwin7 => Microsoft Windows 7\nwin8 => Microsoft Windows 8/2012\nl24 => Linux 2.4 Kernel\nl26 => Linux 2.6/3.X Kernel\nsolaris => solaris/opensolaris/openindiania kernel\n\nother|l24|l26|solaris ... no special behaviour\nwxp|w2k|w2k3|w2k8|wvista|win7|win8 ... use --localtime switch\n",
- "optional" : 1
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "unused[n]" : {
- "format" : "pve-volume-id",
- "type" : "string",
- "description" : "Reference to unused volumes.",
- "optional" : 1
- },
- "watchdog" : {
- "type" : "string",
- "format" : "pve-qm-watchdog",
- "optional" : 1,
- "description" : "Create a virtual hardware watchdog device. Once enabled (by a guest action), the watchdog must be periodically polled by an agent inside the guest or else the watchdog will reset the guest (or execute the respective action specified)"
- },
- "template" : {
- "default" : 0,
- "type" : "boolean",
- "description" : "Enable/disable Template.",
- "optional" : 1
- },
- "reboot" : {
- "optional" : 1,
- "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
- "type" : "boolean",
- "default" : 1
- },
- "machine" : {
- "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)",
- "description" : "Specific the Qemu machine type.",
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string"
- },
- "hotplug" : {
- "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Value '1' is an alias for the default 'network,disk,usb'.",
- "optional" : 1,
- "type" : "string",
- "default" : "network,disk,usb",
- "format" : "pve-hotplug-features"
- },
- "protection" : {
- "type" : "boolean",
- "default" : 0,
- "description" : "Sets the protection flag of the VM. This will prevent the remove operation.",
- "optional" : 1
- },
- "args" : {
- "description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n",
- "optional" : 1,
- "type" : "string"
+ }
},
- "migrate_speed" : {
- "minimum" : 0,
- "default" : 0,
- "type" : "integer",
- "optional" : 1,
- "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit."
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/vncwebsocket",
+ "text" : "vncwebsocket"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Returns a SPICE configuration to connect to the CT.",
+ "method" : "POST",
+ "name" : "spiceproxy",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "proxy" : {
+ "description" : "SPICE proxy server. This can be used by the client to specify the proxy server. All nodes in a cluster runs 'spiceproxy', so it is up to the client to choose one. By default, we return the node where the VM is currently running. As reasonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI).",
+ "format" : "address",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "additionalProperties" : 1,
+ "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
+ "properties" : {
+ "host" : {
+ "type" : "string"
+ },
+ "password" : {
+ "type" : "string"
+ },
+ "proxy" : {
+ "type" : "string"
+ },
+ "tls-port" : {
+ "type" : "integer"
+ },
+ "type" : {
+ "type" : "string"
+ }
+ }
+ }
+ }
},
- "bootdisk" : {
- "pattern" : "(ide|sata|scsi|virtio)\\d+",
- "optional" : 1,
- "description" : "Enable booting from specified disk.",
- "type" : "string",
- "format" : "pve-qm-bootdisk"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/spiceproxy",
+ "text" : "spiceproxy"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Migrate the container to another node. Creates a new migration task.",
+ "method" : "POST",
+ "name" : "migrate_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "bwlimit" : {
+ "default" : "migrate limit from datacenter or storage config",
+ "description" : "Override I/O bandwidth limit (in KiB/s).",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (0 - N)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "online" : {
+ "description" : "Use online/live migration.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "restart" : {
+ "description" : "Use restart migration",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "target" : {
+ "description" : "Target node.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "target-storage" : {
+ "description" : "Mapping from source to target storages. Providing only a single storage ID maps all source storages to that storage. Providing the special value '1' will map each source storage to itself.",
+ "format" : "storage-pair-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "timeout" : {
+ "default" : 180,
+ "description" : "Timeout in seconds for shutdown for restart migration",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Migrate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
+ }
},
- "sata[n]" : {
- "type" : "string",
- "format" : {
- "bps" : {
- "description" : "Maximum r/w speed speed in bytes per second.",
- "optional" : 1,
- "format_description" : "bps",
- "type" : "integer"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/migrate",
+ "text" : "migrate"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Check if feature for virtual machine is available.",
+ "method" : "GET",
+ "name" : "vm_feature",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "feature" : {
+ "description" : "Feature to check.",
+ "enum" : [
+ "snapshot",
+ "clone",
+ "copy"
+ ],
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "mbps_wr_max" : {
- "format_description" : "mbps",
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
- "optional" : 1,
- "type" : "number"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
},
- "cache" : {
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "hasFeature" : {
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/feature",
+ "text" : "feature"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a Template.",
+ "method" : "POST",
+ "name" : "template",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Allocate"
+ ]
],
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "description" : "The drive's cache mode",
- "optional" : 1,
- "type" : "string"
+ "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
},
- "snapshot" : {
- "format_description" : "on|off",
- "optional" : 1,
- "description" : "Whether the drive should be included when making snapshots.",
- "type" : "boolean"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/template",
+ "text" : "template"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a container clone/copy",
+ "method" : "POST",
+ "name" : "clone_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "bwlimit" : {
+ "default" : "clone limit from datacenter or storage config",
+ "description" : "Override I/O bandwidth limit (in KiB/s).",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (0 - N)"
+ },
+ "description" : {
+ "description" : "Description for the new CT.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "full" : {
+ "description" : "Create a full copy of all disks. This is always done when you clone a normal CT. For CT templates, we try to create a linked clone by default.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "hostname" : {
+ "description" : "Set a hostname for the new CT.",
+ "format" : "dns-name",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "newid" : {
+ "description" : "VMID for the clone.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pool" : {
+ "description" : "Add the new CT to the specified pool.",
+ "format" : "pve-poolid",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "snapname" : {
+ "description" : "The name of the snapshot.",
+ "format" : "pve-configid",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "Target storage for full clone.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "target" : {
+ "description" : "Target node. Only allowed if the original VM is on shared storage.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "rerror" : {
- "enum" : [
- "ignore",
- "report",
- "stop"
+ "permissions" : {
+ "check" : [
+ "and",
+ [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Clone"
+ ]
+ ],
+ [
+ "or",
+ [
+ "perm",
+ "/vms/{newid}",
+ [
+ "VM.Allocate"
+ ]
+ ],
+ [
+ "perm",
+ "/pool/{pool}",
+ [
+ "VM.Allocate"
+ ],
+ "require_param",
+ "pool"
+ ]
+ ]
],
- "format_description" : "ignore|report|stop",
- "description" : "Read error action.",
- "optional" : 1,
- "type" : "string"
+ "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."
},
- "trans" : {
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
- "description" : "Force disk geometry bios translation mode.",
- "format_description" : "none|lba|auto",
- "optional" : 1,
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
"type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/clone",
+ "text" : "clone"
+ },
+ {
+ "info" : {
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Resize a container mount point.",
+ "method" : "PUT",
+ "name" : "resize_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disk" : {
+ "description" : "The disk you want to resize.",
+ "enum" : [
+ "rootfs",
+ "mp0",
+ "mp1",
+ "mp2",
+ "mp3",
+ "mp4",
+ "mp5",
+ "mp6",
+ "mp7",
+ "mp8",
+ "mp9",
+ "mp10",
+ "mp11",
+ "mp12",
+ "mp13",
+ "mp14",
+ "mp15",
+ "mp16",
+ "mp17",
+ "mp18",
+ "mp19",
+ "mp20",
+ "mp21",
+ "mp22",
+ "mp23",
+ "mp24",
+ "mp25",
+ "mp26",
+ "mp27",
+ "mp28",
+ "mp29",
+ "mp30",
+ "mp31",
+ "mp32",
+ "mp33",
+ "mp34",
+ "mp35",
+ "mp36",
+ "mp37",
+ "mp38",
+ "mp39",
+ "mp40",
+ "mp41",
+ "mp42",
+ "mp43",
+ "mp44",
+ "mp45",
+ "mp46",
+ "mp47",
+ "mp48",
+ "mp49",
+ "mp50",
+ "mp51",
+ "mp52",
+ "mp53",
+ "mp54",
+ "mp55",
+ "mp56",
+ "mp57",
+ "mp58",
+ "mp59",
+ "mp60",
+ "mp61",
+ "mp62",
+ "mp63",
+ "mp64",
+ "mp65",
+ "mp66",
+ "mp67",
+ "mp68",
+ "mp69",
+ "mp70",
+ "mp71",
+ "mp72",
+ "mp73",
+ "mp74",
+ "mp75",
+ "mp76",
+ "mp77",
+ "mp78",
+ "mp79",
+ "mp80",
+ "mp81",
+ "mp82",
+ "mp83",
+ "mp84",
+ "mp85",
+ "mp86",
+ "mp87",
+ "mp88",
+ "mp89",
+ "mp90",
+ "mp91",
+ "mp92",
+ "mp93",
+ "mp94",
+ "mp95",
+ "mp96",
+ "mp97",
+ "mp98",
+ "mp99",
+ "mp100",
+ "mp101",
+ "mp102",
+ "mp103",
+ "mp104",
+ "mp105",
+ "mp106",
+ "mp107",
+ "mp108",
+ "mp109",
+ "mp110",
+ "mp111",
+ "mp112",
+ "mp113",
+ "mp114",
+ "mp115",
+ "mp116",
+ "mp117",
+ "mp118",
+ "mp119",
+ "mp120",
+ "mp121",
+ "mp122",
+ "mp123",
+ "mp124",
+ "mp125",
+ "mp126",
+ "mp127",
+ "mp128",
+ "mp129",
+ "mp130",
+ "mp131",
+ "mp132",
+ "mp133",
+ "mp134",
+ "mp135",
+ "mp136",
+ "mp137",
+ "mp138",
+ "mp139",
+ "mp140",
+ "mp141",
+ "mp142",
+ "mp143",
+ "mp144",
+ "mp145",
+ "mp146",
+ "mp147",
+ "mp148",
+ "mp149",
+ "mp150",
+ "mp151",
+ "mp152",
+ "mp153",
+ "mp154",
+ "mp155",
+ "mp156",
+ "mp157",
+ "mp158",
+ "mp159",
+ "mp160",
+ "mp161",
+ "mp162",
+ "mp163",
+ "mp164",
+ "mp165",
+ "mp166",
+ "mp167",
+ "mp168",
+ "mp169",
+ "mp170",
+ "mp171",
+ "mp172",
+ "mp173",
+ "mp174",
+ "mp175",
+ "mp176",
+ "mp177",
+ "mp178",
+ "mp179",
+ "mp180",
+ "mp181",
+ "mp182",
+ "mp183",
+ "mp184",
+ "mp185",
+ "mp186",
+ "mp187",
+ "mp188",
+ "mp189",
+ "mp190",
+ "mp191",
+ "mp192",
+ "mp193",
+ "mp194",
+ "mp195",
+ "mp196",
+ "mp197",
+ "mp198",
+ "mp199",
+ "mp200",
+ "mp201",
+ "mp202",
+ "mp203",
+ "mp204",
+ "mp205",
+ "mp206",
+ "mp207",
+ "mp208",
+ "mp209",
+ "mp210",
+ "mp211",
+ "mp212",
+ "mp213",
+ "mp214",
+ "mp215",
+ "mp216",
+ "mp217",
+ "mp218",
+ "mp219",
+ "mp220",
+ "mp221",
+ "mp222",
+ "mp223",
+ "mp224",
+ "mp225",
+ "mp226",
+ "mp227",
+ "mp228",
+ "mp229",
+ "mp230",
+ "mp231",
+ "mp232",
+ "mp233",
+ "mp234",
+ "mp235",
+ "mp236",
+ "mp237",
+ "mp238",
+ "mp239",
+ "mp240",
+ "mp241",
+ "mp242",
+ "mp243",
+ "mp244",
+ "mp245",
+ "mp246",
+ "mp247",
+ "mp248",
+ "mp249",
+ "mp250",
+ "mp251",
+ "mp252",
+ "mp253",
+ "mp254",
+ "mp255"
+ ],
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "size" : {
+ "description" : "The new size. With the '+' sign the value is added to the actual size of the volume and without it, the value is taken as an absolute one. Shrinking disk size is not supported.",
+ "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "volume" : {
- "alias" : "file"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Disk"
+ ],
+ "any",
+ 1
+ ]
},
- "iops_rd_max" : {
- "type" : "integer",
- "format_description" : "iops",
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "optional" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "the task ID.",
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/resize",
+ "text" : "resize"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Move a rootfs-/mp-volume to a different storage or to a different container.",
+ "method" : "POST",
+ "name" : "move_volume",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "bwlimit" : {
+ "default" : "clone limit from datacenter or storage config",
+ "description" : "Override I/O bandwidth limit (in KiB/s).",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (0 - N)"
+ },
+ "delete" : {
+ "default" : 0,
+ "description" : "Delete the original volume after successful copy. By default the original is kept as an unused volume entry.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 \" .\n\t\t \"digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "Target Storage.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "target-digest" : {
+ "description" : "Prevent changes if current configuration file of the target \" .\n\t\t \"container has a different SHA1 digest. This can be used to prevent \" .\n\t\t \"concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "target-vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "target-volume" : {
+ "description" : "The config key the volume will be moved to. Default is the source volume key.",
+ "enum" : [
+ "rootfs",
+ "mp0",
+ "mp1",
+ "mp2",
+ "mp3",
+ "mp4",
+ "mp5",
+ "mp6",
+ "mp7",
+ "mp8",
+ "mp9",
+ "mp10",
+ "mp11",
+ "mp12",
+ "mp13",
+ "mp14",
+ "mp15",
+ "mp16",
+ "mp17",
+ "mp18",
+ "mp19",
+ "mp20",
+ "mp21",
+ "mp22",
+ "mp23",
+ "mp24",
+ "mp25",
+ "mp26",
+ "mp27",
+ "mp28",
+ "mp29",
+ "mp30",
+ "mp31",
+ "mp32",
+ "mp33",
+ "mp34",
+ "mp35",
+ "mp36",
+ "mp37",
+ "mp38",
+ "mp39",
+ "mp40",
+ "mp41",
+ "mp42",
+ "mp43",
+ "mp44",
+ "mp45",
+ "mp46",
+ "mp47",
+ "mp48",
+ "mp49",
+ "mp50",
+ "mp51",
+ "mp52",
+ "mp53",
+ "mp54",
+ "mp55",
+ "mp56",
+ "mp57",
+ "mp58",
+ "mp59",
+ "mp60",
+ "mp61",
+ "mp62",
+ "mp63",
+ "mp64",
+ "mp65",
+ "mp66",
+ "mp67",
+ "mp68",
+ "mp69",
+ "mp70",
+ "mp71",
+ "mp72",
+ "mp73",
+ "mp74",
+ "mp75",
+ "mp76",
+ "mp77",
+ "mp78",
+ "mp79",
+ "mp80",
+ "mp81",
+ "mp82",
+ "mp83",
+ "mp84",
+ "mp85",
+ "mp86",
+ "mp87",
+ "mp88",
+ "mp89",
+ "mp90",
+ "mp91",
+ "mp92",
+ "mp93",
+ "mp94",
+ "mp95",
+ "mp96",
+ "mp97",
+ "mp98",
+ "mp99",
+ "mp100",
+ "mp101",
+ "mp102",
+ "mp103",
+ "mp104",
+ "mp105",
+ "mp106",
+ "mp107",
+ "mp108",
+ "mp109",
+ "mp110",
+ "mp111",
+ "mp112",
+ "mp113",
+ "mp114",
+ "mp115",
+ "mp116",
+ "mp117",
+ "mp118",
+ "mp119",
+ "mp120",
+ "mp121",
+ "mp122",
+ "mp123",
+ "mp124",
+ "mp125",
+ "mp126",
+ "mp127",
+ "mp128",
+ "mp129",
+ "mp130",
+ "mp131",
+ "mp132",
+ "mp133",
+ "mp134",
+ "mp135",
+ "mp136",
+ "mp137",
+ "mp138",
+ "mp139",
+ "mp140",
+ "mp141",
+ "mp142",
+ "mp143",
+ "mp144",
+ "mp145",
+ "mp146",
+ "mp147",
+ "mp148",
+ "mp149",
+ "mp150",
+ "mp151",
+ "mp152",
+ "mp153",
+ "mp154",
+ "mp155",
+ "mp156",
+ "mp157",
+ "mp158",
+ "mp159",
+ "mp160",
+ "mp161",
+ "mp162",
+ "mp163",
+ "mp164",
+ "mp165",
+ "mp166",
+ "mp167",
+ "mp168",
+ "mp169",
+ "mp170",
+ "mp171",
+ "mp172",
+ "mp173",
+ "mp174",
+ "mp175",
+ "mp176",
+ "mp177",
+ "mp178",
+ "mp179",
+ "mp180",
+ "mp181",
+ "mp182",
+ "mp183",
+ "mp184",
+ "mp185",
+ "mp186",
+ "mp187",
+ "mp188",
+ "mp189",
+ "mp190",
+ "mp191",
+ "mp192",
+ "mp193",
+ "mp194",
+ "mp195",
+ "mp196",
+ "mp197",
+ "mp198",
+ "mp199",
+ "mp200",
+ "mp201",
+ "mp202",
+ "mp203",
+ "mp204",
+ "mp205",
+ "mp206",
+ "mp207",
+ "mp208",
+ "mp209",
+ "mp210",
+ "mp211",
+ "mp212",
+ "mp213",
+ "mp214",
+ "mp215",
+ "mp216",
+ "mp217",
+ "mp218",
+ "mp219",
+ "mp220",
+ "mp221",
+ "mp222",
+ "mp223",
+ "mp224",
+ "mp225",
+ "mp226",
+ "mp227",
+ "mp228",
+ "mp229",
+ "mp230",
+ "mp231",
+ "mp232",
+ "mp233",
+ "mp234",
+ "mp235",
+ "mp236",
+ "mp237",
+ "mp238",
+ "mp239",
+ "mp240",
+ "mp241",
+ "mp242",
+ "mp243",
+ "mp244",
+ "mp245",
+ "mp246",
+ "mp247",
+ "mp248",
+ "mp249",
+ "mp250",
+ "mp251",
+ "mp252",
+ "mp253",
+ "mp254",
+ "mp255",
+ "unused0",
+ "unused1",
+ "unused2",
+ "unused3",
+ "unused4",
+ "unused5",
+ "unused6",
+ "unused7",
+ "unused8",
+ "unused9",
+ "unused10",
+ "unused11",
+ "unused12",
+ "unused13",
+ "unused14",
+ "unused15",
+ "unused16",
+ "unused17",
+ "unused18",
+ "unused19",
+ "unused20",
+ "unused21",
+ "unused22",
+ "unused23",
+ "unused24",
+ "unused25",
+ "unused26",
+ "unused27",
+ "unused28",
+ "unused29",
+ "unused30",
+ "unused31",
+ "unused32",
+ "unused33",
+ "unused34",
+ "unused35",
+ "unused36",
+ "unused37",
+ "unused38",
+ "unused39",
+ "unused40",
+ "unused41",
+ "unused42",
+ "unused43",
+ "unused44",
+ "unused45",
+ "unused46",
+ "unused47",
+ "unused48",
+ "unused49",
+ "unused50",
+ "unused51",
+ "unused52",
+ "unused53",
+ "unused54",
+ "unused55",
+ "unused56",
+ "unused57",
+ "unused58",
+ "unused59",
+ "unused60",
+ "unused61",
+ "unused62",
+ "unused63",
+ "unused64",
+ "unused65",
+ "unused66",
+ "unused67",
+ "unused68",
+ "unused69",
+ "unused70",
+ "unused71",
+ "unused72",
+ "unused73",
+ "unused74",
+ "unused75",
+ "unused76",
+ "unused77",
+ "unused78",
+ "unused79",
+ "unused80",
+ "unused81",
+ "unused82",
+ "unused83",
+ "unused84",
+ "unused85",
+ "unused86",
+ "unused87",
+ "unused88",
+ "unused89",
+ "unused90",
+ "unused91",
+ "unused92",
+ "unused93",
+ "unused94",
+ "unused95",
+ "unused96",
+ "unused97",
+ "unused98",
+ "unused99",
+ "unused100",
+ "unused101",
+ "unused102",
+ "unused103",
+ "unused104",
+ "unused105",
+ "unused106",
+ "unused107",
+ "unused108",
+ "unused109",
+ "unused110",
+ "unused111",
+ "unused112",
+ "unused113",
+ "unused114",
+ "unused115",
+ "unused116",
+ "unused117",
+ "unused118",
+ "unused119",
+ "unused120",
+ "unused121",
+ "unused122",
+ "unused123",
+ "unused124",
+ "unused125",
+ "unused126",
+ "unused127",
+ "unused128",
+ "unused129",
+ "unused130",
+ "unused131",
+ "unused132",
+ "unused133",
+ "unused134",
+ "unused135",
+ "unused136",
+ "unused137",
+ "unused138",
+ "unused139",
+ "unused140",
+ "unused141",
+ "unused142",
+ "unused143",
+ "unused144",
+ "unused145",
+ "unused146",
+ "unused147",
+ "unused148",
+ "unused149",
+ "unused150",
+ "unused151",
+ "unused152",
+ "unused153",
+ "unused154",
+ "unused155",
+ "unused156",
+ "unused157",
+ "unused158",
+ "unused159",
+ "unused160",
+ "unused161",
+ "unused162",
+ "unused163",
+ "unused164",
+ "unused165",
+ "unused166",
+ "unused167",
+ "unused168",
+ "unused169",
+ "unused170",
+ "unused171",
+ "unused172",
+ "unused173",
+ "unused174",
+ "unused175",
+ "unused176",
+ "unused177",
+ "unused178",
+ "unused179",
+ "unused180",
+ "unused181",
+ "unused182",
+ "unused183",
+ "unused184",
+ "unused185",
+ "unused186",
+ "unused187",
+ "unused188",
+ "unused189",
+ "unused190",
+ "unused191",
+ "unused192",
+ "unused193",
+ "unused194",
+ "unused195",
+ "unused196",
+ "unused197",
+ "unused198",
+ "unused199",
+ "unused200",
+ "unused201",
+ "unused202",
+ "unused203",
+ "unused204",
+ "unused205",
+ "unused206",
+ "unused207",
+ "unused208",
+ "unused209",
+ "unused210",
+ "unused211",
+ "unused212",
+ "unused213",
+ "unused214",
+ "unused215",
+ "unused216",
+ "unused217",
+ "unused218",
+ "unused219",
+ "unused220",
+ "unused221",
+ "unused222",
+ "unused223",
+ "unused224",
+ "unused225",
+ "unused226",
+ "unused227",
+ "unused228",
+ "unused229",
+ "unused230",
+ "unused231",
+ "unused232",
+ "unused233",
+ "unused234",
+ "unused235",
+ "unused236",
+ "unused237",
+ "unused238",
+ "unused239",
+ "unused240",
+ "unused241",
+ "unused242",
+ "unused243",
+ "unused244",
+ "unused245",
+ "unused246",
+ "unused247",
+ "unused248",
+ "unused249",
+ "unused250",
+ "unused251",
+ "unused252",
+ "unused253",
+ "unused254",
+ "unused255"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "volume" : {
+ "description" : "Volume which will be moved.",
+ "enum" : [
+ "rootfs",
+ "mp0",
+ "mp1",
+ "mp2",
+ "mp3",
+ "mp4",
+ "mp5",
+ "mp6",
+ "mp7",
+ "mp8",
+ "mp9",
+ "mp10",
+ "mp11",
+ "mp12",
+ "mp13",
+ "mp14",
+ "mp15",
+ "mp16",
+ "mp17",
+ "mp18",
+ "mp19",
+ "mp20",
+ "mp21",
+ "mp22",
+ "mp23",
+ "mp24",
+ "mp25",
+ "mp26",
+ "mp27",
+ "mp28",
+ "mp29",
+ "mp30",
+ "mp31",
+ "mp32",
+ "mp33",
+ "mp34",
+ "mp35",
+ "mp36",
+ "mp37",
+ "mp38",
+ "mp39",
+ "mp40",
+ "mp41",
+ "mp42",
+ "mp43",
+ "mp44",
+ "mp45",
+ "mp46",
+ "mp47",
+ "mp48",
+ "mp49",
+ "mp50",
+ "mp51",
+ "mp52",
+ "mp53",
+ "mp54",
+ "mp55",
+ "mp56",
+ "mp57",
+ "mp58",
+ "mp59",
+ "mp60",
+ "mp61",
+ "mp62",
+ "mp63",
+ "mp64",
+ "mp65",
+ "mp66",
+ "mp67",
+ "mp68",
+ "mp69",
+ "mp70",
+ "mp71",
+ "mp72",
+ "mp73",
+ "mp74",
+ "mp75",
+ "mp76",
+ "mp77",
+ "mp78",
+ "mp79",
+ "mp80",
+ "mp81",
+ "mp82",
+ "mp83",
+ "mp84",
+ "mp85",
+ "mp86",
+ "mp87",
+ "mp88",
+ "mp89",
+ "mp90",
+ "mp91",
+ "mp92",
+ "mp93",
+ "mp94",
+ "mp95",
+ "mp96",
+ "mp97",
+ "mp98",
+ "mp99",
+ "mp100",
+ "mp101",
+ "mp102",
+ "mp103",
+ "mp104",
+ "mp105",
+ "mp106",
+ "mp107",
+ "mp108",
+ "mp109",
+ "mp110",
+ "mp111",
+ "mp112",
+ "mp113",
+ "mp114",
+ "mp115",
+ "mp116",
+ "mp117",
+ "mp118",
+ "mp119",
+ "mp120",
+ "mp121",
+ "mp122",
+ "mp123",
+ "mp124",
+ "mp125",
+ "mp126",
+ "mp127",
+ "mp128",
+ "mp129",
+ "mp130",
+ "mp131",
+ "mp132",
+ "mp133",
+ "mp134",
+ "mp135",
+ "mp136",
+ "mp137",
+ "mp138",
+ "mp139",
+ "mp140",
+ "mp141",
+ "mp142",
+ "mp143",
+ "mp144",
+ "mp145",
+ "mp146",
+ "mp147",
+ "mp148",
+ "mp149",
+ "mp150",
+ "mp151",
+ "mp152",
+ "mp153",
+ "mp154",
+ "mp155",
+ "mp156",
+ "mp157",
+ "mp158",
+ "mp159",
+ "mp160",
+ "mp161",
+ "mp162",
+ "mp163",
+ "mp164",
+ "mp165",
+ "mp166",
+ "mp167",
+ "mp168",
+ "mp169",
+ "mp170",
+ "mp171",
+ "mp172",
+ "mp173",
+ "mp174",
+ "mp175",
+ "mp176",
+ "mp177",
+ "mp178",
+ "mp179",
+ "mp180",
+ "mp181",
+ "mp182",
+ "mp183",
+ "mp184",
+ "mp185",
+ "mp186",
+ "mp187",
+ "mp188",
+ "mp189",
+ "mp190",
+ "mp191",
+ "mp192",
+ "mp193",
+ "mp194",
+ "mp195",
+ "mp196",
+ "mp197",
+ "mp198",
+ "mp199",
+ "mp200",
+ "mp201",
+ "mp202",
+ "mp203",
+ "mp204",
+ "mp205",
+ "mp206",
+ "mp207",
+ "mp208",
+ "mp209",
+ "mp210",
+ "mp211",
+ "mp212",
+ "mp213",
+ "mp214",
+ "mp215",
+ "mp216",
+ "mp217",
+ "mp218",
+ "mp219",
+ "mp220",
+ "mp221",
+ "mp222",
+ "mp223",
+ "mp224",
+ "mp225",
+ "mp226",
+ "mp227",
+ "mp228",
+ "mp229",
+ "mp230",
+ "mp231",
+ "mp232",
+ "mp233",
+ "mp234",
+ "mp235",
+ "mp236",
+ "mp237",
+ "mp238",
+ "mp239",
+ "mp240",
+ "mp241",
+ "mp242",
+ "mp243",
+ "mp244",
+ "mp245",
+ "mp246",
+ "mp247",
+ "mp248",
+ "mp249",
+ "mp250",
+ "mp251",
+ "mp252",
+ "mp253",
+ "mp254",
+ "mp255",
+ "unused0",
+ "unused1",
+ "unused2",
+ "unused3",
+ "unused4",
+ "unused5",
+ "unused6",
+ "unused7",
+ "unused8",
+ "unused9",
+ "unused10",
+ "unused11",
+ "unused12",
+ "unused13",
+ "unused14",
+ "unused15",
+ "unused16",
+ "unused17",
+ "unused18",
+ "unused19",
+ "unused20",
+ "unused21",
+ "unused22",
+ "unused23",
+ "unused24",
+ "unused25",
+ "unused26",
+ "unused27",
+ "unused28",
+ "unused29",
+ "unused30",
+ "unused31",
+ "unused32",
+ "unused33",
+ "unused34",
+ "unused35",
+ "unused36",
+ "unused37",
+ "unused38",
+ "unused39",
+ "unused40",
+ "unused41",
+ "unused42",
+ "unused43",
+ "unused44",
+ "unused45",
+ "unused46",
+ "unused47",
+ "unused48",
+ "unused49",
+ "unused50",
+ "unused51",
+ "unused52",
+ "unused53",
+ "unused54",
+ "unused55",
+ "unused56",
+ "unused57",
+ "unused58",
+ "unused59",
+ "unused60",
+ "unused61",
+ "unused62",
+ "unused63",
+ "unused64",
+ "unused65",
+ "unused66",
+ "unused67",
+ "unused68",
+ "unused69",
+ "unused70",
+ "unused71",
+ "unused72",
+ "unused73",
+ "unused74",
+ "unused75",
+ "unused76",
+ "unused77",
+ "unused78",
+ "unused79",
+ "unused80",
+ "unused81",
+ "unused82",
+ "unused83",
+ "unused84",
+ "unused85",
+ "unused86",
+ "unused87",
+ "unused88",
+ "unused89",
+ "unused90",
+ "unused91",
+ "unused92",
+ "unused93",
+ "unused94",
+ "unused95",
+ "unused96",
+ "unused97",
+ "unused98",
+ "unused99",
+ "unused100",
+ "unused101",
+ "unused102",
+ "unused103",
+ "unused104",
+ "unused105",
+ "unused106",
+ "unused107",
+ "unused108",
+ "unused109",
+ "unused110",
+ "unused111",
+ "unused112",
+ "unused113",
+ "unused114",
+ "unused115",
+ "unused116",
+ "unused117",
+ "unused118",
+ "unused119",
+ "unused120",
+ "unused121",
+ "unused122",
+ "unused123",
+ "unused124",
+ "unused125",
+ "unused126",
+ "unused127",
+ "unused128",
+ "unused129",
+ "unused130",
+ "unused131",
+ "unused132",
+ "unused133",
+ "unused134",
+ "unused135",
+ "unused136",
+ "unused137",
+ "unused138",
+ "unused139",
+ "unused140",
+ "unused141",
+ "unused142",
+ "unused143",
+ "unused144",
+ "unused145",
+ "unused146",
+ "unused147",
+ "unused148",
+ "unused149",
+ "unused150",
+ "unused151",
+ "unused152",
+ "unused153",
+ "unused154",
+ "unused155",
+ "unused156",
+ "unused157",
+ "unused158",
+ "unused159",
+ "unused160",
+ "unused161",
+ "unused162",
+ "unused163",
+ "unused164",
+ "unused165",
+ "unused166",
+ "unused167",
+ "unused168",
+ "unused169",
+ "unused170",
+ "unused171",
+ "unused172",
+ "unused173",
+ "unused174",
+ "unused175",
+ "unused176",
+ "unused177",
+ "unused178",
+ "unused179",
+ "unused180",
+ "unused181",
+ "unused182",
+ "unused183",
+ "unused184",
+ "unused185",
+ "unused186",
+ "unused187",
+ "unused188",
+ "unused189",
+ "unused190",
+ "unused191",
+ "unused192",
+ "unused193",
+ "unused194",
+ "unused195",
+ "unused196",
+ "unused197",
+ "unused198",
+ "unused199",
+ "unused200",
+ "unused201",
+ "unused202",
+ "unused203",
+ "unused204",
+ "unused205",
+ "unused206",
+ "unused207",
+ "unused208",
+ "unused209",
+ "unused210",
+ "unused211",
+ "unused212",
+ "unused213",
+ "unused214",
+ "unused215",
+ "unused216",
+ "unused217",
+ "unused218",
+ "unused219",
+ "unused220",
+ "unused221",
+ "unused222",
+ "unused223",
+ "unused224",
+ "unused225",
+ "unused226",
+ "unused227",
+ "unused228",
+ "unused229",
+ "unused230",
+ "unused231",
+ "unused232",
+ "unused233",
+ "unused234",
+ "unused235",
+ "unused236",
+ "unused237",
+ "unused238",
+ "unused239",
+ "unused240",
+ "unused241",
+ "unused242",
+ "unused243",
+ "unused244",
+ "unused245",
+ "unused246",
+ "unused247",
+ "unused248",
+ "unused249",
+ "unused250",
+ "unused251",
+ "unused252",
+ "unused253",
+ "unused254",
+ "unused255"
+ ],
+ "type" : "string"
+ }
+ }
},
- "werror" : {
- "format_description" : "enospc|ignore|report|stop",
- "description" : "Write error action.",
- "optional" : 1,
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Config.Disk"
+ ]
],
- "type" : "string"
+ "description" : "You need 'VM.Config.Disk' permissions on /vms/{vmid}, and 'Datastore.AllocateSpace' permissions on the storage. To move a volume to another container, you need the permissions on the target container as well."
},
- "iops_rd" : {
- "optional" : 1,
- "description" : "Maximum read I/O speed in operations per second.",
- "format_description" : "iops",
- "type" : "integer"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/move_volume",
+ "text" : "move_volume"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get container configuration, including pending changes.",
+ "method" : "GET",
+ "name" : "vm_pending",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
},
- "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
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
},
- "mbps_max" : {
- "type" : "number",
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "delete" : {
+ "description" : "Indicates a pending delete request if present and not 0.",
+ "maximum" : 2,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "key" : {
+ "description" : "Configuration option name.",
+ "type" : "string"
+ },
+ "pending" : {
+ "description" : "Pending value.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "value" : {
+ "description" : "Current value.",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/pending",
+ "text" : "pending"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Destroy the container (also delete all uses files).",
+ "method" : "DELETE",
+ "name" : "destroy_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "destroy-unreferenced-disks" : {
+ "description" : "If set, destroy additionally all disks with the VMID from all enabled storages which are not referenced in the config.",
"optional" : 1,
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
- "format_description" : "mbps"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "discard" : {
+ "force" : {
+ "default" : 0,
+ "description" : "Force destroy, even if running.",
"optional" : 1,
- "format_description" : "ignore|on",
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "enum" : [
- "ignore",
- "on"
- ],
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "file" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-volume-id-or-qm-path",
- "default_key" : 1,
- "format_description" : "volume",
- "description" : "The drive's backing volume."
- },
- "mbps" : {
- "optional" : 1,
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "format_description" : "mbps",
- "type" : "number"
- },
- "bps_wr" : {
- "format_description" : "bps",
- "description" : "Maximum write speed speed in bytes per second.",
- "optional" : 1,
- "type" : "integer"
+ "typetext" : "<string>"
},
- "iops" : {
- "description" : "Maximum r/w I/O speed in operations per second.",
+ "purge" : {
+ "default" : 0,
+ "description" : "Remove container from all related configurations. For example, backup jobs, replication jobs or HA. Related ACLs and Firewall entries will *always* be removed.",
"optional" : 1,
- "format_description" : "iops",
- "type" : "integer"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "size" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index",
+ "method" : "GET",
+ "name" : "vmdiridx",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "disk-size",
- "optional" : 1,
- "description" : "Disk size. This is purely informational and has no effect."
+ "typetext" : "<string>"
},
- "iops_wr_max" : {
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
"type" : "integer",
- "format_description" : "iops",
- "optional" : 1,
- "description" : "Maximum unthrottled write I/O pool speed in operations per second."
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "type" : "string"
+ }
},
- "mbps_rd_max" : {
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc/{vmid}",
+ "text" : "{vmid}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 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",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Only list CTs where you have VM.Audit permissons on /vms/<vmid>.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "cpus" : {
+ "description" : "Maximum usable CPUs.",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "lock" : {
+ "description" : "The current config lock, if any.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "maxdisk" : {
+ "description" : "Root disk size in bytes.",
+ "optional" : 1,
+ "renderer" : "bytes",
+ "type" : "integer"
+ },
+ "maxmem" : {
+ "description" : "Maximum memory in bytes.",
+ "optional" : 1,
+ "renderer" : "bytes",
+ "type" : "integer"
+ },
+ "maxswap" : {
+ "description" : "Maximum SWAP memory in bytes.",
+ "optional" : 1,
+ "renderer" : "bytes",
+ "type" : "integer"
+ },
+ "name" : {
+ "description" : "Container name.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "status" : {
+ "description" : "LXC Container status.",
+ "enum" : [
+ "stopped",
+ "running"
+ ],
+ "type" : "string"
+ },
+ "tags" : {
+ "description" : "The current configured tags, if any.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "uptime" : {
+ "description" : "Uptime.",
+ "optional" : 1,
+ "renderer" : "duration",
+ "type" : "integer"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{vmid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create or restore a container.",
+ "method" : "POST",
+ "name" : "create_vm",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "arch" : {
+ "default" : "amd64",
+ "description" : "OS architecture type.",
+ "enum" : [
+ "amd64",
+ "i386",
+ "arm64",
+ "armhf"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "bwlimit" : {
+ "default" : "restore limit from datacenter or storage config",
+ "description" : "Override I/O bandwidth limit (in KiB/s).",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (0 - N)"
+ },
+ "cmode" : {
+ "default" : "tty",
+ "description" : "Console mode. By default, the console command tries to open a connection to one of the available tty devices. By setting cmode to 'console' it tries to attach to /dev/console instead. If you set cmode to 'shell', it simply invokes a shell inside the container (no login).",
+ "enum" : [
+ "shell",
+ "console",
+ "tty"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "console" : {
+ "default" : 1,
+ "description" : "Attach a console device (/dev/console) to the container.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "cores" : {
+ "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
+ "maximum" : 8192,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 8192)"
+ },
+ "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" : 8192,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "number",
+ "typetext" : "<number> (0 - 8192)"
+ },
+ "cpuunits" : {
+ "default" : 1024,
+ "description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to the weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0.",
+ "maximum" : 500000,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 500000)"
+ },
+ "debug" : {
+ "default" : 0,
+ "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "description" : {
+ "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
+ "maxLength" : 8192,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "features" : {
+ "description" : "Allow containers access to advanced features.",
+ "format" : {
+ "force_rw_sys" : {
+ "default" : 0,
+ "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
"optional" : 1,
- "format_description" : "mbps",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "type" : "number"
+ "type" : "boolean"
},
- "aio" : {
+ "fuse" : {
+ "default" : 0,
+ "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
"optional" : 1,
- "description" : "AIO type to use.",
- "format_description" : "native|threads",
- "enum" : [
- "native",
- "threads"
- ],
- "type" : "string"
+ "type" : "boolean"
},
- "iops_max" : {
- "type" : "integer",
- "format_description" : "iops",
+ "keyctl" : {
+ "default" : 0,
+ "description" : "For unprivileged containers only: Allow the use of the keyctl() system call. This is required to use docker inside a container. By default unprivileged containers will see this system call as non-existent. This is mostly a workaround for systemd-networkd, as it will treat it as a fatal error when some keyctl() operations are denied by the kernel due to lacking permissions. Essentially, you can choose between running systemd-networkd or docker.",
"optional" : 1,
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second."
- },
- "backup" : {
- "type" : "boolean",
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making backups.",
- "optional" : 1
+ "type" : "boolean"
},
- "bps_rd" : {
+ "mknod" : {
+ "default" : 0,
+ "description" : "Allow unprivileged containers to use mknod() to add certain device nodes. This requires a kernel with seccomp trap to user space support (5.3 or newer). This is experimental.",
"optional" : 1,
- "format_description" : "bps",
- "description" : "Maximum read speed speed in bytes per second.",
- "type" : "integer"
+ "type" : "boolean"
},
- "format" : {
- "enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
- ],
- "description" : "The drive's backing file's data format.",
+ "mount" : {
+ "description" : "Allow mounting file systems of specific types. This should be a list of file system types as used with the mount command. Note that this can have negative effects on the container's security. With access to a loop device, mounting a file can circumvent the mknod permission of the devices cgroup, mounting an NFS file system can block the host's I/O completely and prevent it from rebooting, etc.",
+ "format_description" : "fstype;fstype;...",
"optional" : 1,
- "format_description" : "drive format",
+ "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
"type" : "string"
},
- "media" : {
- "type" : "string",
- "default" : "disk",
- "enum" : [
- "cdrom",
- "disk"
- ],
- "description" : "The drive's media type.",
- "optional" : 1,
- "format_description" : "cdrom|disk"
- },
- "detect_zeroes" : {
- "type" : "boolean",
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "optional" : 1
- },
- "iops_wr" : {
- "format_description" : "iops",
- "description" : "Maximum write I/O speed in operations per second.",
- "optional" : 1,
- "type" : "integer"
- },
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
- "optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
- },
- "cyls" : {
- "format_description" : "count",
- "optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "type" : "integer"
- },
- "secs" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific sector count.",
- "format_description" : "count"
- },
- "heads" : {
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "optional" : 1,
- "format_description" : "count",
- "type" : "integer"
- },
- "mbps_rd" : {
- "type" : "number",
- "format_description" : "mbps",
+ "nesting" : {
+ "default" : 0,
+ "description" : "Allow nesting. Best used with unprivileged containers with additional id mapping. Note that this will expose procfs and sysfs contents of the host to the guest.",
"optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second."
+ "type" : "boolean"
}
},
- "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
- "optional" : 1
- },
- "cdrom" : {
- "description" : "This is an alias for option -ide2",
- "typetext" : "volume",
"optional" : 1,
"type" : "string",
- "format" : "pve-qm-drive"
+ "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
},
- "tdf" : {
- "description" : "Enable/disable time drift fix.",
+ "force" : {
+ "description" : "Allow to overwrite existing container.",
"optional" : 1,
"type" : "boolean",
- "default" : 0
+ "typetext" : "<boolean>"
},
- "serial[n]" : {
+ "hookscript" : {
+ "description" : "Script that will be exectued during various steps in the containers lifetime.",
+ "format" : "pve-volume-id",
+ "optional" : 1,
"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
+ "typetext" : "<string>"
},
- "sockets" : {
- "description" : "The number of CPU sockets.",
+ "hostname" : {
+ "description" : "Set a host name for the container.",
+ "format" : "dns-name",
+ "maxLength" : 255,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ignore-unpack-errors" : {
+ "description" : "Ignore errors when extracting the template.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "lock" : {
+ "description" : "Lock/unlock the VM.",
+ "enum" : [
+ "backup",
+ "create",
+ "destroyed",
+ "disk",
+ "fstrim",
+ "migrate",
+ "mounted",
+ "rollback",
+ "snapshot",
+ "snapshot-delete"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "memory" : {
+ "default" : 512,
+ "description" : "Amount of RAM for the VM in MB.",
+ "minimum" : 16,
"optional" : 1,
"type" : "integer",
- "default" : 1,
- "minimum" : 1
+ "typetext" : "<integer> (16 - N)"
},
- "ide[n]" : {
+ "mp[n]" : {
+ "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
"format" : {
- "bps_rd" : {
- "optional" : 1,
- "format_description" : "bps",
- "description" : "Maximum read speed speed in bytes per second.",
- "type" : "integer"
- },
- "backup" : {
+ "acl" : {
+ "description" : "Explicitly enable or disable ACL support.",
"optional" : 1,
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making backups.",
"type" : "boolean"
},
- "model" : {
- "type" : "string",
- "format" : "urlencoded",
- "optional" : 1,
- "maxLength" : 120,
- "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
- "format_description" : "model"
- },
- "media" : {
- "type" : "string",
- "default" : "disk",
- "enum" : [
- "cdrom",
- "disk"
- ],
- "format_description" : "cdrom|disk",
+ "backup" : {
+ "description" : "Whether to include the mount point in backups.",
"optional" : 1,
- "description" : "The drive's media type."
+ "type" : "boolean",
+ "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
},
- "iops_wr" : {
- "format_description" : "iops",
- "description" : "Maximum write I/O speed in operations per second.",
+ "mountoptions" : {
+ "description" : "Extra mount options for rootfs/mps.",
+ "format_description" : "opt[;opt...]",
"optional" : 1,
- "type" : "integer"
- },
- "detect_zeroes" : {
- "type" : "boolean",
- "description" : "Controls whether to detect and try to optimize writes of zeroes.",
- "optional" : 1
+ "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
+ "type" : "string"
},
- "format" : {
+ "mp" : {
+ "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
+ "format" : "pve-lxc-mp-string",
+ "format_description" : "Path",
"type" : "string",
- "enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
- ],
- "description" : "The drive's backing file's data format.",
- "format_description" : "drive format",
- "optional" : 1
+ "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
},
- "cyls" : {
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+ "quota" : {
+ "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
"optional" : 1,
- "type" : "integer"
+ "type" : "boolean"
},
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
- "format_description" : "mbps",
+ "replicate" : {
+ "default" : 1,
+ "description" : "Will include this volume to a storage replica job.",
"optional" : 1,
- "type" : "number"
+ "type" : "boolean"
},
- "heads" : {
- "format_description" : "count",
- "description" : "Force the drive's physical geometry to have a specific head count.",
+ "ro" : {
+ "description" : "Read-only mount point",
"optional" : 1,
- "type" : "integer"
- },
- "mbps_rd" : {
- "type" : "number",
- "description" : "Maximum read speed speed in megabytes per second.",
- "format_description" : "mbps",
- "optional" : 1
+ "type" : "boolean"
},
- "secs" : {
- "type" : "integer",
- "description" : "Force the drive's physical geometry to have a specific sector count.",
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
"optional" : 1,
- "format_description" : "count"
+ "type" : "boolean",
+ "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!"
},
- "bps" : {
- "description" : "Maximum r/w speed speed in bytes per second.",
+ "size" : {
+ "description" : "Volume size (read only value).",
+ "format" : "disk-size",
+ "format_description" : "DiskSize",
"optional" : 1,
- "format_description" : "bps",
- "type" : "integer"
+ "type" : "string"
},
- "mbps_wr_max" : {
- "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+ "volume" : {
+ "default_key" : 1,
+ "description" : "Volume, device or directory to mount into the container.",
+ "format" : "pve-lxc-mp-string",
+ "format_description" : "volume",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[volume=]<volume> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
+ },
+ "nameserver" : {
+ "description" : "Sets DNS server IP address for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
+ "format" : "lxc-ip-with-ll-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "net[n]" : {
+ "description" : "Specifies network interfaces for the container.",
+ "format" : {
+ "bridge" : {
+ "description" : "Bridge to attach the network device to.",
+ "format_description" : "bridge",
"optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
+ "pattern" : "[-_.\\w\\d]+",
+ "type" : "string"
},
- "snapshot" : {
- "format_description" : "on|off",
+ "firewall" : {
+ "description" : "Controls whether this interface's firewall rules should be used.",
"optional" : 1,
- "description" : "Whether the drive should be included when making snapshots.",
"type" : "boolean"
},
- "cache" : {
- "type" : "string",
- "format_description" : "none|writethrough|writeback|unsafe|directsync",
- "description" : "The drive's cache mode",
+ "gw" : {
+ "description" : "Default gateway for IPv4 traffic.",
+ "format" : "ipv4",
+ "format_description" : "GatewayIPv4",
"optional" : 1,
- "enum" : [
- "none",
- "writethrough",
- "writeback",
- "unsafe",
- "directsync"
- ]
+ "type" : "string"
},
- "werror" : {
+ "gw6" : {
+ "description" : "Default gateway for IPv6 traffic.",
+ "format" : "ipv6",
+ "format_description" : "GatewayIPv6",
"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.",
+ "hwaddr" : {
+ "description" : "The interface MAC address. This is dynamically allocated by default, but you can set that statically if needed, for example to always have the same link-local IPv6 address. (lxc.network.hwaddr)",
+ "format" : "mac-addr",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
"optional" : 1,
- "type" : "integer"
- },
- "rerror" : {
"type" : "string",
- "description" : "Read error action.",
- "optional" : 1,
- "format_description" : "ignore|report|stop",
- "enum" : [
- "ignore",
- "report",
- "stop"
- ]
+ "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
},
- "trans" : {
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
+ "ip" : {
+ "description" : "IPv4 address in CIDR format.",
+ "format" : "pve-ipv4-config",
+ "format_description" : "(IPv4/CIDR|dhcp|manual)",
"optional" : 1,
- "format_description" : "none|lba|auto",
- "description" : "Force disk geometry bios translation mode.",
"type" : "string"
},
- "volume" : {
- "alias" : "file"
+ "ip6" : {
+ "description" : "IPv6 address in CIDR format.",
+ "format" : "pve-ipv6-config",
+ "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
+ "optional" : 1,
+ "type" : "string"
},
- "iops_rd_max" : {
- "type" : "integer",
+ "mtu" : {
+ "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
+ "minimum" : 64,
"optional" : 1,
- "format_description" : "iops",
- "description" : "Maximum unthrottled read I/O pool speed in operations per second."
+ "type" : "integer"
},
- "mbps" : {
+ "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,
- "description" : "Maximum r/w speed speed in megabytes per second.",
"type" : "number"
},
- "bps_wr" : {
+ "tag" : {
+ "description" : "VLAN tag for this interface.",
+ "maximum" : 4094,
+ "minimum" : 1,
"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",
+ "trunks" : {
+ "description" : "VLAN ids to pass through the interface",
+ "format_description" : "vlanid[;vlanid...]",
"optional" : 1,
- "maxLength" : 60
+ "pattern" : "(?^:\\d+(?:;\\d+)*)",
+ "type" : "string"
},
- "discard" : {
+ "type" : {
+ "description" : "Network interface type.",
"enum" : [
- "ignore",
- "on"
+ "veth"
],
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
"optional" : 1,
- "format_description" : "ignore|on",
"type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "onboot" : {
+ "default" : 0,
+ "description" : "Specifies whether a VM will be started during system bootup.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "ostemplate" : {
+ "description" : "The OS template or backup file.",
+ "maxLength" : 255,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ostype" : {
+ "description" : "OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/<ostype>.common.conf. Value 'unmanaged' can be used to skip and OS specific setup.",
+ "enum" : [
+ "debian",
+ "devuan",
+ "ubuntu",
+ "centos",
+ "fedora",
+ "opensuse",
+ "archlinux",
+ "alpine",
+ "gentoo",
+ "nixos",
+ "unmanaged"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "password" : {
+ "description" : "Sets root password inside container.",
+ "minLength" : 5,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pool" : {
+ "description" : "Add the VM to the specified pool.",
+ "format" : "pve-poolid",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "protection" : {
+ "default" : 0,
+ "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "restore" : {
+ "description" : "Mark this as restore task.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "rootfs" : {
+ "description" : "Use volume as container root.",
+ "format" : {
+ "acl" : {
+ "description" : "Explicitly enable or disable ACL support.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "mbps_max" : {
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+ "mountoptions" : {
+ "description" : "Extra mount options for rootfs/mps.",
+ "format_description" : "opt[;opt...]",
"optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
+ "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
+ "type" : "string"
},
- "file" : {
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path",
- "default_key" : 1,
- "format_description" : "volume",
- "description" : "The drive's backing volume."
+ "quota" : {
+ "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
+ "optional" : 1,
+ "type" : "boolean"
},
- "mbps_rd_max" : {
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+ "replicate" : {
+ "default" : 1,
+ "description" : "Will include this volume to a storage replica job.",
"optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
+ "type" : "boolean"
},
- "aio" : {
+ "ro" : {
+ "description" : "Read-only mount point",
"optional" : 1,
- "format_description" : "native|threads",
- "description" : "AIO type to use.",
- "enum" : [
- "native",
- "threads"
- ],
- "type" : "string"
+ "type" : "boolean"
},
- "iops_max" : {
- "type" : "integer",
+ "shared" : {
+ "default" : 0,
+ "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
"optional" : 1,
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "format_description" : "iops"
+ "type" : "boolean",
+ "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!"
},
"size" : {
- "type" : "string",
+ "description" : "Volume size (read only value).",
"format" : "disk-size",
- "description" : "Disk size. This is purely informational and has no effect.",
- "optional" : 1
- },
- "iops_wr_max" : {
- "format_description" : "iops",
+ "format_description" : "DiskSize",
"optional" : 1,
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
- "type" : "integer"
+ "type" : "string"
+ },
+ "volume" : {
+ "default_key" : 1,
+ "description" : "Volume, device or directory to mount into the container.",
+ "format" : "pve-lxc-mp-string",
+ "format_description" : "volume",
+ "type" : "string"
}
},
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[volume=]<volume> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
+ },
+ "searchdomain" : {
+ "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
+ "format" : "dns-name-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ssh-public-keys" : {
+ "description" : "Setup public SSH keys (one key per line, OpenSSH format).",
+ "optional" : 1,
"type" : "string",
- "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
- "optional" : 1
+ "typetext" : "<string>"
},
- "cpuunits" : {
+ "start" : {
+ "default" : 0,
+ "description" : "Start the CT after its creation finished successfully.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "startup" : {
+ "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
+ "format" : "pve-startup-order",
"optional" : 1,
- "description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0.",
+ "type" : "string",
+ "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
+ },
+ "storage" : {
+ "default" : "local",
+ "description" : "Default Storage.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "swap" : {
+ "default" : 512,
+ "description" : "Amount of SWAP for the VM in MB.",
"minimum" : 0,
+ "optional" : 1,
"type" : "integer",
- "default" : 1000,
- "maximum" : 500000
+ "typetext" : "<integer> (0 - N)"
},
- "cpulimit" : {
+ "tags" : {
+ "description" : "Tags of the Container. This is only meta information.",
+ "format" : "pve-tag-list",
"optional" : 1,
- "description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit.",
- "minimum" : 0,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "template" : {
"default" : 0,
- "type" : "number",
- "maximum" : 128
+ "description" : "Enable/disable Template.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "storage" : {
+ "timezone" : {
+ "description" : "Time zone to use in the container. If option isn't set, then nothing will be done. Can be set to 'host' to match the host time zone, or an arbitrary time zone option from /usr/share/zoneinfo/zone.tab",
+ "format" : "pve-ct-timezone",
"optional" : 1,
- "description" : "Default storage.",
- "format" : "pve-storage-id",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tty" : {
+ "default" : 2,
+ "description" : "Specify the number of tty available to the container",
+ "maximum" : 6,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 6)"
},
"unique" : {
- "type" : "boolean",
- "requires" : "archive",
"description" : "Assign a unique random ethernet address.",
- "optional" : 1
- },
- "numa" : {
+ "optional" : 1,
+ "requires" : "restore",
"type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "unprivileged" : {
"default" : 0,
- "description" : "Enable/disable NUMA.",
- "optional" : 1
+ "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "unused[n]" : {
+ "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
+ "format" : {
+ "volume" : {
+ "default_key" : 1,
+ "description" : "The volume that is not used currently.",
+ "format" : "pve-volume-id",
+ "format_description" : "volume",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[volume=]<volume>"
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "You need 'VM.Allocate' permissions on /vms/{vmid} or on the VM pool /pool/{pool}. For restore, it is enough if the user has 'VM.Backup' permission and the VM already exists. You also need 'Datastore.AllocateSpace' permissions on the storage.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/lxc",
+ "text" : "lxc"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "ceph osd in",
+ "method" : "POST",
+ "name" : "in",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "osdid" : {
+ "description" : "OSD ID",
+ "type" : "integer",
+ "typetext" : "<integer>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/osd/{osdid}/in",
+ "text" : "in"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "ceph osd out",
+ "method" : "POST",
+ "name" : "out",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "osdid" : {
+ "description" : "OSD ID",
+ "type" : "integer",
+ "typetext" : "<integer>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/osd/{osdid}/out",
+ "text" : "out"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Instruct the OSD to scrub.",
+ "method" : "POST",
+ "name" : "scrub",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "deep" : {
+ "default" : 0,
+ "description" : "If set, instructs a deep scrub instead of a normal one.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "osdid" : {
+ "description" : "OSD ID",
+ "type" : "integer",
+ "typetext" : "<integer>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/osd/{osdid}/scrub",
+ "text" : "scrub"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Destroy OSD",
+ "method" : "DELETE",
+ "name" : "destroyosd",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cleanup" : {
+ "default" : 0,
+ "description" : "If set, we remove partition table entries.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "osdid" : {
+ "description" : "OSD ID",
+ "type" : "integer",
+ "typetext" : "<integer>"
+ }
+ }
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/osd/{osdid}",
+ "text" : "{osdid}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get Ceph osd list/tree.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "lock" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Lock/unlock the VM.",
- "enum" : [
- "migrate",
- "backup",
- "snapshot",
- "rollback"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
]
},
- "agent" : {
- "optional" : 1,
- "description" : "Enable/disable Qemu GuestAgent.",
- "type" : "boolean",
- "default" : 0
- },
- "virtio[n]" : {
- "type" : "string",
- "format" : {
- "secs" : {
- "type" : "integer",
- "format_description" : "count",
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create OSD",
+ "method" : "POST",
+ "name" : "createosd",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "crush-device-class" : {
+ "description" : "Set the device class of the OSD in crush.",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific sector count."
+ "type" : "string",
+ "typetext" : "<string>"
},
- "heads" : {
- "type" : "integer",
+ "db_dev" : {
+ "description" : "Block device name for block.db.",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific head count.",
- "format_description" : "count"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "mbps_rd" : {
- "type" : "number",
- "format_description" : "mbps",
+ "db_dev_size" : {
+ "default" : "bluestore_block_db_size or 10% of OSD size",
+ "description" : "Size in GiB for block.db.",
+ "minimum" : 1,
"optional" : 1,
- "description" : "Maximum read speed speed in megabytes per second."
+ "requires" : "db_dev",
+ "type" : "number",
+ "typetext" : "<number> (1 - N)",
+ "verbose_description" : "If a block.db is requested but the size is not given, will be automatically selected by: bluestore_block_db_size from the ceph database (osd or global section) or config (osd or global section)in that order. If this is not available, it will be sized 10% of the size of the OSD device. Fails if the available size is not enough."
},
- "mbps_wr" : {
- "description" : "Maximum write speed speed in megabytes per second.",
- "optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
+ "dev" : {
+ "description" : "Block device name.",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "cyls" : {
+ "encrypted" : {
+ "default" : 0,
+ "description" : "Enables encryption of the OSD.",
"optional" : 1,
- "description" : "Force the drive's physical geometry to have a specific cylinder count.",
- "format_description" : "count",
- "type" : "integer"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "format" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "description" : "The drive's backing file's data format.",
- "optional" : 1,
- "format_description" : "drive format",
- "enum" : [
- "raw",
- "cow",
- "qcow",
- "qed",
- "qcow2",
- "vmdk",
- "cloop"
- ]
+ "typetext" : "<string>"
},
- "media" : {
+ "wal_dev" : {
+ "description" : "Block device name for block.wal.",
"optional" : 1,
- "format_description" : "cdrom|disk",
- "description" : "The drive's media type.",
- "enum" : [
- "cdrom",
- "disk"
- ],
- "default" : "disk",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "iops_wr" : {
- "format_description" : "iops",
+ "wal_dev_size" : {
+ "default" : "bluestore_block_wal_size or 1% of OSD size",
+ "description" : "Size in GiB for block.wal.",
+ "minimum" : 0.5,
"optional" : 1,
- "description" : "Maximum write I/O speed in operations per second.",
- "type" : "integer"
+ "requires" : "wal_dev",
+ "type" : "number",
+ "typetext" : "<number> (0.5 - N)",
+ "verbose_description" : "If a block.wal is requested but the size is not given, will be automatically selected by: bluestore_block_wal_size from the ceph database (osd or global section) or config (osd or global section)in that order. If this is not available, it will be sized 1% of the size of the OSD device. Fails if the available size is not enough."
+ }
+ }
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/osd",
+ "text" : "osd"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Destroy Ceph Metadata Server",
+ "method" : "DELETE",
+ "name" : "destroymds",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "The name (ID) of the mds",
+ "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "detect_zeroes" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Controls whether to detect and try to optimize writes of zeroes."
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
- "backup" : {
- "type" : "boolean",
- "description" : "Whether the drive should be included when making backups.",
- "format_description" : "on|off",
- "optional" : 1
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create Ceph Metadata Server (MDS)",
+ "method" : "POST",
+ "name" : "createmds",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "hotstandby" : {
+ "default" : "0",
+ "description" : "Determines whether a ceph-mds daemon should poll and replay the log of an active MDS. Faster switch on MDS failure, but needs more idle resources.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "name" : {
+ "default" : "nodename",
+ "description" : "The ID for the mds, when omitted the same as the nodename",
+ "maxLength" : 200,
+ "optional" : 1,
+ "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "bps_rd" : {
- "type" : "integer",
- "format_description" : "bps",
- "description" : "Maximum read speed speed in bytes per second.",
- "optional" : 1
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
- "size" : {
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/mds/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "MDS directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "disk-size",
- "optional" : 1,
- "description" : "Disk size. This is purely informational and has no effect."
- },
- "iothread" : {
- "description" : "Whether to use iothreads for this drive",
- "optional" : 1,
- "format_description" : "off|on",
- "type" : "boolean"
- },
- "iops_wr_max" : {
- "type" : "integer",
- "format_description" : "iops",
- "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
- "optional" : 1
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "addr" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "host" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "The name (ID) for the MDS"
+ },
+ "rank" : {
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "standby_replay" : {
+ "description" : "If true, the standby MDS is polling the active MDS for faster recovery (hot standby).",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "state" : {
+ "description" : "State of the MDS",
+ "type" : "string"
+ }
},
- "mbps_rd_max" : {
- "type" : "number",
- "description" : "Maximum unthrottled read pool speed in megabytes per second.",
- "format_description" : "mbps",
- "optional" : 1
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/mds",
+ "text" : "mds"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Destroy Ceph Manager.",
+ "method" : "DELETE",
+ "name" : "destroymgr",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "The ID of the manager",
+ "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "aio" : {
- "type" : "string",
- "description" : "AIO type to use.",
- "format_description" : "native|threads",
- "optional" : 1,
- "enum" : [
- "native",
- "threads"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
]
},
- "iops_max" : {
- "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
- "format_description" : "iops",
- "optional" : 1,
- "type" : "integer"
- },
- "discard" : {
- "optional" : 1,
- "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
- "format_description" : "ignore|on",
- "enum" : [
- "ignore",
- "on"
- ],
- "type" : "string"
- },
- "serial" : {
- "format_description" : "serial",
- "optional" : 1,
- "maxLength" : 60,
- "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
- "format" : "urlencoded",
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
"type" : "string"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create Ceph Manager",
+ "method" : "POST",
+ "name" : "createmgr",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "The ID for the manager, when omitted the same as the nodename",
+ "maxLength" : 200,
+ "optional" : 1,
+ "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "mbps_max" : {
- "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
- "optional" : 1,
- "format_description" : "mbps",
- "type" : "number"
- },
- "file" : {
- "type" : "string",
- "format" : "pve-volume-id-or-qm-path",
- "default_key" : 1,
- "description" : "The drive's backing volume.",
- "format_description" : "volume"
- },
- "bps_wr" : {
- "format_description" : "bps",
- "optional" : 1,
- "description" : "Maximum write speed speed in bytes per second.",
- "type" : "integer"
- },
- "mbps" : {
- "type" : "number",
- "format_description" : "mbps",
- "description" : "Maximum r/w speed speed in megabytes per second.",
- "optional" : 1
- },
- "iops" : {
- "type" : "integer",
- "optional" : 1,
- "description" : "Maximum r/w I/O speed in operations per second.",
- "format_description" : "iops"
- },
- "rerror" : {
- "description" : "Read error action.",
- "optional" : 1,
- "format_description" : "ignore|report|stop",
- "enum" : [
- "ignore",
- "report",
- "stop"
- ],
- "type" : "string"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
- "trans" : {
- "enum" : [
- "none",
- "lba",
- "auto"
- ],
- "format_description" : "none|lba|auto",
- "description" : "Force disk geometry bios translation mode.",
- "optional" : 1,
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
"type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/mgr/{id}",
+ "text" : "{id}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "MGR directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "addr" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "host" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "The name (ID) for the MGR"
+ },
+ "state" : {
+ "description" : "State of the MGR",
+ "type" : "string"
+ }
},
- "volume" : {
- "alias" : "file"
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/mgr",
+ "text" : "mgr"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Destroy Ceph Monitor and Manager.",
+ "method" : "DELETE",
+ "name" : "destroymon",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "monid" : {
+ "description" : "Monitor ID",
+ "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "iops_rd_max" : {
- "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
- "optional" : 1,
- "format_description" : "iops",
- "type" : "integer"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
- "werror" : {
- "enum" : [
- "enospc",
- "ignore",
- "report",
- "stop"
- ],
- "description" : "Write error action.",
- "format_description" : "enospc|ignore|report|stop",
- "optional" : 1,
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
"type" : "string"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create Ceph Monitor and Manager",
+ "method" : "POST",
+ "name" : "createmon",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "mon-address" : {
+ "description" : "Overwrites autodetected monitor IP address(es). Must be in the public network(s) of Ceph.",
+ "format" : "ip-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "monid" : {
+ "description" : "The ID for the monitor, when omitted the same as the nodename",
+ "maxLength" : 200,
+ "optional" : 1,
+ "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "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"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
- "snapshot" : {
- "optional" : 1,
- "format_description" : "on|off",
- "description" : "Whether the drive should be included when making snapshots.",
- "type" : "boolean"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
}
- },
- "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"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/mon/{monid}",
+ "text" : "{monid}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get Ceph monitor list.",
+ "method" : "GET",
+ "name" : "listmon",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "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"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
},
- "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"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "addr" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "host" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "type" : "string"
+ }
},
- "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" : "object"
},
- "type" : "string",
- "optional" : 1,
- "description" : "Configure an USB device (n is 0 to 4). This can be used to\npass-through usb devices to the guest. HOSTUSBDEVICE syntax is:\n\n'bus-port(.port)*' (decimal numbers) or\n'vendor_id:product_id' (hexadeciaml numbers) or\n'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n\nThe 'usb3' option determines whether the device is a USB3 device or not (this does currently not work reliably with spice redirection and is then ignored).\n\n"
- },
- "smp" : {
- "minimum" : 1,
- "default" : 1,
- "type" : "integer",
- "description" : "The number of CPUs. Please use option -sockets instead.",
- "optional" : 1
- },
- "tablet" : {
- "optional" : 1,
- "description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (-vga=qxl).",
- "default" : 1,
- "type" : "boolean"
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
}
},
- "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."
- }
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/mon",
+ "text" : "mon"
},
- "GET" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "full" : {
- "optional" : 1,
- "description" : "Determine the full status of active VMs.",
- "type" : "boolean"
+ {
+ "children" : [
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a Ceph filesystem",
+ "method" : "POST",
+ "name" : "createfs",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "add-storage" : {
+ "default" : 0,
+ "description" : "Configure the created CephFS as storage for this cluster.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "name" : {
+ "default" : "cephfs",
+ "description" : "The ceph filesystem name.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pg_num" : {
+ "default" : 128,
+ "description" : "Number of placement groups for the backing data pool. The metadata pool will use a quarter of this.",
+ "maximum" : 32768,
+ "minimum" : 8,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (8 - 32768)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/fs/{name}",
+ "text" : "{name}"
}
- },
- "proxyto" : "node",
- "protected" : 1,
- "permissions" : {
- "description" : "Only list VMs where you have VM.Audit permissons on /vms/<vmid>.",
- "user" : "all"
- },
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{vmid}"
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "data_pool" : {
+ "description" : "The name of the data pool.",
+ "type" : "string"
+ },
+ "metadata_pool" : {
+ "description" : "The name of the metadata pool.",
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "The ceph filesystem name.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
- ],
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "type" : "array"
+ }
},
- "name" : "vmlist",
- "method" : "GET",
- "description" : "Virtual machine index (per node)."
- }
- }
- },
- {
- "children" : [
- {
"leaf" : 0,
- "text" : "{vmid}",
+ "path" : "/nodes/{node}/ceph/fs",
+ "text" : "fs"
+ },
+ {
"children" : [
{
- "leaf" : 1,
- "text" : "config",
- "path" : "/nodes/{node}/lxc/{vmid}/config",
"info" : {
- "PUT" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Destroy pool",
+ "method" : "DELETE",
+ "name" : "destroypool",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "console" : {
+ "force" : {
+ "default" : 0,
+ "description" : "If true, destroys pool even if in use",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "name" : {
+ "description" : "The name of the pool. It must be unique.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "remove_ecprofile" : {
"default" : 1,
+ "description" : "Remove the erasure code profile. Defaults to true, if applicable.",
+ "optional" : 1,
"type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "remove_storages" : {
+ "default" : 0,
+ "description" : "Remove all pveceph-managed storages configured for this pool",
"optional" : 1,
- "description" : "Attach a console device (/dev/console) to the container."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List pool settings.",
+ "method" : "GET",
+ "name" : "getpool",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "The name of the pool. It must be unique.",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "cpulimit" : {
- "minimum" : 0,
- "maximum" : 128,
- "type" : "number",
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "verbose" : {
"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
+ "description" : "If enabled, will display additional data(eg. statistics).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "application" : {
+ "default" : "rbd",
+ "description" : "The application of the pool.",
+ "enum" : [
+ "rbd",
+ "cephfs",
+ "rgw"
+ ],
+ "optional" : 1,
+ "title" : "Application",
+ "type" : "string"
},
- "cpuunits" : {
- "minimum" : 0,
- "type" : "integer",
- "default" : 1024,
- "maximum" : 500000,
+ "application_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."
+ "title" : "Application",
+ "type" : "array"
},
- "net[n]" : {
- "description" : "Specifies network interfaces for the container.",
+ "autoscale_status" : {
"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"
- }
- },
+ "title" : "Autoscale Status",
+ "type" : "object"
+ },
+ "crush_rule" : {
+ "description" : "The rule to use for mapping object placement in the cluster.",
+ "optional" : 1,
+ "title" : "Crush Rule Name",
"type" : "string"
},
- "digest" : {
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "fast_read" : {
+ "title" : "Fast Read",
+ "type" : "boolean"
+ },
+ "hashpspool" : {
+ "title" : "hashpspool",
+ "type" : "boolean"
+ },
+ "id" : {
+ "title" : "ID",
+ "type" : "integer"
+ },
+ "min_size" : {
+ "default" : 2,
+ "description" : "Minimum number of replicas per object",
+ "maximum" : 7,
+ "minimum" : 1,
"optional" : 1,
+ "title" : "Min Size",
+ "type" : "integer"
+ },
+ "name" : {
+ "description" : "The name of the pool. It must be unique.",
+ "title" : "Name",
"type" : "string"
},
- "lock" : {
+ "nodeep-scrub" : {
+ "title" : "nodeep-scrub",
+ "type" : "boolean"
+ },
+ "nodelete" : {
+ "title" : "nodelete",
+ "type" : "boolean"
+ },
+ "nopgchange" : {
+ "title" : "nopgchange",
+ "type" : "boolean"
+ },
+ "noscrub" : {
+ "title" : "noscrub",
+ "type" : "boolean"
+ },
+ "nosizechange" : {
+ "title" : "nosizechange",
+ "type" : "boolean"
+ },
+ "pg_autoscale_mode" : {
+ "default" : "warn",
+ "description" : "The automatic PG scaling mode of the pool.",
"enum" : [
- "migrate",
- "backup",
- "snapshot",
- "rollback"
+ "on",
+ "off",
+ "warn"
],
"optional" : 1,
- "description" : "Lock/unlock the VM.",
+ "title" : "PG Autoscale Mode",
"type" : "string"
},
- "swap" : {
- "minimum" : 0,
- "type" : "integer",
- "default" : 512,
- "description" : "Amount of SWAP for the VM in MB.",
- "optional" : 1
+ "pg_num" : {
+ "default" : 128,
+ "description" : "Number of placement groups.",
+ "maximum" : 32768,
+ "minimum" : 1,
+ "optional" : 1,
+ "title" : "PG Num",
+ "type" : "integer"
},
- "description" : {
- "description" : "Container description. Only used on the configuration web interface.",
+ "pg_num_min" : {
+ "description" : "Minimal number of placement groups.",
+ "maximum" : 32768,
"optional" : 1,
- "type" : "string"
+ "title" : "min. PG Num",
+ "type" : "integer"
},
- "onboot" : {
- "description" : "Specifies whether a VM will be started during system bootup.",
+ "pgp_num" : {
+ "title" : "PGP num",
+ "type" : "integer"
+ },
+ "size" : {
+ "default" : 3,
+ "description" : "Number of replicas per object",
+ "maximum" : 7,
+ "minimum" : 1,
"optional" : 1,
- "default" : 0,
- "type" : "boolean"
+ "title" : "Size",
+ "type" : "integer"
},
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "statistics" : {
+ "optional" : 1,
+ "title" : "Statistics",
+ "type" : "object"
},
- "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.",
+ "target_size" : {
+ "description" : "The estimated target size of the pool for the PG autoscaler.",
"optional" : 1,
- "enum" : [
- "debian",
- "ubuntu",
- "centos",
- "fedora",
- "opensuse",
- "archlinux",
- "alpine",
- "unmanaged"
- ]
+ "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
+ "title" : "PG Autoscale Target Size",
+ "type" : "string"
},
- "tty" : {
- "minimum" : 0,
- "default" : 2,
- "maximum" : 6,
- "type" : "integer",
- "description" : "Specify the number of tty available to the container",
- "optional" : 1
+ "target_size_ratio" : {
+ "description" : "The estimated target ratio of the pool for the PG autoscaler.",
+ "optional" : 1,
+ "title" : "PG Autoscale Target Ratio",
+ "type" : "number"
},
- "hostname" : {
- "description" : "Set a host name for the container.",
+ "use_gmt_hitset" : {
+ "title" : "use_gmt_hitset",
+ "type" : "boolean"
+ },
+ "write_fadvise_dontneed" : {
+ "title" : "write_fadvise_dontneed",
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Change POOL settings",
+ "method" : "PUT",
+ "name" : "setpool",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "application" : {
+ "description" : "The application of the pool.",
+ "enum" : [
+ "rbd",
+ "cephfs",
+ "rgw"
+ ],
"optional" : 1,
- "maxLength" : 255,
- "type" : "string",
- "format" : "dns-name"
+ "title" : "Application",
+ "type" : "string"
},
- "startup" : {
- "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] ",
+ "crush_rule" : {
+ "description" : "The rule to use for mapping object placement in the cluster.",
"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"
+ "title" : "Crush Rule Name",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "memory" : {
- "description" : "Amount of RAM for the VM in MB.",
+ "min_size" : {
+ "description" : "Minimum number of replicas per object",
+ "maximum" : 7,
+ "minimum" : 1,
"optional" : 1,
+ "title" : "Min Size",
"type" : "integer",
- "default" : 512,
- "minimum" : 16
+ "typetext" : "<integer> (1 - 7)"
},
- "cmode" : {
+ "name" : {
+ "description" : "The name of the pool. It must be unique.",
+ "title" : "Name",
"type" : "string",
- "default" : "tty",
- "description" : "Console mode. By default, the console command tries to open a connection to one of the available tty devices. By setting cmode to 'console' it tries to attach to /dev/console instead. If you set cmode to 'shell', it simply invokes a shell inside the container (no login).",
- "optional" : 1,
- "enum" : [
- "shell",
- "console",
- "tty"
- ]
+ "typetext" : "<string>"
},
- "mp[n]" : {
- "optional" : 1,
- "description" : "Use volume as container mount point (experimental feature).",
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : {
- "acl" : {
- "type" : "boolean",
- "optional" : 1,
- "format_description" : "acl",
- "description" : "Explicitly enable or disable ACL support."
- },
- "ro" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Read-only mountpoint (not supported with bind mounts)",
- "format_description" : "ro"
- },
- "mp" : {
- "format" : "pve-lxc-mp-string",
- "type" : "string",
- "format_description" : "Path",
- "description" : "Path to the mountpoint as seen from inside the container."
- },
- "backup" : {
- "optional" : 1,
- "description" : "Whether to include the mountpoint in backups.",
- "format_description" : "[1|0]",
- "type" : "boolean"
- },
- "volume" : {
- "description" : "Volume, device or directory to mount into the container.",
- "format_description" : "volume",
- "default_key" : 1,
- "format" : "pve-lxc-mp-string",
- "type" : "string"
- },
- "size" : {
- "description" : "Volume size (read only value).",
- "optional" : 1,
- "format_description" : "DiskSize",
- "format" : "disk-size",
- "type" : "string"
- },
- "quota" : {
- "type" : "boolean",
- "format_description" : "[0|1]",
- "optional" : 1,
- "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)"
- }
- }
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer"
+ "typetext" : "<string>"
},
- "template" : {
- "type" : "boolean",
- "default" : 0,
+ "pg_autoscale_mode" : {
+ "description" : "The automatic PG scaling mode of the pool.",
+ "enum" : [
+ "on",
+ "off",
+ "warn"
+ ],
"optional" : 1,
- "description" : "Enable/disable Template."
+ "title" : "PG Autoscale Mode",
+ "type" : "string"
},
- "nameserver" : {
- "type" : "string",
- "format" : "address-list",
+ "pg_num" : {
+ "description" : "Number of placement groups.",
+ "maximum" : 32768,
+ "minimum" : 1,
"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."
+ "title" : "PG Num",
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 32768)"
},
- "arch" : {
- "type" : "string",
- "default" : "amd64",
+ "pg_num_min" : {
+ "description" : "Minimal number of placement groups.",
+ "maximum" : 32768,
"optional" : 1,
- "description" : "OS architecture type.",
- "enum" : [
- "amd64",
- "i386"
- ]
- },
- "unused[n]" : {
- "format" : "pve-volume-id",
- "type" : "string",
- "description" : "Reference to unused volumes.",
- "optional" : 1
+ "title" : "min. PG Num",
+ "type" : "integer",
+ "typetext" : "<integer> (-N - 32768)"
},
- "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
+ "size" : {
+ "description" : "Number of replicas per object",
+ "maximum" : 7,
+ "minimum" : 1,
+ "optional" : 1,
+ "title" : "Size",
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 7)"
},
- "rootfs" : {
- "type" : "string",
- "format" : {
- "backup" : {
- "type" : "boolean",
- "description" : "Whether to include the mountpoint in backups.",
- "optional" : 1,
- "format_description" : "[1|0]"
- },
- "volume" : {
- "description" : "Volume, device or directory to mount into the container.",
- "format_description" : "volume",
- "default_key" : 1,
- "format" : "pve-lxc-mp-string",
- "type" : "string"
- },
- "size" : {
- "optional" : 1,
- "description" : "Volume size (read only value).",
- "format_description" : "DiskSize",
- "type" : "string",
- "format" : "disk-size"
- },
- "quota" : {
- "format_description" : "[0|1]",
- "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
- "optional" : 1,
- "type" : "boolean"
- },
- "acl" : {
- "description" : "Explicitly enable or disable ACL support.",
- "format_description" : "acl",
- "optional" : 1,
- "type" : "boolean"
- },
- "ro" : {
- "type" : "boolean",
- "description" : "Read-only mountpoint (not supported with bind mounts)",
- "optional" : 1,
- "format_description" : "ro"
- }
- },
+ "target_size" : {
+ "description" : "The estimated target size of the pool for the PG autoscaler.",
"optional" : 1,
- "description" : "Use volume as container root."
+ "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
+ "title" : "PG Autoscale Target Size",
+ "type" : "string"
},
- "unprivileged" : {
+ "target_size_ratio" : {
+ "description" : "The estimated target ratio of the pool for the PG autoscaler.",
+ "optional" : 1,
+ "title" : "PG Autoscale Target Ratio",
+ "type" : "number",
+ "typetext" : "<number>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/pools/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List all pools.",
+ "method" : "GET",
+ "name" : "lspools",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "autoscale_status" : {
+ "optional" : 1,
+ "title" : "Autoscale Status",
+ "type" : "object"
+ },
+ "bytes_used" : {
+ "title" : "Used",
+ "type" : "integer"
+ },
+ "crush_rule" : {
+ "title" : "Crush Rule",
+ "type" : "integer"
+ },
+ "crush_rule_name" : {
+ "title" : "Crush Rule Name",
+ "type" : "string"
+ },
+ "min_size" : {
+ "title" : "Min Size",
+ "type" : "integer"
+ },
+ "percent_used" : {
+ "title" : "%-Used",
+ "type" : "number"
+ },
+ "pg_autoscale_mode" : {
+ "optional" : 1,
+ "title" : "PG Autoscale Mode",
+ "type" : "string"
+ },
+ "pg_num" : {
+ "title" : "PG Num",
+ "type" : "integer"
+ },
+ "pg_num_final" : {
+ "optional" : 1,
+ "title" : "Optimal PG Num",
+ "type" : "integer"
+ },
+ "pg_num_min" : {
+ "optional" : 1,
+ "title" : "min. PG Num",
+ "type" : "integer"
+ },
+ "pool" : {
+ "title" : "ID",
+ "type" : "integer"
+ },
+ "pool_name" : {
+ "title" : "Name",
+ "type" : "string"
+ },
+ "size" : {
+ "title" : "Size",
+ "type" : "integer"
+ },
+ "target_size" : {
+ "optional" : 1,
+ "title" : "PG Autoscale Target Size",
+ "type" : "integer"
+ },
+ "target_size_ratio" : {
+ "optional" : 1,
+ "title" : "PG Autoscale Target Ratio",
+ "type" : "number"
+ },
+ "type" : {
+ "enum" : [
+ "replicated",
+ "erasure",
+ "unknown"
+ ],
+ "title" : "Type",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{pool_name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create Ceph pool",
+ "method" : "POST",
+ "name" : "createpool",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "add_storages" : {
+ "default" : "0; for erasure coded pools: 1",
+ "description" : "Configure VM and CT storage using the new pool.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "application" : {
+ "default" : "rbd",
+ "description" : "The application of the pool.",
+ "enum" : [
+ "rbd",
+ "cephfs",
+ "rgw"
+ ],
+ "optional" : 1,
+ "title" : "Application",
+ "type" : "string"
+ },
+ "crush_rule" : {
+ "description" : "The rule to use for mapping object placement in the cluster.",
+ "optional" : 1,
+ "title" : "Crush Rule Name",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "erasure-coding" : {
+ "description" : "Create an erasure coded pool for RBD with an accompaning replicated pool for metadata storage. With EC, the common ceph options 'size', 'min_size' and 'crush_rule' parameters will be applied to the metadata pool.",
+ "format" : {
+ "device-class" : {
+ "description" : "CRUSH device class. Will create an erasure coded pool plus a replicated pool for metadata.",
+ "format_description" : "class",
"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.",
+ "failure-domain" : {
+ "default" : "host",
+ "description" : "CRUSH failure domain. Default is 'host'. Will create an erasure coded pool plus a replicated pool for metadata.",
+ "format_description" : "domain",
"optional" : 1,
- "format" : "pve-configid-list",
"type" : "string"
},
- "searchdomain" : {
- "format" : "dns-name-list",
- "type" : "string",
+ "k" : {
+ "description" : "Number of data chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
+ "minimum" : 2,
+ "type" : "integer"
+ },
+ "m" : {
+ "description" : "Number of coding chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
+ "minimum" : 1,
+ "type" : "integer"
+ },
+ "profile" : {
+ "description" : "Override the erasure code (EC) profile to use. Will create an erasure coded pool plus a replicated pool for metadata.",
+ "format_description" : "profile",
"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."
+ "type" : "string"
}
},
- "additionalProperties" : 0
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "k=<integer> ,m=<integer> [,device-class=<class>] [,failure-domain=<domain>] [,profile=<profile>]"
+ },
+ "min_size" : {
+ "default" : 2,
+ "description" : "Minimum number of replicas per object",
+ "maximum" : 7,
+ "minimum" : 1,
+ "optional" : 1,
+ "title" : "Min Size",
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 7)"
+ },
+ "name" : {
+ "description" : "The name of the pool. It must be unique.",
+ "title" : "Name",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pg_autoscale_mode" : {
+ "default" : "warn",
+ "description" : "The automatic PG scaling mode of the pool.",
+ "enum" : [
+ "on",
+ "off",
+ "warn"
+ ],
+ "optional" : 1,
+ "title" : "PG Autoscale Mode",
+ "type" : "string"
+ },
+ "pg_num" : {
+ "default" : 128,
+ "description" : "Number of placement groups.",
+ "maximum" : 32768,
+ "minimum" : 1,
+ "optional" : 1,
+ "title" : "PG Num",
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 32768)"
+ },
+ "pg_num_min" : {
+ "description" : "Minimal number of placement groups.",
+ "maximum" : 32768,
+ "optional" : 1,
+ "title" : "min. PG Num",
+ "type" : "integer",
+ "typetext" : "<integer> (-N - 32768)"
+ },
+ "size" : {
+ "default" : 3,
+ "description" : "Number of replicas per object",
+ "maximum" : 7,
+ "minimum" : 1,
+ "optional" : 1,
+ "title" : "Size",
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 7)"
+ },
+ "target_size" : {
+ "description" : "The estimated target size of the pool for the PG autoscaler.",
+ "optional" : 1,
+ "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
+ "title" : "PG Autoscale Target Size",
+ "type" : "string"
+ },
+ "target_size_ratio" : {
+ "description" : "The estimated target ratio of the pool for the PG autoscaler.",
+ "optional" : 1,
+ "title" : "PG Autoscale Target Ratio",
+ "type" : "number",
+ "typetext" : "<number>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/pools",
+ "text" : "pools"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get Ceph configuration.",
+ "method" : "GET",
+ "name" : "config",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/config",
+ "text" : "config"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get Ceph configuration database.",
+ "method" : "GET",
+ "name" : "configdb",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "can_update_at_runtime" : {
+ "type" : "boolean"
+ },
+ "level" : {
+ "type" : "string"
+ },
+ "mask" : {
+ "type" : "string"
+ },
+ "name" : {
+ "type" : "string"
+ },
+ "section" : {
+ "type" : "string"
+ },
+ "value" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/configdb",
+ "text" : "configdb"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create initial ceph default configuration and setup symlinks.",
+ "method" : "POST",
+ "name" : "init",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cluster-network" : {
+ "description" : "Declare a separate cluster network, OSDs will routeheartbeat, object replication and recovery traffic over it",
+ "format" : "CIDR",
+ "maxLength" : 128,
+ "optional" : 1,
+ "requires" : "network",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disable_cephx" : {
+ "default" : 0,
+ "description" : "Disable cephx authentication.\n\nWARNING: cephx is a security feature protecting against man-in-the-middle attacks. Only consider disabling cephx if your network is private!",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "min_size" : {
+ "default" : 2,
+ "description" : "Minimum number of available replicas per object to allow I/O",
+ "maximum" : 7,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 7)"
+ },
+ "network" : {
+ "description" : "Use specific network for all ceph related traffic",
+ "format" : "CIDR",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pg_bits" : {
+ "default" : 6,
+ "description" : "Placement group bits, used to specify the default number of placement groups.\n\nNOTE: 'osd pool default pg num' does not work for default pools.",
+ "maximum" : 14,
+ "minimum" : 6,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (6 - 14)"
+ },
+ "size" : {
+ "default" : 3,
+ "description" : "Targeted number of replicas per object",
+ "maximum" : 7,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 7)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/init",
+ "text" : "init"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Stop ceph services.",
+ "method" : "POST",
+ "name" : "stop",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "service" : {
+ "default" : "ceph.target",
+ "description" : "Ceph service name.",
+ "optional" : 1,
+ "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/stop",
+ "text" : "stop"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Start ceph services.",
+ "method" : "POST",
+ "name" : "start",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "service" : {
+ "default" : "ceph.target",
+ "description" : "Ceph service name.",
+ "optional" : 1,
+ "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/start",
+ "text" : "start"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Restart ceph services.",
+ "method" : "POST",
+ "name" : "restart",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "service" : {
+ "default" : "ceph.target",
+ "description" : "Ceph service name.",
+ "optional" : 1,
+ "pattern" : "(mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/restart",
+ "text" : "restart"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get ceph status.",
+ "method" : "GET",
+ "name" : "status",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/status",
+ "text" : "status"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get OSD crush map",
+ "method" : "GET",
+ "name" : "crush",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/crush",
+ "text" : "crush"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read ceph log",
+ "method" : "GET",
+ "name" : "log",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "limit" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "start" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Syslog"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "n" : {
+ "description" : "Line number",
+ "type" : "integer"
+ },
+ "t" : {
+ "description" : "Line text",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/log",
+ "text" : "log"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List ceph rules.",
+ "method" : "GET",
+ "name" : "rules",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/rules",
+ "text" : "rules"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph",
+ "text" : "ceph"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get the currently configured vzdump defaults.",
+ "method" : "GET",
+ "name" : "defaults",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "proxyto" : "node",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Disk",
- "VM.Config.CPU",
- "VM.Config.Memory",
- "VM.Config.Network",
- "VM.Config.Options"
- ],
- "any",
- 1
- ]
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "The user needs 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions for the specified storage (or default storage if none specified). Some properties are only returned when the user has 'Sys.Audit' permissions for the node.",
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "all" : {
+ "default" : 0,
+ "description" : "Backup all known guest systems on this host.",
+ "optional" : 1,
+ "type" : "boolean"
},
- "returns" : {
- "type" : "null"
+ "bwlimit" : {
+ "default" : 0,
+ "description" : "Limit I/O bandwidth (KBytes per second).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
},
- "method" : "PUT",
- "name" : "update_vm",
- "description" : "Set container options."
+ "compress" : {
+ "default" : "0",
+ "description" : "Compress dump file.",
+ "enum" : [
+ "0",
+ "1",
+ "gzip",
+ "lzo",
+ "zstd"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dumpdir" : {
+ "description" : "Store resulting files to specified directory.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "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). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
+ "format" : "string-alist",
+ "optional" : 1,
+ "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" : {
+ "default" : "always",
+ "description" : "Specify when to send an email",
+ "enum" : [
+ "always",
+ "failure"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "mailto" : {
+ "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
+ "format" : "email-or-username-list",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "maxfiles" : {
+ "description" : "Deprecated: use 'prune-backups' instead. 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"
+ },
+ "notes-template" : {
+ "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future.",
+ "optional" : 1,
+ "requires" : "storage",
+ "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,
+ "type" : "integer"
+ },
+ "pool" : {
+ "description" : "Backup all known guest systems included in the specified pool.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "protected" : {
+ "description" : "If true, mark backup(s) as protected.",
+ "optional" : 1,
+ "requires" : "storage",
+ "type" : "boolean"
+ },
+ "prune-backups" : {
+ "default" : "keep-all=1",
+ "description" : "Use these retention options instead of those from the storage configuration.",
+ "format" : "prune-backups",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "quiet" : {
+ "default" : 0,
+ "description" : "Be quiet.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "remove" : {
+ "default" : 1,
+ "description" : "Prune older backups according to 'prune-backups'.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "script" : {
+ "description" : "Use specified hook script.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "stdexcludes" : {
+ "default" : 1,
+ "description" : "Exclude temporary files and logs.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "stop" : {
+ "default" : 0,
+ "description" : "Stop running backup jobs on this host.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "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"
+ },
+ "zstd" : {
+ "default" : 1,
+ "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
+ "optional" : 1,
+ "type" : "integer"
+ }
},
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/vzdump/defaults",
+ "text" : "defaults"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Extract configuration from vzdump backup archive.",
+ "method" : "GET",
+ "name" : "extractconfig",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "volume" : {
+ "description" : "Volume identifier",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "The user needs 'VM.Backup' permissions on the backed up guest ID, and 'Datastore.AllocateSpace' on the backup storage.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/vzdump/extractconfig",
+ "text" : "extractconfig"
+ }
+ ],
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create backup.",
+ "method" : "POST",
+ "name" : "vzdump",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "all" : {
+ "default" : 0,
+ "description" : "Backup all known guest systems on this host.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "bwlimit" : {
+ "default" : 0,
+ "description" : "Limit I/O bandwidth (KBytes per second).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "compress" : {
+ "default" : "0",
+ "description" : "Compress dump file.",
+ "enum" : [
+ "0",
+ "1",
+ "gzip",
+ "lzo",
+ "zstd"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dumpdir" : {
+ "description" : "Store resulting files to specified directory.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "exclude" : {
+ "description" : "Exclude specified guest systems (assumes --all)",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "exclude-path" : {
+ "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
+ "format" : "string-alist",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ionice" : {
+ "default" : 7,
+ "description" : "Set CFQ ionice priority.",
+ "maximum" : 8,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 8)"
+ },
+ "lockwait" : {
+ "default" : 180,
+ "description" : "Maximal time to wait for the global lock (minutes).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "mailnotification" : {
+ "default" : "always",
+ "description" : "Specify when to send an email",
+ "enum" : [
+ "always",
+ "failure"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "mailto" : {
+ "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
+ "format" : "email-or-username-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "maxfiles" : {
+ "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "mode" : {
+ "default" : "snapshot",
+ "description" : "Backup mode.",
+ "enum" : [
+ "snapshot",
+ "suspend",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "Only run if executed on this node.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "notes-template" : {
+ "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future.",
+ "optional" : 1,
+ "requires" : "storage",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pigz" : {
+ "default" : 0,
+ "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "pool" : {
+ "description" : "Backup all known guest systems included in the specified pool.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "protected" : {
+ "description" : "If true, mark backup(s) as protected.",
+ "optional" : 1,
+ "requires" : "storage",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "prune-backups" : {
+ "default" : "keep-all=1",
+ "description" : "Use these retention options instead of those from the storage configuration.",
+ "format" : "prune-backups",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
+ },
+ "quiet" : {
+ "default" : 0,
+ "description" : "Be quiet.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "remove" : {
+ "default" : 1,
+ "description" : "Prune older backups according to 'prune-backups'.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "script" : {
+ "description" : "Use specified hook script.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "stdexcludes" : {
+ "default" : 1,
+ "description" : "Exclude temporary files and logs.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "stdout" : {
+ "description" : "Write tar to stdout, not to a file.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "stop" : {
+ "default" : 0,
+ "description" : "Stop running backup jobs on this host.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "stopwait" : {
+ "default" : 10,
+ "description" : "Maximal time to wait until a guest system is stopped (minutes).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "storage" : {
+ "description" : "Store resulting file to this storage.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tmpdir" : {
+ "description" : "Store temporary files to specified directory.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The ID of the guest system you want to backup.",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "zstd" : {
+ "default" : 1,
+ "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage. The 'maxfiles', 'prune-backups', 'tmpdir', 'dumpdir', 'script', 'bwlimit' and 'ionice' parameters are restricted to the 'root@pam' user.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/vzdump",
+ "text" : "vzdump"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
"GET" : {
+ "allowtoken" : 1,
+ "description" : "Read service properties",
"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",
+ "name" : "service_state",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "service" : {
+ "description" : "Service ID",
+ "enum" : [
+ "chrony",
+ "corosync",
+ "cron",
+ "ksmtuned",
+ "postfix",
+ "pve-cluster",
+ "pve-firewall",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "pvedaemon",
+ "pvefw-logger",
+ "pveproxy",
+ "pvescheduler",
+ "pvestatd",
+ "spiceproxy",
+ "sshd",
+ "syslog",
+ "systemd-journald",
+ "systemd-timesyncd"
+ ],
+ "type" : "string"
}
}
},
- "description" : "Get container configuration.",
"permissions" : {
"check" : [
"perm",
- "/vms/{vmid}",
+ "/nodes/{node}",
[
- "VM.Audit"
+ "Sys.Audit"
]
]
- }
- }
- }
- },
- {
- "path" : "/nodes/{node}/lxc/{vmid}/status",
- "children" : [
- {
- "info" : {
- "GET" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "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,
- "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",
- "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"
- },
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.PowerMgmt"
- ]
- ]
- },
- "protected" : 1
- }
- }
- },
- {
- "path" : "/nodes/{node}/lxc/{vmid}/status/stop",
- "info" : {
- "POST" : {
- "method" : "POST",
- "name" : "vm_stop",
- "returns" : {
- "type" : "string"
- },
- "description" : "Stop the container. This will abruptly stop all processes running in the container.",
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "skiplock" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Ignore locks - only root is allowed to use this option."
- },
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.PowerMgmt"
- ]
- ]
- },
- "protected" : 1
- }
- },
- "leaf" : 1,
- "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",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "timeout" : {
- "description" : "Wait maximal timeout seconds.",
- "optional" : 1,
- "type" : "integer",
- "default" : 60,
- "minimum" : 0
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "forceStop" : {
- "type" : "boolean",
- "default" : 0,
- "description" : "Make sure the Container stops.",
- "optional" : 1
- },
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- }
- }
- }
- }
- },
- "leaf" : 1,
- "text" : "shutdown"
- },
- {
- "info" : {
- "POST" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.PowerMgmt"
- ]
- ]
- },
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- }
- }
- },
- "description" : "Suspend the container.",
- "returns" : {
- "type" : "string"
- },
- "method" : "POST",
- "name" : "vm_suspend"
- }
},
- "path" : "/nodes/{node}/lxc/{vmid}/status/suspend",
- "text" : "suspend",
- "leaf" : 1
- },
- {
- "info" : {
- "POST" : {
- "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,
- "type" : "integer",
- "format" : "pve-vmid"
- }
- }
- },
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.PowerMgmt"
- ]
- ]
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/state",
+ "text" : "state"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Start service.",
+ "method" : "POST",
+ "name" : "service_start",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "protected" : 1,
- "returns" : {
+ "service" : {
+ "description" : "Service ID",
+ "enum" : [
+ "chrony",
+ "corosync",
+ "cron",
+ "ksmtuned",
+ "postfix",
+ "pve-cluster",
+ "pve-firewall",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "pvedaemon",
+ "pvefw-logger",
+ "pveproxy",
+ "pvescheduler",
+ "pvestatd",
+ "spiceproxy",
+ "sshd",
+ "syslog",
+ "systemd-journald",
+ "systemd-timesyncd"
+ ],
"type" : "string"
- },
- "name" : "vm_resume",
- "method" : "POST",
- "description" : "Resume the container."
+ }
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/status/resume",
- "text" : "resume",
- "leaf" : 1
- }
- ],
- "info" : {
- "GET" : {
- "description" : "Directory index",
"permissions" : {
- "user" : "all"
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
- "name" : "vmcmdidx",
- "method" : "GET",
+ "protected" : 1,
"proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/start",
+ "text" : "start"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Stop service.",
+ "method" : "POST",
+ "name" : "service_stop",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
+ "service" : {
+ "description" : "Service ID",
+ "enum" : [
+ "chrony",
+ "corosync",
+ "cron",
+ "ksmtuned",
+ "postfix",
+ "pve-cluster",
+ "pve-firewall",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "pvedaemon",
+ "pvefw-logger",
+ "pveproxy",
+ "pvescheduler",
+ "pvestatd",
+ "spiceproxy",
+ "sshd",
+ "syslog",
+ "systemd-journald",
+ "systemd-timesyncd"
+ ],
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "subdir" : {
- "type" : "string"
- }
- }
- },
- "type" : "array",
- "links" : [
- {
- "href" : "{subdir}",
- "rel" : "child"
- }
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
}
}
},
- "leaf" : 0,
- "text" : "status"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/stop",
+ "text" : "stop"
},
{
"info" : {
"POST" : {
- "description" : "Snapshot a container.",
- "returns" : {
- "type" : "string",
- "description" : "the task ID."
- },
- "name" : "snapshot",
+ "allowtoken" : 1,
+ "description" : "Hard restart service. Use reload if you want to reduce interruptions.",
"method" : "POST",
- "protected" : 1,
+ "name" : "service_restart",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "service" : {
+ "description" : "Service ID",
+ "enum" : [
+ "chrony",
+ "corosync",
+ "cron",
+ "ksmtuned",
+ "postfix",
+ "pve-cluster",
+ "pve-firewall",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "pvedaemon",
+ "pvefw-logger",
+ "pveproxy",
+ "pvescheduler",
+ "pvestatd",
+ "spiceproxy",
+ "sshd",
+ "syslog",
+ "systemd-journald",
+ "systemd-timesyncd"
+ ],
+ "type" : "string"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
- "/vms/{vmid}",
+ "/nodes/{node}",
[
- "VM.Snapshot"
+ "Sys.Modify"
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/restart",
+ "text" : "restart"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Reload service. Falls back to restart if service cannot be reloaded.",
+ "method" : "POST",
+ "name" : "service_reload",
"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" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "description" : {
- "optional" : 1,
- "description" : "A textual description or comment.",
+ "service" : {
+ "description" : "Service ID",
+ "enum" : [
+ "chrony",
+ "corosync",
+ "cron",
+ "ksmtuned",
+ "postfix",
+ "pve-cluster",
+ "pve-firewall",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "pvedaemon",
+ "pvefw-logger",
+ "pveproxy",
+ "pvescheduler",
+ "pvestatd",
+ "spiceproxy",
+ "sshd",
+ "syslog",
+ "systemd-journald",
+ "systemd-timesyncd"
+ ],
"type" : "string"
}
}
},
- "proxyto" : "node"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/services/{service}/reload",
+ "text" : "reload"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index",
+ "method" : "GET",
+ "name" : "srvcmdidx",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "service" : {
+ "description" : "Service ID",
+ "enum" : [
+ "chrony",
+ "corosync",
+ "cron",
+ "ksmtuned",
+ "postfix",
+ "pve-cluster",
+ "pve-firewall",
+ "pve-ha-crm",
+ "pve-ha-lrm",
+ "pvedaemon",
+ "pvefw-logger",
+ "pveproxy",
+ "pvescheduler",
+ "pvestatd",
+ "spiceproxy",
+ "sshd",
+ "syslog",
+ "systemd-journald",
+ "systemd-timesyncd"
+ ],
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
},
- "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
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/services/{service}",
+ "text" : "{service}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Service list.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{service}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/services",
+ "text" : "services"
+ },
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete subscription key of this node.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read subscription info.",
+ "method" : "GET",
+ "name" : "get",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Update subscription info.",
+ "method" : "POST",
+ "name" : "update",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "force" : {
+ "default" : 0,
+ "description" : "Always connect to server, even if we have up to date info inside local cache.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Set subscription key.",
+ "method" : "PUT",
+ "name" : "set",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "key" : {
+ "description" : "Proxmox VE subscription key",
+ "maxLength" : 32,
+ "pattern" : "pve([1248])([cbsp])-[0-9a-f]{10}",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/subscription",
+ "text" : "subscription"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete network device configuration",
+ "method" : "DELETE",
+ "name" : "delete_network",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "iface" : {
+ "description" : "Network interface name.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "proxyto" : "node",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "children" : [
- {
- "info" : {
- "DELETE" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
- },
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "force" : {
- "description" : "For removal from config file, even if removing disk snapshots fails.",
- "optional" : 1,
- "type" : "boolean"
- },
- "snapname" : {
- "description" : "The name of the snapshot.",
- "maxLength" : 40,
- "type" : "string",
- "format" : "pve-configid"
- },
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- },
- "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",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "snapname" : {
- "maxLength" : 40,
- "description" : "The name of the snapshot.",
- "format" : "pve-configid",
- "type" : "string"
- },
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node"
- }
- },
- "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback"
- },
- {
- "leaf" : 1,
- "text" : "config",
- "info" : {
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
- },
- "description" : "Get snapshot configuration",
- "method" : "GET",
- "name" : "get_snapshot_config",
- "returns" : {
- "type" : "object"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "snapname" : {
- "format" : "pve-configid",
- "type" : "string",
- "maxLength" : 40,
- "description" : "The name of the snapshot."
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
- }
- }
- },
- "proxyto" : "node"
- },
- "PUT" : {
- "description" : "Update snapshot metadata.",
- "name" : "update_snapshot_config",
- "method" : "PUT",
- "returns" : {
- "type" : "null"
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Snapshot"
- ]
- ]
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "snapname" : {
- "description" : "The name of the snapshot.",
- "maxLength" : 40,
- "type" : "string",
- "format" : "pve-configid"
- },
- "description" : {
- "type" : "string",
- "description" : "A textual description or comment.",
- "optional" : 1
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- }
- }
- },
- "proxyto" : "node"
- }
- },
- "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config"
- }
- ],
- "leaf" : 0,
- "text" : "{snapname}"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read network device configuration",
+ "method" : "GET",
+ "name" : "network_config",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "iface" : {
+ "description" : "Network interface name.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
}
- ],
- "path" : "/nodes/{node}/lxc/{vmid}/snapshot",
- "text" : "snapshot",
- "leaf" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "method" : {
+ "type" : "string"
+ },
+ "type" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
},
- {
- "children" : [
- {
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules",
- "children" : [
- {
- "info" : {
- "PUT" : {
- "description" : "Modify rule data.",
- "returns" : {
- "type" : "null"
- },
- "name" : "update_rule",
- "method" : "PUT",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "protected" : 1,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "dest" : {
- "format" : "pve-fw-addr-spec",
- "type" : "string",
- "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "optional" : 1
- },
- "action" : {
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "optional" : 1,
- "maxLength" : 20,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1,
- "description" : "Update rule at position <pos>."
- },
- "type" : {
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "optional" : 1,
- "type" : "string"
- },
- "iface" : {
- "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
- "maxLength" : 20,
- "optional" : 1,
- "minLength" : 2,
- "format" : "pve-iface",
- "type" : "string"
- },
- "digest" : {
- "type" : "string",
- "maxLength" : 40,
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."
- },
- "source" : {
- "optional" : 1,
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "type" : "string",
- "format" : "pve-fw-addr-spec"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "macro" : {
- "type" : "string",
- "maxLength" : 128,
- "optional" : 1
- },
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- },
- "enable" : {
- "optional" : 1,
- "minimum" : 0,
- "type" : "integer"
- },
- "moveto" : {
- "optional" : 1,
- "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
- "type" : "integer",
- "minimum" : 0
- },
- "dport" : {
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "optional" : 1,
- "format" : "pve-fw-dport-spec",
- "type" : "string"
- },
- "proto" : {
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-fw-protocol-spec"
- },
- "sport" : {
- "optional" : 1,
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "format" : "pve-fw-sport-spec",
- "type" : "string"
- },
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-configid-list"
- }
- }
- },
- "proxyto" : null
- },
- "DELETE" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "digest" : {
- "type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1
- },
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
- "description" : "Update rule at position <pos>.",
- "optional" : 1
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- }
- },
- "proxyto" : null,
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "method" : "DELETE",
- "name" : "delete_rule",
- "returns" : {
- "type" : "null"
- },
- "description" : "Delete rule."
- },
- "GET" : {
- "description" : "Get single rule data.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "proxyto" : null,
- "parameters" : {
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "optional" : 1,
- "minimum" : 0,
- "type" : "integer"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- },
- "type" : "object"
- },
- "method" : "GET",
- "name" : "get_rule"
- }
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update network device configuration",
+ "method" : "PUT",
+ "name" : "update_network",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "address" : {
+ "description" : "IP address.",
+ "format" : "ipv4",
+ "optional" : 1,
+ "requires" : "netmask",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "address6" : {
+ "description" : "IP address.",
+ "format" : "ipv6",
+ "optional" : 1,
+ "requires" : "netmask6",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "autostart" : {
+ "description" : "Automatically start interface on boot.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "bond-primary" : {
+ "description" : "Specify the primary interface for active-backup bond.",
+ "format" : "pve-iface",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "bond_mode" : {
+ "description" : "Bonding mode.",
+ "enum" : [
+ "balance-rr",
+ "active-backup",
+ "balance-xor",
+ "broadcast",
+ "802.3ad",
+ "balance-tlb",
+ "balance-alb",
+ "balance-slb",
+ "lacp-balance-slb",
+ "lacp-balance-tcp"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "bond_xmit_hash_policy" : {
+ "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
+ "enum" : [
+ "layer2",
+ "layer2+3",
+ "layer3+4"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "bridge_ports" : {
+ "description" : "Specify the interfaces you want to add to your bridge.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "bridge_vlan_aware" : {
+ "description" : "Enable bridge vlan support.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "cidr" : {
+ "description" : "IPv4 CIDR.",
+ "format" : "CIDRv4",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "cidr6" : {
+ "description" : "IPv6 CIDR.",
+ "format" : "CIDRv6",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comments" : {
+ "description" : "Comments",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comments6" : {
+ "description" : "Comments",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "gateway" : {
+ "description" : "Default gateway address.",
+ "format" : "ipv4",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "gateway6" : {
+ "description" : "Default ipv6 gateway address.",
+ "format" : "ipv6",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "iface" : {
+ "description" : "Network interface name.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "mtu" : {
+ "description" : "MTU.",
+ "maximum" : 65520,
+ "minimum" : 1280,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1280 - 65520)"
+ },
+ "netmask" : {
+ "description" : "Network mask.",
+ "format" : "ipv4mask",
+ "optional" : 1,
+ "requires" : "address",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "netmask6" : {
+ "description" : "Network mask.",
+ "maximum" : 128,
+ "minimum" : 0,
+ "optional" : 1,
+ "requires" : "address6",
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 128)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_bonds" : {
+ "description" : "Specify the interfaces used by the bonding device.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_bridge" : {
+ "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
+ "format" : "pve-iface",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_options" : {
+ "description" : "OVS interface options.",
+ "maxLength" : 1024,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_ports" : {
+ "description" : "Specify the interfaces you want to add to your bridge.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_tag" : {
+ "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
+ "maximum" : 4094,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 4094)"
+ },
+ "slaves" : {
+ "description" : "Specify the interfaces used by the bonding device.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Network interface type",
+ "enum" : [
+ "bridge",
+ "bond",
+ "eth",
+ "alias",
+ "vlan",
+ "OVSBridge",
+ "OVSBond",
+ "OVSPort",
+ "OVSIntPort",
+ "unknown"
+ ],
+ "type" : "string"
+ },
+ "vlan-id" : {
+ "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
+ "maximum" : 4094,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 4094)"
+ },
+ "vlan-raw-device" : {
+ "description" : "Specify the raw interface for the vlan interface.",
+ "format" : "pve-iface",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/network/{iface}",
+ "text" : "{iface}"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Revert network configuration changes.",
+ "method" : "DELETE",
+ "name" : "revert_network_changes",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List available networks",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Only list specific interface types.",
+ "enum" : [
+ "bridge",
+ "bond",
+ "eth",
+ "alias",
+ "vlan",
+ "OVSBridge",
+ "OVSBond",
+ "OVSPort",
+ "OVSIntPort",
+ "any_bridge"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{iface}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create network device configuration",
+ "method" : "POST",
+ "name" : "create_network",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "address" : {
+ "description" : "IP address.",
+ "format" : "ipv4",
+ "optional" : 1,
+ "requires" : "netmask",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "address6" : {
+ "description" : "IP address.",
+ "format" : "ipv6",
+ "optional" : 1,
+ "requires" : "netmask6",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "autostart" : {
+ "description" : "Automatically start interface on boot.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "bond-primary" : {
+ "description" : "Specify the primary interface for active-backup bond.",
+ "format" : "pve-iface",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "bond_mode" : {
+ "description" : "Bonding mode.",
+ "enum" : [
+ "balance-rr",
+ "active-backup",
+ "balance-xor",
+ "broadcast",
+ "802.3ad",
+ "balance-tlb",
+ "balance-alb",
+ "balance-slb",
+ "lacp-balance-slb",
+ "lacp-balance-tcp"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "bond_xmit_hash_policy" : {
+ "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
+ "enum" : [
+ "layer2",
+ "layer2+3",
+ "layer3+4"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "bridge_ports" : {
+ "description" : "Specify the interfaces you want to add to your bridge.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "bridge_vlan_aware" : {
+ "description" : "Enable bridge vlan support.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "cidr" : {
+ "description" : "IPv4 CIDR.",
+ "format" : "CIDRv4",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "cidr6" : {
+ "description" : "IPv6 CIDR.",
+ "format" : "CIDRv6",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comments" : {
+ "description" : "Comments",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comments6" : {
+ "description" : "Comments",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "gateway" : {
+ "description" : "Default gateway address.",
+ "format" : "ipv4",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "gateway6" : {
+ "description" : "Default ipv6 gateway address.",
+ "format" : "ipv6",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "iface" : {
+ "description" : "Network interface name.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "mtu" : {
+ "description" : "MTU.",
+ "maximum" : 65520,
+ "minimum" : 1280,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1280 - 65520)"
+ },
+ "netmask" : {
+ "description" : "Network mask.",
+ "format" : "ipv4mask",
+ "optional" : 1,
+ "requires" : "address",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "netmask6" : {
+ "description" : "Network mask.",
+ "maximum" : 128,
+ "minimum" : 0,
+ "optional" : 1,
+ "requires" : "address6",
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 128)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_bonds" : {
+ "description" : "Specify the interfaces used by the bonding device.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_bridge" : {
+ "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
+ "format" : "pve-iface",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_options" : {
+ "description" : "OVS interface options.",
+ "maxLength" : 1024,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_ports" : {
+ "description" : "Specify the interfaces you want to add to your bridge.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ovs_tag" : {
+ "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
+ "maximum" : 4094,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 4094)"
+ },
+ "slaves" : {
+ "description" : "Specify the interfaces used by the bonding device.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Network interface type",
+ "enum" : [
+ "bridge",
+ "bond",
+ "eth",
+ "alias",
+ "vlan",
+ "OVSBridge",
+ "OVSBond",
+ "OVSPort",
+ "OVSIntPort",
+ "unknown"
+ ],
+ "type" : "string"
+ },
+ "vlan-id" : {
+ "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
+ "maximum" : 4094,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 4094)"
+ },
+ "vlan-raw-device" : {
+ "description" : "Specify the raw interface for the vlan interface.",
+ "format" : "pve-iface",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Reload network configuration",
+ "method" : "PUT",
+ "name" : "reload_network_config",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/network",
+ "text" : "network"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read task log.",
+ "method" : "GET",
+ "name" : "read_task_log",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "limit" : {
+ "default" : 50,
+ "description" : "The maximum amount of lines that should be printed.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}",
- "leaf" : 1,
- "text" : "{pos}"
- }
- ],
- "info" : {
- "POST" : {
- "description" : "Create new rule.",
- "method" : "POST",
- "name" : "create_rule",
- "returns" : {
- "type" : "null"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
+ "start" : {
+ "default" : 0,
+ "description" : "The line number to start printing at.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "proxyto" : null,
- "parameters" : {
- "properties" : {
- "dest" : {
- "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-fw-addr-spec"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
- "description" : "Update rule at position <pos>.",
- "optional" : 1
- },
- "action" : {
- "type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "optional" : 0,
- "maxLength" : 20,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name."
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "type" : {
- "type" : "string",
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "optional" : 0
- },
- "macro" : {
- "type" : "string",
- "maxLength" : 128,
- "optional" : 1
- },
- "dport" : {
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "optional" : 1,
- "format" : "pve-fw-dport-spec",
- "type" : "string"
- },
- "enable" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1
- },
- "digest" : {
- "optional" : 1,
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "type" : "string"
- },
- "iface" : {
- "type" : "string",
- "format" : "pve-iface",
- "minLength" : 2,
- "maxLength" : 20,
- "optional" : 1,
- "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings."
- },
- "proto" : {
- "type" : "string",
- "format" : "pve-fw-protocol-spec",
- "optional" : 1,
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'."
- },
- "sport" : {
- "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-fw-sport-spec"
- },
- "source" : {
- "optional" : 1,
- "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
- "format" : "pve-fw-addr-spec",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
+ "upid" : {
+ "description" : "The task's unique ID.",
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- }
+ }
+ },
+ "permissions" : {
+ "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they aren't the owner of the task.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "n" : {
+ "description" : "Line number",
+ "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",
- "type" : "integer"
- }
+ "t" : {
+ "description" : "Line text",
+ "type" : "string"
}
},
- "method" : "GET",
- "name" : "get_rules",
- "description" : "List rules.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/tasks/{upid}/log",
+ "text" : "log"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read task status.",
+ "method" : "GET",
+ "name" : "read_task_status",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "upid" : {
+ "description" : "The task's unique ID.",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "leaf" : 0,
- "text" : "rules"
- },
- {
- "leaf" : 0,
- "text" : "aliases",
- "info" : {
- "POST" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "name" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "description" : "Alias name."
- },
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "cidr" : {
- "type" : "string",
- "format" : "IPorCIDR",
- "description" : "Network/IP specification in CIDR format."
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- }
+ "permissions" : {
+ "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they are not the owner of the task.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "exitstatus" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "id" : {
+ "type" : "string"
},
- "returns" : {
- "type" : "null"
+ "node" : {
+ "type" : "string"
},
- "method" : "POST",
- "name" : "create_alias",
- "description" : "Create IP or Network Alias.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
+ "pid" : {
+ "type" : "integer"
+ },
+ "starttime" : {
+ "type" : "number"
+ },
+ "status" : {
+ "enum" : [
+ "running",
+ "stopped"
+ ],
+ "type" : "string"
+ },
+ "type" : {
+ "type" : "string"
+ },
+ "upid" : {
+ "type" : "string"
},
- "protected" : 1
+ "user" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/tasks/{upid}/status",
+ "text" : "status"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Stop a task.",
+ "method" : "DELETE",
+ "name" : "stop_task",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "upid" : {
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "The user needs 'Sys.Modify' permissions on '/nodes/<node>' if they aren't the owner of the task.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "",
+ "method" : "GET",
+ "name" : "upid_index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "upid" : {
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/tasks/{upid}",
+ "text" : "{upid}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read task list for one node (finished tasks).",
+ "method" : "GET",
+ "name" : "node_tasks",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "errors" : {
+ "default" : 0,
+ "description" : "Only list tasks with a status of ERROR.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "limit" : {
+ "default" : 50,
+ "description" : "Only list this amount of tasks.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "since" : {
+ "description" : "Only list tasks since this UNIX epoch.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "source" : {
+ "default" : "archive",
+ "description" : "List archived, active or all tasks.",
+ "enum" : [
+ "archive",
+ "active",
+ "all"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "start" : {
+ "default" : 0,
+ "description" : "List tasks beginning from this offset.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "statusfilter" : {
+ "description" : "List of Task States that should be returned.",
+ "format" : "pve-task-status-type-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "typefilter" : {
+ "description" : "Only list tasks of this type (e.g., vzstart, vzdump).",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "until" : {
+ "description" : "Only list tasks until this UNIX epoch.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "userfilter" : {
+ "description" : "Only list tasks from this user.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "Only list tasks for this VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "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" : {
+ "endtime" : {
+ "optional" : 1,
+ "title" : "Endtime",
+ "type" : "integer"
+ },
+ "id" : {
+ "title" : "ID",
+ "type" : "string"
+ },
+ "node" : {
+ "title" : "Node",
+ "type" : "string"
+ },
+ "pid" : {
+ "title" : "PID",
+ "type" : "integer"
+ },
+ "pstart" : {
+ "type" : "integer"
+ },
+ "starttime" : {
+ "title" : "Starttime",
+ "type" : "integer"
+ },
+ "status" : {
+ "optional" : 1,
+ "title" : "Status",
+ "type" : "string"
+ },
+ "type" : {
+ "title" : "Type",
+ "type" : "string"
+ },
+ "upid" : {
+ "title" : "UPID",
+ "type" : "string"
+ },
+ "user" : {
+ "title" : "User",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{upid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/tasks",
+ "text" : "tasks"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Scan remote NFS server.",
+ "method" : "GET",
+ "name" : "nfsscan",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "server" : {
+ "description" : "The server address (name or IP).",
+ "format" : "pve-storage-server",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "options" : {
+ "description" : "NFS export options.",
+ "type" : "string"
},
- "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
- },
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "cidr" : {
- "type" : "string"
- },
- "digest" : {
- "type" : "string",
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 0
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "name" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "links" : [
- {
- "rel" : "child",
- "href" : "{name}"
- }
- ]
- },
- "name" : "get_aliases",
- "method" : "GET"
+ "path" : {
+ "description" : "The exported path.",
+ "type" : "string"
}
},
- "children" : [
- {
- "text" : "{name}",
- "leaf" : 1,
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}",
- "info" : {
- "DELETE" : {
- "description" : "Remove IP or Network alias.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "protected" : 1,
- "parameters" : {
- "properties" : {
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "type" : "string",
- "maxLength" : 64,
- "description" : "Alias name.",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+"
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
- },
- "method" : "DELETE",
- "name" : "remove_alias"
- },
- "GET" : {
- "description" : "Read alias.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "returns" : {
- "type" : "object"
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer"
- },
- "name" : {
- "description" : "Alias name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "name" : "read_alias",
- "method" : "GET"
- },
- "PUT" : {
- "name" : "update_alias",
- "method" : "PUT",
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "description" : "Alias name.",
- "type" : "string"
- },
- "digest" : {
- "type" : "string",
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
- "maxLength" : 40
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "rename" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "description" : "Rename an existing alias.",
- "optional" : 1
- },
- "cidr" : {
- "format" : "IPorCIDR",
- "type" : "string",
- "description" : "Network/IP specification in CIDR format."
- }
- }
- },
- "protected" : 1,
- "description" : "Update IP or Network alias.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- }
- }
- }
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/scan/nfs",
+ "text" : "nfs"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Scan remote CIFS server.",
+ "method" : "GET",
+ "name" : "cifsscan",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "domain" : {
+ "description" : "SMB domain (Workgroup).",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "password" : {
+ "description" : "User password.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "server" : {
+ "description" : "The server address (name or IP).",
+ "format" : "pve-storage-server",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "username" : {
+ "description" : "User name.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "description" : {
+ "description" : "Descriptive text from server.",
+ "type" : "string"
+ },
+ "share" : {
+ "description" : "The cifs share name.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/scan/cifs",
+ "text" : "cifs"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Scan remote Proxmox Backup Server.",
+ "method" : "GET",
+ "name" : "pbsscan",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "fingerprint" : {
+ "description" : "Certificate SHA 256 fingerprint.",
+ "optional" : 1,
+ "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "password" : {
+ "description" : "User password or API token secret.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "port" : {
+ "default" : 8007,
+ "description" : "Optional port.",
+ "maximum" : 65535,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 65535)"
+ },
+ "server" : {
+ "description" : "The server address (name or IP).",
+ "format" : "pve-storage-server",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "username" : {
+ "description" : "User-name or API token-ID.",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "description" : "Comment from server.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "store" : {
+ "description" : "The datastore name.",
+ "type" : "string"
}
- ],
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases"
+ },
+ "type" : "object"
},
- {
- "text" : "ipset",
- "leaf" : 0,
- "info" : {
- "POST" : {
- "name" : "create_ipset",
- "method" : "POST",
- "parameters" : {
- "properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
- "maxLength" : 40,
- "type" : "string"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "rename" : {
- "type" : "string",
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "maxLength" : 64,
- "optional" : 1,
- "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet."
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
- },
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "description" : "Create new IPSet",
- "protected" : 1
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/scan/pbs",
+ "text" : "pbs"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Scan remote GlusterFS server.",
+ "method" : "GET",
+ "name" : "glusterfsscan",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "server" : {
+ "description" : "The server address (name or IP).",
+ "format" : "pve-storage-server",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "volname" : {
+ "description" : "The volume name.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/scan/glusterfs",
+ "text" : "glusterfs"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Scan remote iSCSI server.",
+ "method" : "GET",
+ "name" : "iscsiscan",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "portal" : {
+ "description" : "The iSCSI portal (IP or DNS name with optional port).",
+ "format" : "pve-storage-portal-dns",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "portal" : {
+ "description" : "The iSCSI portal name.",
+ "type" : "string"
},
- "GET" : {
- "description" : "List IPSets",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "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."
- }
- }
- },
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "digest" : {
- "type" : "string",
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 0
- }
- }
- },
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{name}"
- }
- ]
- },
- "method" : "GET",
- "name" : "ipset_index"
+ "target" : {
+ "description" : "The iSCSI target name.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/scan/iscsi",
+ "text" : "iscsi"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List local LVM volume groups.",
+ "method" : "GET",
+ "name" : "lvmscan",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "vg" : {
+ "description" : "The LVM logical volume group name.",
+ "type" : "string"
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset",
- "children" : [
- {
- "text" : "{name}",
- "leaf" : 0,
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}",
- "children" : [
- {
- "info" : {
- "DELETE" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "description" : "Remove IP or Network from IPSet.",
- "protected" : 1,
- "name" : "remove_ip",
- "method" : "DELETE",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "cidr" : {
- "type" : "string",
- "format" : "IPorCIDRorAlias",
- "description" : "Network/IP specification in CIDR format."
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "digest" : {
- "optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "type" : "string"
- },
- "name" : {
- "type" : "string",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "maxLength" : 64,
- "description" : "IP set name."
- },
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- }
- }
- },
- "returns" : {
- "type" : "null"
- }
- },
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "description" : "Read IP or Network settings from IPSet.",
- "protected" : 1,
- "name" : "read_ip",
- "method" : "GET",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "type" : "string",
- "format" : "IPorCIDRorAlias"
- },
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "maxLength" : 64,
- "description" : "IP set name.",
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- }
- }
- },
- "returns" : {
- "type" : "object"
- }
- },
- "PUT" : {
- "method" : "PUT",
- "name" : "update_ip",
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "type" : "string"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "format" : "IPorCIDRorAlias",
- "type" : "string"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "digest" : {
- "type" : "string",
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "nomatch" : {
- "optional" : 1,
- "type" : "boolean"
- }
- }
- },
- "protected" : 1,
- "description" : "Update IP or Network settings",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- }
- }
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/scan/lvm",
+ "text" : "lvm"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List local LVM Thin Pools.",
+ "method" : "GET",
+ "name" : "lvmthinscan",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vg" : {
+ "maxLength" : 100,
+ "pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "lv" : {
+ "description" : "The LVM Thin Pool name (LVM logical volume).",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/scan/lvmthin",
+ "text" : "lvmthin"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Scan zfs pool list on local node.",
+ "method" : "GET",
+ "name" : "zfsscan",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "pool" : {
+ "description" : "ZFS pool name.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/scan/zfs",
+ "text" : "zfs"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Index of available scan methods",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "method" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{method}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/scan",
+ "text" : "scan"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List mediated device types for given PCI device.",
+ "method" : "GET",
+ "name" : "mdevscan",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}",
- "leaf" : 1,
- "text" : "{cidr}"
+ "pciid" : {
+ "description" : "The PCI ID to list the mdev types for.",
+ "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
+ "type" : "string"
+ }
}
- ],
- "info" : {
- "GET" : {
- "name" : "get_ipset",
- "method" : "GET",
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{cidr}"
- }
- ],
- "items" : {
- "properties" : {
- "cidr" : {
- "type" : "string"
- },
- "digest" : {
- "maxLength" : 40,
- "optional" : 0,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "type" : "string"
- },
- "nomatch" : {
- "optional" : 1,
- "type" : "boolean"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- }
- },
- "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "available" : {
+ "description" : "The number of still available instances of this type.",
+ "type" : "integer"
},
- "type" : "array"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "name" : {
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "description" : "IP set name.",
- "maxLength" : 64,
- "type" : "string"
- }
+ "description" : {
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "The name of the mdev type.",
+ "type" : "string"
}
},
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
- },
- "description" : "List IPSet content"
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/hardware/pci/{pciid}/mdev",
+ "text" : "mdev"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Index of available pci methods",
+ "method" : "GET",
+ "name" : "pciindex",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pciid" : {
+ "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "method" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{method}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/hardware/pci/{pciid}",
+ "text" : "{pciid}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List local PCI devices.",
+ "method" : "GET",
+ "name" : "pciscan",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pci-class-blacklist" : {
+ "default" : "05;06;0b",
+ "description" : "A list of blacklisted PCI classes, which will not be returned. Following are filtered by default: Memory Controller (05), Bridge (06) and Processor (0b).",
+ "format" : "string-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "verbose" : {
+ "default" : 1,
+ "description" : "If disabled, does only print the PCI IDs. Otherwise, additional information like vendor and device will be returned.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "class" : {
+ "description" : "The PCI Class of the device.",
+ "type" : "string"
+ },
+ "device" : {
+ "description" : "The Device ID.",
+ "type" : "string"
+ },
+ "device_name" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "id" : {
+ "description" : "The PCI ID.",
+ "type" : "string"
+ },
+ "iommugroup" : {
+ "description" : "The IOMMU group in which the device is in. If no IOMMU group is detected, it is set to -1.",
+ "type" : "integer"
+ },
+ "mdev" : {
+ "description" : "If set, marks that the device is capable of creating mediated devices.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "subsystem_device" : {
+ "description" : "The Subsystem Device ID.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "subsystem_device_name" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "subsystem_vendor" : {
+ "description" : "The Subsystem Vendor ID.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "subsystem_vendor_name" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vendor" : {
+ "description" : "The Vendor ID.",
+ "type" : "string"
+ },
+ "vendor_name" : {
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{id}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/hardware/pci",
+ "text" : "pci"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List local USB devices.",
+ "method" : "GET",
+ "name" : "usbscan",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "busnum" : {
+ "type" : "integer"
+ },
+ "class" : {
+ "type" : "integer"
+ },
+ "devnum" : {
+ "type" : "integer"
+ },
+ "level" : {
+ "type" : "integer"
+ },
+ "manufacturer" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "port" : {
+ "type" : "integer"
+ },
+ "prodid" : {
+ "type" : "string"
+ },
+ "product" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "serial" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "speed" : {
+ "type" : "string"
+ },
+ "usbpath" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vendid" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/hardware/usb",
+ "text" : "usb"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Index of hardware types",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "type" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{type}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/hardware",
+ "text" : "hardware"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List all custom and default CPU models.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Only returns custom models when the current user has Sys.Audit on /nodes.",
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "custom" : {
+ "description" : "True if this is a custom CPU model.",
+ "type" : "boolean"
},
- "DELETE" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- },
- "description" : "Delete IPSet",
- "protected" : 1,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
- },
- "name" : {
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "description" : "IP set name.",
- "maxLength" : 64,
- "type" : "string"
- }
- }
- },
- "returns" : {
- "type" : "null"
- },
- "method" : "DELETE",
- "name" : "delete_ipset"
+ "name" : {
+ "description" : "Name of the CPU model. Identifies it for subsequent API calls. Prefixed with 'custom-' for custom models.",
+ "type" : "string"
+ },
+ "vendor" : {
+ "description" : "CPU vendor visible to the guest when this model is selected. Vendor of 'reported-model' in case of custom models.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/capabilities/qemu/cpu",
+ "text" : "cpu"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get available QEMU/KVM machine types.",
+ "method" : "GET",
+ "name" : "types",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "additionalProperties" : 1,
+ "properties" : {
+ "id" : {
+ "description" : "Full name of machine type and version.",
+ "type" : "string"
},
- "POST" : {
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "name" : {
- "type" : "string",
- "description" : "IP set name.",
- "maxLength" : 64,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer"
- },
- "cidr" : {
- "type" : "string",
- "format" : "IPorCIDRorAlias",
- "description" : "Network/IP specification in CIDR format."
- },
- "nomatch" : {
- "type" : "boolean",
- "optional" : 1
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- }
- },
- "method" : "POST",
- "name" : "create_ip",
- "protected" : 1,
- "description" : "Add IP or Network to IPSet.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
- }
+ "type" : {
+ "description" : "The machine type.",
+ "enum" : [
+ "q35",
+ "i440fx"
+ ],
+ "type" : "string"
+ },
+ "version" : {
+ "description" : "The machine version.",
+ "type" : "string"
}
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/capabilities/qemu/machines",
+ "text" : "machines"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "QEMU capabilities index.",
+ "method" : "GET",
+ "name" : "qemu_caps_index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/capabilities/qemu",
+ "text" : "qemu"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Node capabilities index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/capabilities",
+ "text" : "capabilities"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Prune backups. Only those using the standard naming scheme are considered.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "prune-backups" : {
+ "description" : "Use these retention options instead of those from the storage configuration.",
+ "format" : "prune-backups",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
+ "enum" : [
+ "qemu",
+ "lxc"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "Only prune backups for this VM.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
}
}
- ]
+ },
+ "permissions" : {
+ "description" : "You need the 'Datastore.Allocate' privilege on the storage (or if a VM ID is specified, 'Datastore.AllocateSpace' and 'VM.Backup' for the VM).",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
},
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get prune information for backups. NOTE: this is only a preview and might not be what a subsequent prune call does if backups are removed/added in the meantime.",
+ "method" : "GET",
+ "name" : "dryrun",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "prune-backups" : {
+ "description" : "Use these retention options instead of those from the storage configuration.",
+ "format" : "prune-backups",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
+ "enum" : [
+ "qemu",
+ "lxc"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "Only consider backups for this guest.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.Audit",
+ "Datastore.AllocateSpace"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "ctime" : {
+ "description" : "Creation time of the backup (seconds since the UNIX epoch).",
+ "type" : "integer"
+ },
+ "mark" : {
+ "description" : "Whether the backup would be kept or removed. Backups that are protected or don't use the standard naming scheme are not removed.",
+ "enum" : [
+ "keep",
+ "remove",
+ "protected",
+ "renamed"
+ ],
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "One of 'qemu', 'lxc', 'openvz' or 'unknown'.",
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "The VM the backup belongs to.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "volid" : {
+ "description" : "Backup volume ID.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/storage/{storage}/prunebackups",
+ "text" : "prunebackups"
+ },
+ {
+ "children" : [
{
- "leaf" : 1,
- "text" : "options",
"info" : {
- "PUT" : {
- "name" : "set_options",
- "method" : "PUT",
- "returns" : {
- "type" : "null"
- },
- "description" : "Set Firewall options.",
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete volume",
+ "method" : "DELETE",
+ "name" : "delete",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "policy_out" : {
- "type" : "string",
- "description" : "Output policy.",
- "optional" : 1,
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ]
- },
- "macfilter" : {
- "description" : "Enable/disable MAC address filter.",
- "optional" : 1,
- "type" : "boolean"
- },
- "policy_in" : {
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
- "optional" : 1,
- "description" : "Input policy.",
- "type" : "string"
- },
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
+ "delay" : {
+ "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
+ "maximum" : 30,
"minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer"
- },
- "dhcp" : {
- "optional" : 1,
- "description" : "Enable DHCP.",
- "type" : "boolean"
- },
- "ndp" : {
- "type" : "boolean",
- "description" : "Enable NDP.",
- "optional" : 1
- },
- "ipfilter" : {
- "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
- "optional" : 1,
- "type" : "boolean"
- },
- "log_level_in" : {
- "optional" : 1,
- "description" : "Log level for incoming traffic.",
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ],
- "type" : "string"
- },
- "enable" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable/disable firewall rules."
- },
- "digest" : {
"optional" : 1,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "type" : "string"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 30)"
},
- "log_level_out" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ],
- "description" : "Log level for outgoing traffic.",
- "optional" : 1
+ "typetext" : "<string>"
},
- "radv" : {
- "description" : "Allow sending Router Advertisement.",
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
"optional" : 1,
- "type" : "boolean"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "delete" : {
+ "volume" : {
+ "description" : "Volume identifier",
"type" : "string",
- "format" : "pve-configid-list",
- "optional" : 1,
- "description" : "A list of settings you want to delete."
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
"permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Config.Network"
- ]
- ]
+ "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
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "optional" : 1,
+ "type" : "string"
+ }
},
"GET" : {
+ "allowtoken" : 1,
+ "description" : "Get volume attributes",
+ "method" : "GET",
+ "name" : "info",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "volume" : {
+ "description" : "Volume identifier",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
"permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
+ "description" : "You need read access for the volume.",
+ "user" : "all"
},
- "description" : "Get VM firewall options.",
- "method" : "GET",
- "name" : "get_options",
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"properties" : {
- "policy_out" : {
- "optional" : 1,
- "description" : "Output policy.",
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
+ "format" : {
+ "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
"type" : "string"
},
- "ipfilter" : {
- "type" : "boolean",
+ "notes" : {
+ "description" : "Optional notes.",
"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"
+ "path" : {
+ "description" : "The Path",
+ "type" : "string"
},
- "ndp" : {
+ "protected" : {
+ "description" : "Protection status. Currently only supported for backups.",
"optional" : 1,
- "description" : "Enable NDP.",
"type" : "boolean"
},
- "policy_in" : {
- "type" : "string",
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
- "description" : "Input policy.",
- "optional" : 1
- },
- "macfilter" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable/disable MAC address filter."
- },
- "enable" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable/disable firewall rules."
+ "size" : {
+ "description" : "Volume size in bytes.",
+ "renderer" : "bytes",
+ "type" : "integer"
},
- "log_level_in" : {
+ "used" : {
+ "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
+ "renderer" : "bytes",
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "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",
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ],
- "description" : "Log level for incoming traffic.",
- "optional" : 1
- },
- "radv" : {
- "optional" : 1,
- "description" : "Allow sending Router Advertisement.",
- "type" : "boolean"
+ "typetext" : "<string>"
},
- "log_level_out" : {
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ],
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
"optional" : 1,
- "description" : "Log level for outgoing traffic.",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "target" : {
+ "description" : "Target volume identifier",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "target_node" : {
+ "description" : "Target node. Default is local node.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "volume" : {
+ "description" : "Source volume identifier",
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "type" : "object"
+ }
},
+ "protected" : 1,
"proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update volume attributes",
+ "method" : "PUT",
+ "name" : "updateattributes",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
+ },
+ "notes" : {
+ "description" : "The new notes.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "protected" : {
+ "description" : "Protection status. Currently only supported for backups.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "volume" : {
+ "description" : "Volume identifier",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
+ },
+ "permissions" : {
+ "description" : "You need read access for the volume.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/options"
- },
- {
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/log",
- "info" : {
- "GET" : {
- "name" : "log",
- "method" : "GET",
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
+ "leaf" : 1,
+ "path" : "/nodes/{node}/storage/{storage}/content/{volume}",
+ "text" : "{volume}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List storage content.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "content" : {
+ "description" : "Only list content of this type.",
+ "format" : "pve-storage-content",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "Only list images for this VM",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.Audit",
+ "Datastore.AllocateSpace"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "ctime" : {
+ "description" : "Creation time (seconds since the UNIX Epoch).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "encrypted" : {
+ "description" : "If whole backup is encrypted, value is the fingerprint or '1' if encrypted. Only useful for the Proxmox Backup Server storage type.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "format" : {
+ "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
+ "type" : "string"
+ },
+ "notes" : {
+ "description" : "Optional notes. If they contain multiple lines, only the first one is returned here.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "parent" : {
+ "description" : "Volume identifier of parent (for linked cloned).",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "protected" : {
+ "description" : "Protection status. Currently only supported for backups.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "size" : {
+ "description" : "Volume size in bytes.",
+ "renderer" : "bytes",
+ "type" : "integer"
+ },
+ "used" : {
+ "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
+ "optional" : 1,
+ "renderer" : "bytes",
+ "type" : "integer"
+ },
+ "verification" : {
+ "description" : "Last backup verification result, only useful for PBS storages.",
+ "optional" : 1,
"properties" : {
- "t" : {
- "description" : "Line text",
+ "state" : {
+ "description" : "Last backup verification state.",
"type" : "string"
},
- "n" : {
- "description" : "Line number",
- "type" : "integer"
+ "upid" : {
+ "description" : "Last backup verification UPID.",
+ "type" : "string"
}
- }
+ },
+ "type" : "object"
+ },
+ "vmid" : {
+ "description" : "Associated Owner VMID.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "volid" : {
+ "description" : "Volume identifier.",
+ "type" : "string"
}
},
- "description" : "Read firewall log",
- "proxyto" : "node",
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{volid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Allocate disk images.",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "filename" : {
+ "description" : "The name of the file to create.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "format" : {
+ "enum" : [
+ "raw",
+ "qcow2",
+ "subvol"
+ ],
+ "optional" : 1,
+ "requires" : "size",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "size" : {
+ "description" : "Size in kilobyte (1024 bytes). Optional suffixes 'M' (megabyte, 1024K) and 'G' (gigabyte, 1024M)",
+ "pattern" : "\\d+[MG]?",
+ "type" : "string"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "Specify owner VM",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.AllocateSpace"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Volume identifier",
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/storage/{storage}/content",
+ "text" : "content"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List files and directories for single file restore under the given path.",
+ "method" : "GET",
+ "name" : "list",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "filepath" : {
+ "description" : "base64-path to the directory or file being listed, or \"/\".",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
- },
- "limit" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1
+ "type" : "string",
+ "typetext" : "<string>"
},
- "start" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
+ "volume" : {
+ "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
+ "permissions" : {
+ "description" : "You need read access for the volume.",
+ "user" : "all"
+ },
"protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Console"
- ]
- ]
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "filepath" : {
+ "description" : "base64 path of the current entry",
+ "type" : "string"
+ },
+ "leaf" : {
+ "description" : "If this entry is a leaf in the directory graph.",
+ "type" : "boolean"
+ },
+ "mtime" : {
+ "description" : "Entry last-modified time (unix timestamp).",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "size" : {
+ "description" : "Entry file size.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "text" : {
+ "description" : "Entry display text.",
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "Entry type.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
}
}
},
- "text" : "log",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/storage/{storage}/file-restore/list",
+ "text" : "list"
},
{
- "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.",
+ "allowtoken" : 1,
+ "description" : "Extract a file or directory (as zip archive) from a PBS backup.",
"method" : "GET",
- "name" : "refs",
+ "name" : "download",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "type" : {
+ "filepath" : {
+ "description" : "base64-path to the directory or file to download.",
"type" : "string",
- "enum" : [
- "alias",
- "ipset"
- ],
- "description" : "Only list references of specified type.",
- "optional" : 1
- },
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
+ "typetext" : "<string>"
},
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "volume" : {
+ "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "description" : "You need read access for the volume.",
+ "user" : "all"
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "name" : {
- "type" : "string"
- },
- "type" : {
- "type" : "string",
- "enum" : [
- "alias",
- "ipset"
- ]
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- }
- }
- }
+ "type" : "any"
}
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/firewall/refs"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/storage/{storage}/file-restore/download",
+ "text" : "download"
}
],
- "path" : "/nodes/{node}/lxc/{vmid}/firewall",
+ "leaf" : 0,
+ "path" : "/nodes/{node}/storage/{storage}/file-restore",
+ "text" : "file-restore"
+ },
+ {
"info" : {
"GET" : {
- "permissions" : {
- "user" : "all"
- },
- "description" : "Directory index.",
+ "allowtoken" : 1,
+ "description" : "Read storage status.",
"method" : "GET",
- "name" : "index",
+ "name" : "read_status",
"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"
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.Audit",
+ "Datastore.AllocateSpace"
+ ],
+ "any",
+ 1
+ ]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ],
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- }
+ "type" : "object"
}
}
},
- "text" : "firewall",
- "leaf" : 0
+ "leaf" : 1,
+ "path" : "/nodes/{node}/storage/{storage}/status",
+ "text" : "status"
},
{
- "text" : "rrd",
- "leaf" : 1,
- "path" : "/nodes/{node}/lxc/{vmid}/rrd",
"info" : {
"GET" : {
- "protected" : 1,
+ "allowtoken" : 1,
+ "description" : "Read storage RRD statistics (returns PNG).",
+ "method" : "GET",
+ "name" : "rrd",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cf" : {
+ "description" : "The RRD consolidation function",
+ "enum" : [
+ "AVERAGE",
+ "MAX"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ds" : {
+ "description" : "The list of datasources you want to display.",
+ "format" : "pve-configid-list",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "timeframe" : {
+ "description" : "Specify the time frame you are interested in.",
+ "enum" : [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "type" : "string"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
- "/vms/{vmid}",
+ "/storage/{storage}",
[
- "VM.Audit"
- ]
+ "Datastore.Audit",
+ "Datastore.AllocateSpace"
+ ],
+ "any",
+ 1
]
},
- "description" : "Read VM RRD statistics (returns PNG)",
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "type" : "object",
"properties" : {
"filename" : {
"type" : "string"
}
- }
- },
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/storage/{storage}/rrd",
+ "text" : "rrd"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read storage RRD statistics.",
+ "method" : "GET",
+ "name" : "rrddata",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
"cf" : {
- "optional" : 1,
"description" : "The RRD consolidation function",
"enum" : [
"AVERAGE",
"MAX"
],
+ "optional" : 1,
"type" : "string"
},
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"timeframe" : {
"description" : "Specify the time frame you are interested in.",
"enum" : [
"year"
],
"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."
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.Audit",
+ "Datastore.AllocateSpace"
+ ],
+ "any",
+ 1
+ ]
},
- "method" : "GET",
- "name" : "rrd"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/storage/{storage}/rrddata",
+ "text" : "rrddata"
},
{
- "text" : "rrddata",
- "leaf" : 1,
"info" : {
- "GET" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Upload templates and ISO images.",
+ "method" : "POST",
+ "name" : "upload",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "timeframe" : {
- "description" : "Specify the time frame you are interested in.",
+ "checksum" : {
+ "description" : "The expected checksum of the file.",
+ "optional" : 1,
+ "requires" : "checksum-algorithm",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "checksum-algorithm" : {
+ "description" : "The algorithm to calculate the checksum of the file.",
"enum" : [
- "hour",
- "day",
- "week",
- "month",
- "year"
+ "md5",
+ "sha1",
+ "sha224",
+ "sha256",
+ "sha384",
+ "sha512"
],
+ "optional" : 1,
+ "requires" : "checksum",
"type" : "string"
},
- "cf" : {
+ "content" : {
+ "description" : "Content type.",
"enum" : [
- "AVERAGE",
- "MAX"
+ "iso",
+ "vztmpl"
],
- "optional" : 1,
- "description" : "The RRD consolidation function",
+ "format" : "pve-storage-content",
"type" : "string"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1
+ "filename" : {
+ "description" : "The name of the file to create. Caution: This will be normalized!",
+ "maxLength" : 255,
+ "type" : "string",
+ "typetext" : "<string>"
},
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tmpfilename" : {
+ "description" : "The source file name. This parameter is usually set by the REST handler. You can only overwrite it when connecting to the trusted port on localhost.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
}
},
- "method" : "GET",
- "name" : "rrddata",
"permissions" : {
"check" : [
"perm",
- "/vms/{vmid}",
+ "/storage/{storage}",
[
- "VM.Audit"
+ "Datastore.AllocateTemplate"
]
]
},
- "description" : "Read VM RRD statistics",
- "protected" : 1
+ "protected" : 1,
+ "returns" : {
+ "type" : "string"
+ }
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/rrddata"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/storage/{storage}/upload",
+ "text" : "upload"
},
{
"info" : {
"POST" : {
- "description" : "Creates a TCP VNC proxy connections.",
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Console"
- ]
- ]
- },
- "protected" : 1,
- "name" : "vncproxy",
+ "allowtoken" : 1,
+ "description" : "Download templates and ISO images by using an URL.",
"method" : "POST",
+ "name" : "download_url",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "websocket" : {
- "description" : "use websocket instead of standard VNC.",
+ "checksum" : {
+ "description" : "The expected checksum of the file.",
"optional" : 1,
- "type" : "boolean"
- },
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "properties" : {
- "upid" : {
- "type" : "string"
- },
- "ticket" : {
- "type" : "string"
+ "requires" : "checksum-algorithm",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "user" : {
+ "checksum-algorithm" : {
+ "description" : "The algorithm to calculate the checksum of the file.",
+ "enum" : [
+ "md5",
+ "sha1",
+ "sha224",
+ "sha256",
+ "sha384",
+ "sha512"
+ ],
+ "optional" : 1,
+ "requires" : "checksum",
"type" : "string"
},
- "cert" : {
+ "content" : {
+ "description" : "Content type.",
+ "enum" : [
+ "iso",
+ "vztmpl"
+ ],
+ "format" : "pve-storage-content",
"type" : "string"
},
- "port" : {
- "type" : "integer"
- }
- },
- "additionalProperties" : 0
- }
- }
- },
- "path" : "/nodes/{node}/lxc/{vmid}/vncproxy",
- "leaf" : 1,
- "text" : "vncproxy"
- },
- {
- "path" : "/nodes/{node}/lxc/{vmid}/vncwebsocket",
- "info" : {
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Console"
- ]
- ],
- "description" : "You also need to pass a valid ticket (vncticket)."
- },
- "description" : "Opens a weksocket for VNC traffic.",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "port" : {
- "maximum" : 5999,
- "type" : "integer",
- "minimum" : 5900,
- "description" : "Port number returned by previous vncproxy call."
+ "filename" : {
+ "description" : "The name of the file to create. Caution: This will be normalized!",
+ "maxLength" : 255,
+ "type" : "string",
+ "typetext" : "<string>"
},
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
- "vncticket" : {
- "description" : "Ticket from previous call to vncproxy.",
- "maxLength" : 512,
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "url" : {
+ "description" : "The URL to download the file from.",
+ "pattern" : "https?://.*",
"type" : "string"
+ },
+ "verify-certificates" : {
+ "default" : 1,
+ "description" : "If false, no SSL/TLS certificates will be verified.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
}
},
+ "permissions" : {
+ "check" : [
+ "and",
+ [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.AllocateTemplate"
+ ]
+ ],
+ [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Sys.Modify"
+ ]
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "type" : "object",
- "properties" : {
- "port" : {
- "type" : "string"
- }
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/storage/{storage}/download-url",
+ "text" : "download-url"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "",
+ "method" : "GET",
+ "name" : "diridx",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.Audit",
+ "Datastore.AllocateSpace"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "type" : "string"
}
},
- "method" : "GET",
- "name" : "vncwebsocket"
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/storage/{storage}",
+ "text" : "{storage}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get status for all datastores.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "content" : {
+ "description" : "Only list stores which support this content type.",
+ "format" : "pve-storage-content-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enabled" : {
+ "default" : 0,
+ "description" : "Only list stores which are enabled (not disabled in config).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "format" : {
+ "default" : 0,
+ "description" : "Include information about formats",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "Only list status for specified storage",
+ "format" : "pve-storage-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "target" : {
+ "description" : "If target is different to 'node', we only lists shared storages which content is accessible on this 'node' and the specified 'target' node.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "active" : {
+ "description" : "Set when storage is accessible.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "avail" : {
+ "description" : "Available storage space in bytes.",
+ "optional" : 1,
+ "renderer" : "bytes",
+ "type" : "integer"
+ },
+ "content" : {
+ "description" : "Allowed storage content types.",
+ "format" : "pve-storage-content-list",
+ "type" : "string"
+ },
+ "enabled" : {
+ "description" : "Set when storage is enabled (not disabled).",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "shared" : {
+ "description" : "Shared flag from storage configuration.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string"
+ },
+ "total" : {
+ "description" : "Total storage space in bytes.",
+ "optional" : 1,
+ "renderer" : "bytes",
+ "type" : "integer"
+ },
+ "type" : {
+ "description" : "Storage type.",
+ "type" : "string"
+ },
+ "used" : {
+ "description" : "Used storage space in bytes.",
+ "optional" : 1,
+ "renderer" : "bytes",
+ "type" : "integer"
+ },
+ "used_fraction" : {
+ "description" : "Used fraction (used/total).",
+ "optional" : 1,
+ "renderer" : "fraction_as_percentage",
+ "type" : "number"
}
},
- "text" : "vncwebsocket",
- "leaf" : 1
+ "type" : "object"
},
+ "links" : [
+ {
+ "href" : "{storage}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/storage",
+ "text" : "storage"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
{
- "path" : "/nodes/{node}/lxc/{vmid}/spiceproxy",
"info" : {
- "POST" : {
- "proxyto" : "node",
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Remove an LVM Volume Group.",
+ "method" : "DELETE",
+ "name" : "delete",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "cleanup-config" : {
+ "default" : 0,
+ "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "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).",
+ "cleanup-disks" : {
+ "default" : 0,
+ "description" : "Also wipe disks so they can be repurposed afterwards.",
"optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "name" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
"type" : "string",
- "format" : "address"
+ "typetext" : "<string>"
},
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
}
}
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
- "/vms/{vmid}",
+ "/",
[
- "VM.Console"
+ "Sys.Modify",
+ "Datastore.Allocate"
]
]
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "properties" : {
- "type" : {
- "type" : "string"
- },
- "password" : {
- "type" : "string"
- },
- "proxy" : {
- "type" : "string"
- },
- "host" : {
- "type" : "string"
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/disks/lvm/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List LVM Volume Groups",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "children" : {
+ "items" : {
+ "properties" : {
+ "children" : {
+ "description" : "The underlying physical volumes",
+ "items" : {
+ "properties" : {
+ "free" : {
+ "description" : "The free bytes in the physical volume",
+ "type" : "integer"
+ },
+ "leaf" : {
+ "type" : "boolean"
+ },
+ "name" : {
+ "description" : "The name of the physical volume",
+ "type" : "string"
+ },
+ "size" : {
+ "description" : "The size of the physical volume in bytes",
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
+ "free" : {
+ "description" : "The free bytes in the volume group",
+ "type" : "integer"
+ },
+ "leaf" : {
+ "type" : "boolean"
+ },
+ "name" : {
+ "description" : "The name of the volume group",
+ "type" : "string"
+ },
+ "size" : {
+ "description" : "The size of the volume group in bytes",
+ "type" : "integer"
+ }
},
- "tls-port" : {
- "type" : "integer"
- }
+ "type" : "object"
},
- "additionalProperties" : 1,
- "description" : "Returned values can be directly passed to the 'remote-viewer' application."
+ "type" : "array"
},
- "method" : "POST",
- "name" : "spiceproxy",
- "description" : "Returns a SPICE configuration to connect to the CT."
+ "leaf" : {
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create an LVM Volume Group",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "add_storage" : {
+ "default" : 0,
+ "description" : "Configure storage using the Volume Group",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "device" : {
+ "description" : "The block device you want to create the volume group on",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
}
},
- "text" : "spiceproxy",
- "leaf" : 1
- },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify",
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/disks/lvm",
+ "text" : "lvm"
+ },
+ {
+ "children" : [
{
- "text" : "migrate",
- "leaf" : 1,
"info" : {
- "POST" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Remove an LVM thin pool.",
+ "method" : "DELETE",
+ "name" : "delete",
"parameters" : {
- "properties" : {
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid"
+ "additionalProperties" : 0,
+ "properties" : {
+ "cleanup-config" : {
+ "default" : 0,
+ "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "online" : {
+ "cleanup-disks" : {
+ "default" : 0,
+ "description" : "Also wipe disks so they can be repurposed afterwards.",
"optional" : 1,
- "description" : "Use online/live migration.",
- "type" : "boolean"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "name" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
},
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "force" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Force migration despite local bind / device mounts. WARNING: identical bind / device mounts need to be available on the target node."
- },
- "target" : {
+ "volume-group" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
"type" : "string",
- "format" : "pve-node",
- "description" : "Target node."
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
- "/vms/{vmid}",
+ "/",
[
- "VM.Migrate"
+ "Sys.Modify",
+ "Datastore.Allocate"
]
]
},
"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"
- },
- {
- "text" : "feature",
"leaf" : 1,
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "vm_feature",
- "returns" : {
- "properties" : {
- "hasFeature" : {
- "type" : "boolean"
- }
+ "path" : "/nodes/{node}/disks/lvmthin/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List LVM thinpools",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "lv" : {
+ "description" : "The name of the thinpool.",
+ "type" : "string"
},
- "type" : "object"
+ "lv_size" : {
+ "description" : "The size of the thinpool in bytes.",
+ "type" : "integer"
+ },
+ "metadata_size" : {
+ "description" : "The size of the metadata lv in bytes.",
+ "type" : "integer"
+ },
+ "metadata_used" : {
+ "description" : "The used bytes of the metadata lv.",
+ "type" : "integer"
+ },
+ "used" : {
+ "description" : "The used bytes of the thinpool.",
+ "type" : "integer"
+ },
+ "vg" : {
+ "description" : "The associated volume group.",
+ "type" : "string"
+ }
},
- "description" : "Check if feature for virtual machine is available.",
- "proxyto" : "node",
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create an LVM thinpool",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "add_storage" : {
+ "default" : 0,
+ "description" : "Configure storage using the thinpool.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "device" : {
+ "description" : "The block device you want to create the thinpool on.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify",
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/disks/lvmthin",
+ "text" : "lvmthin"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Unmounts the storage and removes the mount unit.",
+ "method" : "DELETE",
+ "name" : "delete",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "snapname" : {
- "maxLength" : 40,
- "description" : "The name of the snapshot.",
+ "cleanup-config" : {
+ "default" : 0,
+ "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
"optional" : 1,
- "type" : "string",
- "format" : "pve-configid"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "feature" : {
- "description" : "Feature to check.",
- "enum" : [
- "snapshot"
- ],
- "type" : "string"
+ "cleanup-disks" : {
+ "default" : 0,
+ "description" : "Also wipe disk so it can be repurposed afterwards.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "name" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
},
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
- },
- "vmid" : {
- "minimum" : 1,
- "type" : "integer",
- "format" : "pve-vmid",
- "description" : "The (unique) ID of the VM."
+ "type" : "string",
+ "typetext" : "<string>"
}
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify",
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/disks/directory/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "PVE Managed Directory storages.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "device" : {
+ "description" : "The mounted device.",
+ "type" : "string"
+ },
+ "options" : {
+ "description" : "The mount options.",
+ "type" : "string"
+ },
+ "path" : {
+ "description" : "The mount path.",
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "The filesystem type.",
+ "type" : "string"
},
- "additionalProperties" : 0
+ "unitfile" : {
+ "description" : "The path of the mount unit.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a Filesystem on an unused disk. Will be mounted under '/mnt/pve/NAME'.",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "add_storage" : {
+ "default" : 0,
+ "description" : "Configure storage using the directory.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "device" : {
+ "description" : "The block device you want to create the filesystem on.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "filesystem" : {
+ "default" : "ext4",
+ "description" : "The desired filesystem.",
+ "enum" : [
+ "ext4",
+ "xfs"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "permissions" : {
- "check" : [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Audit"
- ]
- ]
+ "name" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "protected" : 1
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/feature"
- },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify",
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/disks/directory",
+ "text" : "directory"
+ },
+ {
+ "children" : [
{
- "path" : "/nodes/{node}/lxc/{vmid}/template",
"info" : {
- "POST" : {
- "returns" : {
- "type" : "null"
- },
- "name" : "template",
- "method" : "POST",
- "description" : "Create a Template.",
- "proxyto" : "node",
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Destroy a ZFS pool.",
+ "method" : "DELETE",
+ "name" : "delete",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "cleanup-config" : {
+ "default" : 0,
+ "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "cleanup-disks" : {
+ "default" : 0,
+ "description" : "Also wipe disks so they can be repurposed afterwards.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "name" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<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
- },
- "experimental" : {
- "type" : "boolean",
- "default" : 0,
- "description" : "The template feature is experimental, set this flag if you know what you are doing."
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "protected" : 1,
"permissions" : {
- "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}",
"check" : [
"perm",
- "/vms/{vmid}",
- [
- "VM.Allocate"
- ]
- ]
- }
- }
- },
- "leaf" : 1,
- "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"
- },
- "permissions" : {
- "description" : "You need 'VM.Clone' permissions on /vms/{vmid}, and 'VM.Allocate' permissions on /vms/{newid} (or on the VM pool /pool/{pool}). You also need 'Datastore.AllocateSpace' on any used storage.",
- "check" : [
- "and",
- [
- "perm",
- "/vms/{vmid}",
- [
- "VM.Clone"
- ]
- ],
+ "/",
[
- "or",
- [
- "perm",
- "/vms/{newid}",
- [
- "VM.Allocate"
- ]
- ],
- [
- "perm",
- "/pool/{pool}",
- [
- "VM.Allocate"
- ],
- "require_param",
- "pool"
- ]
+ "Sys.Modify",
+ "Datastore.Allocate"
]
]
},
"protected" : 1,
"proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get details about a zpool.",
+ "method" : "GET",
+ "name" : "detail",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "storage" : {
- "requires" : "full",
- "type" : "string",
+ "name" : {
+ "description" : "The storage identifier.",
"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"
+ "typetext" : "<string>"
},
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
- },
- "pool" : {
- "optional" : 1,
- "description" : "Add the new CT to the specified pool.",
- "format" : "pve-poolid",
- "type" : "string"
- },
- "snapname" : {
- "optional" : 1,
- "description" : "The name of the snapshot.",
- "maxLength" : 40,
"type" : "string",
- "format" : "pve-configid"
- },
- "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"
+ "typetext" : "<string>"
}
}
- }
- }
- }
- },
- {
- "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"
+ "Sys.Audit",
+ "Datastore.Audit"
],
"any",
1
]
},
"protected" : 1,
- "parameters" : {
+ "proxyto" : "node",
+ "returns" : {
"properties" : {
- "vmid" : {
- "format" : "pve-vmid",
- "type" : "integer",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
+ "action" : {
+ "description" : "Information about the recommended action to fix the state.",
+ "optional" : 1,
+ "type" : "string"
},
- "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.",
+ "children" : {
+ "description" : "The pool configuration information, including the vdevs for each section (e.g. spares, cache), may be nested.",
+ "items" : {
+ "properties" : {
+ "cksum" : {
+ "optional" : 1,
+ "type" : "number"
+ },
+ "msg" : {
+ "description" : "An optional message about the vdev.",
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "The name of the vdev or section.",
+ "type" : "string"
+ },
+ "read" : {
+ "optional" : 1,
+ "type" : "number"
+ },
+ "state" : {
+ "description" : "The state of the vdev.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "write" : {
+ "optional" : 1,
+ "type" : "number"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ },
+ "errors" : {
+ "description" : "Information about the errors on the zpool.",
"type" : "string"
},
- "digest" : {
- "type" : "string",
- "maxLength" : 40,
+ "name" : {
+ "description" : "The name of the zpool.",
+ "type" : "string"
+ },
+ "scan" : {
+ "description" : "Information about the last/current scrub.",
"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",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ "state" : {
+ "description" : "The state of the zpool.",
+ "type" : "string"
},
- "disk" : {
- "type" : "string",
- "enum" : [
- "rootfs",
- "mp0",
- "mp1",
- "mp2",
- "mp3",
- "mp4",
- "mp5",
- "mp6",
- "mp7",
- "mp8",
- "mp9"
- ],
- "description" : "The disk you want to resize."
+ "status" : {
+ "description" : "Information about the state of the zpool.",
+ "optional" : 1,
+ "type" : "string"
}
},
- "additionalProperties" : 0
- },
- "proxyto" : "node"
+ "type" : "object"
+ }
}
},
- "path" : "/nodes/{node}/lxc/{vmid}/resize"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/disks/zfs/{name}",
+ "text" : "{name}"
}
],
"info" : {
- "DELETE" : {
- "name" : "destroy_vm",
- "method" : "DELETE",
- "returns" : {
- "type" : "string"
- },
- "description" : "Destroy the container (also delete all uses files).",
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List Zpools.",
+ "method" : "GET",
+ "name" : "index",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "vmid" : {
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer",
- "description" : "The (unique) ID of the VM."
- },
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
- "/vms/{vmid}",
+ "/",
[
- "VM.Allocate"
- ]
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
]
- }
- },
- "GET" : {
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "type" : "array",
"items" : {
- "type" : "object",
"properties" : {
- "subdir" : {
+ "alloc" : {
+ "description" : "",
+ "type" : "integer"
+ },
+ "dedup" : {
+ "description" : "",
+ "type" : "number"
+ },
+ "frag" : {
+ "description" : "",
+ "type" : "integer"
+ },
+ "free" : {
+ "description" : "",
+ "type" : "integer"
+ },
+ "health" : {
+ "description" : "",
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "",
"type" : "string"
+ },
+ "size" : {
+ "description" : "",
+ "type" : "integer"
}
- }
+ },
+ "type" : "object"
},
"links" : [
{
- "href" : "{subdir}",
+ "href" : "{name}",
"rel" : "child"
}
- ]
- },
- "proxyto" : "node",
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a ZFS pool.",
+ "method" : "POST",
+ "name" : "create",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "add_storage" : {
+ "default" : 0,
+ "description" : "Configure storage using the zpool.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "ashift" : {
+ "default" : 12,
+ "description" : "Pool sector size exponent.",
+ "maximum" : 16,
+ "minimum" : 9,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (9 - 16)"
+ },
+ "compression" : {
+ "default" : "on",
+ "description" : "The compression algorithm to use.",
+ "enum" : [
+ "on",
+ "off",
+ "gzip",
+ "lz4",
+ "lzjb",
+ "zle",
+ "zstd"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "devices" : {
+ "description" : "The block devices you want to create the zpool on.",
+ "format" : "string-list",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
- "vmid" : {
- "description" : "The (unique) ID of the VM.",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
+ "raidlevel" : {
+ "description" : "The RAID level to use.",
+ "enum" : [
+ "single",
+ "mirror",
+ "raid10",
+ "raidz",
+ "raidz2",
+ "raidz3"
+ ],
+ "type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "GET",
- "name" : "vmdiridx",
- "description" : "Directory index",
"permissions" : {
- "user" : "all"
- }
- }
- },
- "path" : "/nodes/{node}/lxc/{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,
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify",
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
- "description" : "LXC container index (per node).",
- "method" : "GET",
- "name" : "vmlist",
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{vmid}"
- }
- ]
- }
+ "leaf" : 0,
+ "path" : "/nodes/{node}/disks/zfs",
+ "text" : "zfs"
},
- "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",
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List local disks.",
+ "method" : "GET",
+ "name" : "list",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "include-partitions" : {
+ "default" : 0,
+ "description" : "Also include partitions.",
"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})"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "gw" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "ipv4",
- "format_description" : "GatewayIPv4",
- "optional" : 1,
- "description" : "Default gateway for IPv4 traffic."
+ "typetext" : "<string>"
},
- "ip" : {
- "format_description" : "IPv4Format/CIDR",
+ "skipsmart" : {
+ "default" : 0,
+ "description" : "Skip smart checks.",
"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
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "tag" : {
- "type" : "integer",
- "maximum" : "4094",
- "minimum" : "2",
- "format_description" : "VlanNo",
- "description" : "VLAN tag for this interface.",
- "optional" : 1
+ "type" : {
+ "description" : "Only list specific types of disks.",
+ "enum" : [
+ "unused",
+ "journal_disks"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "or",
+ [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ],
+ [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "devpath" : {
+ "description" : "The device path",
+ "type" : "string"
+ },
+ "gpt" : {
+ "type" : "boolean"
+ },
+ "health" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "model" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "osdid" : {
+ "type" : "integer"
+ },
+ "parent" : {
+ "description" : "For partitions only. The device path of the disk the partition resides on.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "serial" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "size" : {
+ "type" : "integer"
+ },
+ "used" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vendor" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "wwn" : {
+ "optional" : 1,
+ "type" : "string"
+ }
},
- "name" : {
- "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
- "format_description" : "String",
- "pattern" : "[-_.\\w\\d]+",
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/disks/list",
+ "text" : "list"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get SMART Health of a disk.",
+ "method" : "GET",
+ "name" : "smart",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "disk" : {
+ "description" : "Block device name",
+ "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
"type" : "string"
},
- "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",
+ "healthonly" : {
+ "description" : "If true returns only the health status",
"optional" : 1,
- "pattern" : "(?^:\\d+(?:;\\d+)*)"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "type" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "enum" : [
- "veth"
- ],
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "attributes" : {
"optional" : 1,
- "description" : "Network interface type."
+ "type" : "array"
},
- "ip6" : {
- "format_description" : "IPv6Format/CIDR",
- "optional" : 1,
- "description" : "IPv6 address in CIDR format.",
- "format" : "pve-ipv6-config",
+ "health" : {
"type" : "string"
},
- "firewall" : {
- "format_description" : "[1|0]",
+ "text" : {
"optional" : 1,
- "description" : "Controls whether this interface's firewall rules should be used.",
- "type" : "boolean"
+ "type" : "string"
},
- "mtu" : {
- "type" : "integer",
- "minimum" : 64,
- "format_description" : "Number",
+ "type" : {
"optional" : 1,
- "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)"
+ "type" : "string"
}
},
- "type" : "string",
- "optional" : 1,
- "description" : "Specifies network interfaces for the container."
- },
- "swap" : {
- "type" : "integer",
- "default" : 512,
- "minimum" : 0,
- "optional" : 1,
- "description" : "Amount of SWAP for the VM in MB."
- },
- "pool" : {
- "optional" : 1,
- "description" : "Add the VM to the specified pool.",
- "format" : "pve-poolid",
- "type" : "string"
- },
- "mp[n]" : {
- "optional" : 1,
- "description" : "Use volume as container mount point (experimental feature).",
- "format" : {
- "quota" : {
- "type" : "boolean",
- "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
- "format_description" : "[0|1]",
- "optional" : 1
- },
- "size" : {
- "format" : "disk-size",
- "type" : "string",
- "description" : "Volume size (read only value).",
- "format_description" : "DiskSize",
- "optional" : 1
- },
- "backup" : {
- "type" : "boolean",
- "description" : "Whether to include the mountpoint in backups.",
- "format_description" : "[1|0]",
- "optional" : 1
- },
- "volume" : {
- "format" : "pve-lxc-mp-string",
- "type" : "string",
- "format_description" : "volume",
- "description" : "Volume, device or directory to mount into the container.",
- "default_key" : 1
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/disks/smart",
+ "text" : "smart"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Initialize Disk with GPT",
+ "method" : "POST",
+ "name" : "initgpt",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "disk" : {
+ "description" : "Block device name",
+ "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
+ "type" : "string"
},
- "mp" : {
- "description" : "Path to the mountpoint as seen from inside the container.",
- "format_description" : "Path",
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-lxc-mp-string"
- },
- "ro" : {
- "type" : "boolean",
- "description" : "Read-only mountpoint (not supported with bind mounts)",
- "optional" : 1,
- "format_description" : "ro"
+ "typetext" : "<string>"
},
- "acl" : {
- "type" : "boolean",
+ "uuid" : {
+ "description" : "UUID for the GPT table",
+ "maxLength" : 36,
"optional" : 1,
- "format_description" : "acl",
- "description" : "Explicitly enable or disable ACL support."
- }
- },
- "type" : "string"
- },
- "vmid" : {
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1,
- "description" : "The (unique) ID of the VM."
- },
- "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" : {
- "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
- },
- "console" : {
- "description" : "Attach a console device (/dev/console) to the container.",
- "optional" : 1,
- "type" : "boolean",
- "default" : 1
- },
- "lock" : {
- "enum" : [
- "migrate",
- "backup",
- "snapshot",
- "rollback"
- ],
- "description" : "Lock/unlock the VM.",
- "optional" : 1,
- "type" : "string"
- },
- "template" : {
- "optional" : 1,
- "description" : "Enable/disable Template.",
- "default" : 0,
- "type" : "boolean"
- },
- "password" : {
- "minLength" : 5,
- "optional" : 1,
- "description" : "Sets root password inside container.",
- "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"
+ "pattern" : "[a-fA-F0-9\\-]+",
+ "type" : "string"
+ }
+ }
},
- "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
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
- "ostype" : {
- "enum" : [
- "debian",
- "ubuntu",
- "centos",
- "fedora",
- "opensuse",
- "archlinux",
- "alpine",
- "unmanaged"
- ],
- "description" : "OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/<ostype>.common.conf. Value 'unmanaged' can be used to skip and OS specific setup.",
- "optional" : 1,
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
"type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/disks/initgpt",
+ "text" : "initgpt"
+ },
+ {
+ "info" : {
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Wipe a disk or partition.",
+ "method" : "PUT",
+ "name" : "wipe_disk",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "disk" : {
+ "description" : "Block device name",
+ "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/disks/wipedisk",
+ "text" : "wipedisk"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Node index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/disks",
+ "text" : "disks"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List available updates.",
+ "method" : "GET",
+ "name" : "list_updates",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "hostname" : {
- "format" : "dns-name",
- "type" : "string",
- "optional" : 1,
- "maxLength" : 255,
- "description" : "Set a host name for the container."
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
- "ssh-public-keys" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Setup public SSH keys (one key per line, OpenSSH format)."
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "This is used to resynchronize the package index files from their sources (apt-get update).",
+ "method" : "POST",
+ "name" : "update_database",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "notify" : {
+ "default" : 0,
+ "description" : "Send notification mail about new packages (to email address specified for user 'root@pam').",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "quiet" : {
+ "default" : 0,
+ "description" : "Only produces output suitable for logging, omitting progress indicators.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
},
- "cmode" : {
- "default" : "tty",
- "type" : "string",
- "enum" : [
- "shell",
- "console",
- "tty"
- ],
- "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)."
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
- "protection" : {
- "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
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/apt/update",
+ "text" : "update"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get package changelogs.",
+ "method" : "GET",
+ "name" : "changelog",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "Package name.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "version" : {
+ "description" : "Package version.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "rootfs" : {
- "optional" : 1,
- "description" : "Use volume as container root.",
- "type" : "string",
- "format" : {
- "ro" : {
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/apt/changelog",
+ "text" : "changelog"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get APT repository information.",
+ "method" : "GET",
+ "name" : "repositories",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Result from parsing the APT repository files in /etc/apt/.",
+ "properties" : {
+ "digest" : {
+ "description" : "Common digest of all files.",
+ "type" : "string"
+ },
+ "errors" : {
+ "description" : "List of problematic repository files.",
+ "items" : {
+ "properties" : {
+ "error" : {
+ "description" : "The error message",
+ "type" : "string"
+ },
+ "path" : {
+ "description" : "Path to the problematic file.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ },
+ "files" : {
+ "description" : "List of parsed repository files.",
+ "items" : {
+ "properties" : {
+ "digest" : {
+ "description" : "Digest of the file as bytes.",
+ "items" : {
+ "type" : "integer"
+ },
+ "type" : "array"
+ },
+ "file-type" : {
+ "description" : "Format of the file.",
+ "enum" : [
+ "list",
+ "sources"
+ ],
+ "type" : "string"
+ },
+ "path" : {
+ "description" : "Path to the problematic file.",
+ "type" : "string"
+ },
+ "repositories" : {
+ "description" : "The parsed repositories.",
+ "items" : {
+ "properties" : {
+ "Comment" : {
+ "description" : "Associated comment",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "Components" : {
+ "description" : "List of repository components",
+ "items" : {
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
+ "Enabled" : {
+ "description" : "Whether the repository is enabled or not",
+ "type" : "boolean"
+ },
+ "FileType" : {
+ "description" : "Format of the defining file.",
+ "enum" : [
+ "list",
+ "sources"
+ ],
+ "type" : "string"
+ },
+ "Options" : {
+ "description" : "Additional options",
+ "items" : {
+ "properties" : {
+ "Key" : {
+ "type" : "string"
+ },
+ "Values" : {
+ "items" : {
+ "type" : "string"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
+ "Suites" : {
+ "description" : "List of package distribuitions",
+ "items" : {
+ "type" : "string"
+ },
+ "type" : "array"
+ },
+ "Types" : {
+ "description" : "List of package types.",
+ "items" : {
+ "enum" : [
+ "deb",
+ "deb-src"
+ ],
+ "type" : "string"
+ },
+ "type" : "array"
+ },
+ "URIs" : {
+ "description" : "List of repository URIs.",
+ "items" : {
+ "type" : "string"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ },
+ "infos" : {
+ "description" : "Additional information/warnings for APT repositories.",
+ "items" : {
+ "properties" : {
+ "index" : {
+ "description" : "Index of the associated repository within the file.",
+ "type" : "string"
+ },
+ "kind" : {
+ "description" : "Kind of the information (e.g. warning).",
+ "type" : "string"
+ },
+ "message" : {
+ "description" : "Information message.",
+ "type" : "string"
+ },
+ "path" : {
+ "description" : "Path to the associated file.",
+ "type" : "string"
+ },
+ "property" : {
+ "description" : "Property from which the info originates.",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ },
+ "standard-repos" : {
+ "description" : "List of standard repositories and their configuration status",
+ "items" : {
+ "properties" : {
+ "handle" : {
+ "description" : "Handle to identify the repository.",
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "Full name of the repository.",
+ "type" : "string"
+ },
+ "status" : {
+ "description" : "Indicating enabled/disabled status, if the repository is configured.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Change the properties of a repository. Currently only allows enabling/disabling.",
+ "method" : "POST",
+ "name" : "change_repository",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "digest" : {
+ "description" : "Digest to detect modifications.",
+ "maxLength" : 80,
"optional" : 1,
- "description" : "Read-only mountpoint (not supported with bind mounts)",
- "format_description" : "ro",
- "type" : "boolean"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "acl" : {
- "format_description" : "acl",
- "description" : "Explicitly enable or disable ACL support.",
+ "enabled" : {
+ "description" : "Whether the repository should be enabled or not.",
"optional" : 1,
- "type" : "boolean"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "volume" : {
- "default_key" : 1,
- "description" : "Volume, device or directory to mount into the container.",
- "format_description" : "volume",
+ "index" : {
+ "description" : "Index within the file (starting from 0).",
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-lxc-mp-string"
+ "typetext" : "<string>"
},
- "backup" : {
- "format_description" : "[1|0]",
- "description" : "Whether to include the mountpoint in backups.",
+ "path" : {
+ "description" : "Path to the containing file.",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Add a standard repository to the configuration",
+ "method" : "PUT",
+ "name" : "add_repository",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "digest" : {
+ "description" : "Digest to detect modifications.",
+ "maxLength" : 80,
"optional" : 1,
- "type" : "boolean"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "size" : {
- "format_description" : "DiskSize",
- "description" : "Volume size (read only value).",
- "optional" : 1,
+ "handle" : {
+ "description" : "Handle that identifies a repository.",
"type" : "string",
- "format" : "disk-size"
+ "typetext" : "<string>"
},
- "quota" : {
- "type" : "boolean",
- "format_description" : "[0|1]",
- "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
- "optional" : 1
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/apt/repositories",
+ "text" : "repositories"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get package information for important Proxmox packages.",
+ "method" : "GET",
+ "name" : "versions",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/apt/versions",
+ "text" : "versions"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index for apt (Advanced Package Tool).",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
},
- "proxyto" : "node",
- "description" : "Create or restore a container.",
- "method" : "POST",
- "name" : "create_vm",
"returns" : {
- "type" : "string"
+ "items" : {
+ "properties" : {
+ "id" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{id}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
}
},
- "text" : "lxc",
- "leaf" : 0
+ "leaf" : 0,
+ "path" : "/nodes/{node}/apt",
+ "text" : "apt"
},
{
- "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"
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 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.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "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"
- }
- }
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
}
}
},
- "leaf" : 1,
- "text" : "in"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
},
- {
- "text" : "out",
- "leaf" : 1,
- "info" : {
- "POST" : {
- "description" : "ceph osd out",
- "returns" : {
- "type" : "null"
- },
- "method" : "POST",
- "name" : "out",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get single rule data.",
+ "method" : "GET",
+ "name" : "get_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "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
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
}
}
},
- "path" : "/nodes/{node}/ceph/osd/{osdid}/out"
- }
- ],
- "info" : {
- "DELETE" : {
- "protected" : 1,
- "description" : "Destroy OSD",
- "returns" : {
- "type" : "string"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
},
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "action" : {
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dest" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dport" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "enable" : {
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "icmp-type" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "iface" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ipversion" : {
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "pos" : {
+ "type" : "integer"
+ },
+ "proto" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "source" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "sport" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Modify rule data.",
+ "method" : "PUT",
+ "name" : "update_rule",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "node" : {
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "comment" : {
+ "description" : "Descriptive comment.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dest" : {
+ "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dport" : {
+ "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-dport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "icmp-type" : {
+ "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+ "format" : "pve-fw-icmp-type-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "iface" : {
+ "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
+ "optional" : 1,
"type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "cleanup" : {
- "type" : "boolean",
- "default" : 0,
+ "moveto" : {
+ "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
+ "minimum" : 0,
"optional" : 1,
- "description" : "If set, we remove partition table entries."
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
},
- "osdid" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
"type" : "integer",
- "description" : "OSD ID"
+ "typetext" : "<integer> (0 - N)"
+ },
+ "proto" : {
+ "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "format" : "pve-fw-protocol-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "source" : {
+ "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+ "format" : "pve-fw-addr-spec",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Rule type.",
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 1,
+ "type" : "string"
}
}
},
- "proxyto" : "node",
- "name" : "destroyosd",
- "method" : "DELETE"
- }
- },
- "path" : "/nodes/{node}/ceph/osd/{osdid}"
- }
- ],
- "path" : "/nodes/{node}/ceph/osd",
- "info" : {
- "GET" : {
- "name" : "index",
- "method" : "GET",
- "returns" : {
- "type" : "object"
- },
- "description" : "Get Ceph osd list/tree.",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- }
- },
- "proxyto" : "node",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
- ]
- }
- },
- "POST" : {
- "protected" : 1,
- "description" : "Create OSD",
- "returns" : {
- "type" : "string"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "fstype" : {
- "type" : "string",
- "default" : "xfs",
- "enum" : [
- "xfs",
- "ext4",
- "btrfs"
- ],
- "optional" : 1,
- "description" : "File system type."
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "dev" : {
- "type" : "string",
- "description" : "Block device name."
- },
- "journal_dev" : {
- "description" : "Block device name for journal.",
- "optional" : 1,
- "type" : "string"
- }
- }
- },
- "proxyto" : "node",
- "method" : "POST",
- "name" : "createosd"
- }
- }
- },
- {
- "path" : "/nodes/{node}/ceph/disks",
- "info" : {
- "GET" : {
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "type" : {
- "type" : "string",
- "description" : "Only list specific types of disks.",
- "optional" : 1,
- "enum" : [
- "unused",
- "journal_disks"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
]
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
- ]
- },
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "used" : {
- "optional" : 1,
- "type" : "string"
- },
- "size" : {
- "type" : "integer"
- },
- "vendor" : {
- "type" : "string",
- "optional" : 1
- },
- "gpt" : {
- "type" : "boolean"
- },
- "model" : {
- "type" : "string",
- "optional" : 1
- },
- "serial" : {
- "type" : "string",
- "optional" : 1
- },
- "osdid" : {
- "type" : "integer"
- },
- "dev" : {
- "type" : "string"
- }
- }
- },
- "type" : "array"
- },
- "method" : "GET",
- "name" : "disks",
- "description" : "List local disks."
- }
- },
- "leaf" : 1,
- "text" : "disks"
- },
- {
- "path" : "/nodes/{node}/ceph/config",
- "info" : {
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
- ]
- },
- "description" : "Get Ceph configuration.",
- "returns" : {
- "type" : "string"
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "method" : "GET",
- "name" : "config"
- }
- },
- "leaf" : 1,
- "text" : "config"
- },
- {
- "info" : {
- "POST" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
- },
- "additionalProperties" : 0
+ }
},
- "proxyto" : "node",
- "description" : "Create Ceph Monitor",
- "method" : "POST",
- "name" : "createmon",
- "returns" : {
- "type" : "string"
- }
- },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/firewall/rules/{pos}",
+ "text" : "{pos}"
+ }
+ ],
+ "info" : {
"GET" : {
- "proxyto" : "node",
+ "allowtoken" : 1,
+ "description" : "List rules.",
+ "method" : "GET",
+ "name" : "get_rules",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
}
}
},
"permissions" : {
"check" : [
"perm",
- "/",
+ "/nodes/{node}",
[
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
+ "Sys.Audit"
+ ]
]
},
- "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{name}"
- }
- ],
- "type" : "array",
"items" : {
- "type" : "object",
"properties" : {
- "name" : {
- "type" : "string"
- },
- "addr" : {
- "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"
- }
+ "pos" : {
+ "type" : "integer"
}
},
- "proxyto" : "node",
- "description" : "Destroy Ceph monitor.",
- "name" : "destroymon",
- "method" : "DELETE",
- "returns" : {
- "type" : "string"
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{pos}",
+ "rel" : "child"
}
- }
- },
- "path" : "/nodes/{node}/ceph/mon/{monid}",
- "text" : "{monid}",
- "leaf" : 1
- }
- ],
- "path" : "/nodes/{node}/ceph/mon",
- "leaf" : 0,
- "text" : "mon"
- },
- {
- "text" : "init",
- "leaf" : 1,
- "info" : {
+ ],
+ "type" : "array"
+ }
+ },
"POST" : {
- "returns" : {
- "type" : "null"
- },
- "name" : "init",
+ "allowtoken" : 1,
+ "description" : "Create new rule.",
"method" : "POST",
- "description" : "Create initial ceph default configuration and setup symlinks.",
+ "name" : "create_rule",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "node" : {
+ "action" : {
+ "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 0,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "comment" : {
+ "description" : "Descriptive comment.",
+ "optional" : 1,
"type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "pg_bits" : {
+ "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",
+ "maxLength" : 512,
"optional" : 1,
- "description" : "Placement group bits, used to specify the default number of placement groups.\n\nNOTE: 'osd pool default pg num' does not work for default pools.",
- "minimum" : 6,
- "maximum" : 14,
- "default" : 6,
- "type" : "integer"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "size" : {
- "description" : "Number of replicas per object",
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dport" : {
+ "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-dport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
"optional" : 1,
- "minimum" : 1,
- "maximum" : 3,
"type" : "integer",
- "default" : 2
+ "typetext" : "<integer> (0 - N)"
},
- "network" : {
+ "icmp-type" : {
+ "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+ "format" : "pve-fw-icmp-type-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "iface" : {
+ "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+ "format" : "pve-iface",
+ "maxLength" : 20,
+ "minLength" : 2,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "log" : {
+ "description" : "Log level for firewall rule.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
"optional" : 1,
- "maxLength" : 128,
- "description" : "Use specific network for all ceph related traffic",
- "format" : "CIDR",
"type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- }
- }
- },
- "path" : "/nodes/{node}/ceph/init"
- },
- {
- "path" : "/nodes/{node}/ceph/stop",
- "info" : {
- "POST" : {
- "description" : "Stop ceph services.",
- "returns" : {
- "type" : "string"
- },
- "method" : "POST",
- "name" : "stop",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "parameters" : {
- "properties" : {
+ },
+ "macro" : {
+ "description" : "Use predefined standard macro.",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
- "service" : {
- "type" : "string",
- "description" : "Ceph service name.",
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "proto" : {
+ "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+ "format" : "pve-fw-protocol-spec",
"optional" : 1,
- "pattern" : "(mon|mds|osd)\\.[A-Za-z0-9]{1,32}"
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node"
- }
- },
- "leaf" : 1,
- "text" : "stop"
- },
- {
- "leaf" : 1,
- "text" : "start",
- "path" : "/nodes/{node}/ceph/start",
- "info" : {
- "POST" : {
- "returns" : {
- "type" : "string"
- },
- "name" : "start",
- "method" : "POST",
- "description" : "Start ceph services.",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
"type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "service" : {
+ "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",
+ "maxLength" : 512,
"optional" : 1,
- "description" : "Ceph service name.",
- "pattern" : "(mon|mds|osd)\\.[A-Za-z0-9]{1,32}",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sport" : {
+ "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+ "format" : "pve-fw-sport-spec",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "description" : "Rule type.",
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 0,
"type" : "string"
}
}
},
- "proxyto" : "node",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
- "/",
+ "/nodes/{node}",
[
"Sys.Modify"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
}
- }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/firewall/rules",
+ "text" : "rules"
},
{
- "path" : "/nodes/{node}/ceph/status",
"info" : {
"GET" : {
- "description" : "Get ceph status.",
- "name" : "status",
+ "allowtoken" : 1,
+ "description" : "Get host firewall options.",
"method" : "GET",
- "returns" : {
- "type" : "object"
+ "name" : "get_options",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
"permissions" : {
"check" : [
"perm",
- "/",
+ "/nodes/{node}",
[
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
+ "Sys.Audit"
+ ]
]
},
- "protected" : 1,
"proxyto" : "node",
- "parameters" : {
+ "returns" : {
"properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "enable" : {
+ "description" : "Enable host firewall rules.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "log_level_in" : {
+ "description" : "Log level for incoming traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "log_level_out" : {
+ "description" : "Log level for outgoing traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "log_nf_conntrack" : {
+ "default" : 0,
+ "description" : "Enable logging of conntrack information.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "ndp" : {
+ "default" : 0,
+ "description" : "Enable NDP (Neighbor Discovery Protocol).",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "nf_conntrack_allow_invalid" : {
+ "default" : 0,
+ "description" : "Allow invalid packets on connection tracking.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "nf_conntrack_max" : {
+ "default" : 262144,
+ "description" : "Maximum number of tracked connections.",
+ "minimum" : 32768,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "nf_conntrack_tcp_timeout_established" : {
+ "default" : 432000,
+ "description" : "Conntrack established timeout.",
+ "minimum" : 7875,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "nf_conntrack_tcp_timeout_syn_recv" : {
+ "default" : 60,
+ "description" : "Conntrack syn recv timeout.",
+ "maximum" : 60,
+ "minimum" : 30,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "nosmurfs" : {
+ "description" : "Enable SMURFS filter.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "protection_synflood" : {
+ "default" : 0,
+ "description" : "Enable synflood protection",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "protection_synflood_burst" : {
+ "default" : 1000,
+ "description" : "Synflood protection rate burst by ip src.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "protection_synflood_rate" : {
+ "default" : 200,
+ "description" : "Synflood protection rate syn/sec by ip src.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "smurf_log_level" : {
+ "description" : "Log level for SMURFS filter.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
"type" : "string"
+ },
+ "tcp_flags_log_level" : {
+ "description" : "Log level for illegal tcp flags filter.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "tcpflags" : {
+ "default" : 0,
+ "description" : "Filter illegal combinations of TCP flags.",
+ "optional" : 1,
+ "type" : "boolean"
}
},
- "additionalProperties" : 0
+ "type" : "object"
}
- }
- },
- "text" : "status",
- "leaf" : 1
- },
- {
- "text" : "pools",
- "leaf" : 0,
- "children" : [
- {
- "text" : "{name}",
- "leaf" : 1,
- "info" : {
- "DELETE" : {
- "description" : "Destroy pool",
- "name" : "destroypool",
- "method" : "DELETE",
- "returns" : {
- "type" : "null"
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Set Firewall options.",
+ "method" : "PUT",
+ "name" : "set_options",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Enable host firewall rules.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "log_level_in" : {
+ "description" : "Log level for incoming traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "log_level_out" : {
+ "description" : "Log level for outgoing traffic.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "log_nf_conntrack" : {
+ "default" : 0,
+ "description" : "Enable logging of conntrack information.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
+ "ndp" : {
+ "default" : 0,
+ "description" : "Enable NDP (Neighbor Discovery Protocol).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "name" : {
- "description" : "The name of the pool. It must be unique.",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
+ "nf_conntrack_allow_invalid" : {
+ "default" : 0,
+ "description" : "Allow invalid packets on connection tracking.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "proxyto" : "node"
- }
- },
- "path" : "/nodes/{node}/ceph/pools/{name}"
- }
- ],
- "info" : {
- "POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "pg_num" : {
- "description" : "Number of placement groups.",
+ "nf_conntrack_max" : {
+ "default" : 262144,
+ "description" : "Maximum number of tracked connections.",
+ "minimum" : 32768,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (32768 - N)"
+ },
+ "nf_conntrack_tcp_timeout_established" : {
+ "default" : 432000,
+ "description" : "Conntrack established timeout.",
+ "minimum" : 7875,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (7875 - N)"
+ },
+ "nf_conntrack_tcp_timeout_syn_recv" : {
+ "default" : 60,
+ "description" : "Conntrack syn recv timeout.",
+ "maximum" : 60,
+ "minimum" : 30,
"optional" : 1,
- "minimum" : 8,
- "maximum" : 32768,
"type" : "integer",
- "default" : 64
+ "typetext" : "<integer> (30 - 60)"
},
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
},
- "crush_ruleset" : {
+ "nosmurfs" : {
+ "description" : "Enable SMURFS filter.",
"optional" : 1,
- "description" : "The ruleset to use for mapping object placement in the cluster.",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "protection_synflood" : {
"default" : 0,
- "type" : "integer",
- "maximum" : 32768,
- "minimum" : 0
+ "description" : "Enable synflood protection",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "min_size" : {
- "minimum" : 1,
- "maximum" : 3,
- "default" : 1,
+ "protection_synflood_burst" : {
+ "default" : 1000,
+ "description" : "Synflood protection rate burst by ip src.",
+ "optional" : 1,
"type" : "integer",
- "description" : "Minimum number of replicas per object",
- "optional" : 1
+ "typetext" : "<integer>"
},
- "size" : {
- "maximum" : 3,
- "default" : 2,
+ "protection_synflood_rate" : {
+ "default" : 200,
+ "description" : "Synflood protection rate syn/sec by ip src.",
+ "optional" : 1,
"type" : "integer",
- "minimum" : 1,
+ "typetext" : "<integer>"
+ },
+ "smurf_log_level" : {
+ "description" : "Log level for SMURFS filter.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
"optional" : 1,
- "description" : "Number of replicas per object"
+ "type" : "string"
},
- "name" : {
- "description" : "The name of the pool. It must be unique.",
+ "tcp_flags_log_level" : {
+ "description" : "Log level for illegal tcp flags filter.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
+ "optional" : 1,
"type" : "string"
+ },
+ "tcpflags" : {
+ "default" : 0,
+ "description" : "Filter illegal combinations of TCP flags.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
- },
- "additionalProperties" : 0
+ }
},
- "description" : "Create POOL",
- "name" : "createpool",
- "method" : "POST",
- "returns" : {
- "type" : "null"
- }
- },
- "GET" : {
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
- "/",
+ "/nodes/{node}",
[
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
+ "Sys.Modify"
+ ]
]
},
- "parameters" : {
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- },
+ "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" : 1,
+ "path" : "/nodes/{node}/firewall/options",
+ "text" : "options"
},
{
- "text" : "crush",
- "leaf" : 1,
- "path" : "/nodes/{node}/ceph/crush",
"info" : {
"GET" : {
- "proxyto" : "node",
+ "allowtoken" : 1,
+ "description" : "Read firewall log",
+ "method" : "GET",
+ "name" : "log",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "limit" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "start" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
}
}
},
"permissions" : {
"check" : [
"perm",
- "/",
+ "/nodes/{node}",
[
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
+ "Sys.Syslog"
+ ]
]
},
"protected" : 1,
- "method" : "GET",
- "name" : "crush",
- "returns" : {
- "type" : "string"
- },
- "description" : "Get OSD crush map"
- }
- }
- },
- {
- "leaf" : 1,
- "text" : "log",
- "path" : "/nodes/{node}/ceph/log",
- "info" : {
- "GET" : {
- "name" : "log",
- "method" : "GET",
+ "proxyto" : "node",
"returns" : {
"items" : {
"properties" : {
"type" : "integer"
},
"t" : {
- "type" : "string",
- "description" : "Line text"
- }
- },
- "type" : "object"
- },
- "type" : "array"
- },
- "description" : "Read ceph log",
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "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
- }
- },
- "additionalProperties" : 0
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Syslog"
- ]
- ]
+ "description" : "Line text",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/firewall/log",
+ "text" : "log"
}
],
- "path" : "/nodes/{node}/ceph",
"info" : {
"GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
- ]
- },
+ "allowtoken" : 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",
+ "typetext" : "<string>"
}
}
},
+ "permissions" : {
+ "user" : "all"
+ },
"returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
"links" : [
{
"href" : "{name}",
"rel" : "child"
}
],
- "items" : {
- "properties" : {},
- "type" : "object"
- },
"type" : "array"
}
}
- }
- },
- {
- "info" : {
- "POST" : {
- "protected" : 1,
- "permissions" : {
- "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage.",
- "user" : "all"
- },
- "proxyto" : "node",
- "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",
- "optional" : 1,
- "description" : "Exclude temporary files and logs."
- },
- "pigz" : {
- "default" : 0,
- "type" : "integer",
- "optional" : 1,
- "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count."
- },
- "maxfiles" : {
- "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
- },
- "vmid" : {
- "optional" : 1,
- "description" : "The ID of the guest system you want to backup.",
- "format" : "pve-vmid-list",
- "type" : "string"
- },
- "dumpdir" : {
- "description" : "Store resulting files to specified directory.",
- "optional" : 1,
- "type" : "string"
- },
- "ionice" : {
- "maximum" : 8,
- "type" : "integer",
- "default" : 7,
- "minimum" : 0,
- "description" : "Set CFQ ionice priority.",
- "optional" : 1
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "optional" : 1,
- "description" : "Only run if executed on this node."
- },
- "quiet" : {
- "description" : "Be quiet.",
- "optional" : 1,
- "default" : 0,
- "type" : "boolean"
- },
- "mailto" : {
- "format" : "string-list",
- "type" : "string",
- "description" : "Comma-separated list of email addresses that should receive email notifications.",
- "optional" : 1
- },
- "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,
- "optional" : 1,
- "description" : "Maximal time to wait until a guest system is stopped (minutes)."
- },
- "exclude-path" : {
- "description" : "Exclude certain files/directories (shell globs).",
- "optional" : 1,
- "format" : "string-alist",
- "type" : "string"
- },
- "all" : {
- "default" : 0,
- "type" : "boolean",
- "optional" : 1,
- "description" : "Backup all known guest systems on this host."
- },
- "remove" : {
- "type" : "boolean",
- "default" : 1,
- "description" : "Remove old backup files if there are more than 'maxfiles' backup files.",
- "optional" : 1
- },
- "storage" : {
- "type" : "string",
- "format" : "pve-storage-id",
- "optional" : 1,
- "description" : "Store resulting file to this storage."
- },
- "stdout" : {
- "optional" : 1,
- "description" : "Write tar to stdout, not to a file.",
- "type" : "boolean"
- },
- "compress" : {
- "enum" : [
- "0",
- "1",
- "gzip",
- "lzo"
- ],
- "description" : "Compress dump file.",
- "optional" : 1,
- "default" : "0",
- "type" : "string"
- },
- "size" : {
- "optional" : 1,
- "description" : "Unused, will be removed in a future release.",
- "minimum" : 500,
- "type" : "integer",
- "default" : 1024
- },
- "bwlimit" : {
- "minimum" : 0,
- "default" : 0,
- "type" : "integer",
- "description" : "Limit I/O bandwidth (KBytes per second).",
- "optional" : 1
- },
- "tmpdir" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Store temporary files to specified directory."
- },
- "stop" : {
- "default" : 0,
- "type" : "boolean",
- "optional" : 1,
- "description" : "Stop runnig backup jobs on this host."
- },
- "script" : {
- "description" : "Use specified hook script.",
- "optional" : 1,
- "type" : "string"
- }
- }
- },
- "description" : "Create backup.",
- "returns" : {
- "type" : "string"
- },
- "name" : "vzdump",
- "method" : "POST"
- }
},
- "path" : "/nodes/{node}/vzdump",
- "leaf" : 1,
- "text" : "vzdump"
+ "leaf" : 0,
+ "path" : "/nodes/{node}/firewall",
+ "text" : "firewall"
},
{
- "path" : "/nodes/{node}/services",
"children" : [
{
"children" : [
{
- "leaf" : 1,
- "text" : "state",
- "path" : "/nodes/{node}/services/{service}/state",
"info" : {
"GET" : {
- "name" : "service_state",
+ "allowtoken" : 1,
+ "description" : "Get replication job status.",
"method" : "GET",
- "returns" : {
- "type" : "object",
- "properties" : {}
- },
- "description" : "Read service properties",
+ "name" : "job_status",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "service" : {
- "description" : "Service ID",
- "enum" : [
- "pveproxy",
- "pvedaemon",
- "spiceproxy",
- "pvestatd",
- "pve-cluster",
- "corosync",
- "pve-firewall",
- "pvefw-logger",
- "pve-ha-crm",
- "pve-ha-lrm",
- "sshd",
- "syslog",
- "cron",
- "postfix",
- "ksmtuned",
- "systemd-timesyncd"
- ],
+ "id" : {
+ "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
+ "format" : "pve-replication-job-id",
+ "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/replication/{id}/status",
+ "text" : "status"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read replication job log.",
+ "method" : "GET",
+ "name" : "read_job_log",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
+ "format" : "pve-replication-job-id",
+ "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
"type" : "string"
},
+ "limit" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
+ },
+ "start" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
}
}
},
- "proxyto" : "node",
- "protected" : 1,
"permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
+ "description" : "Requires the VM.Audit permission on /vms/<vmid>, or 'Sys.Audit' on '/nodes/<node>'",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "n" : {
+ "description" : "Line number",
+ "type" : "integer"
+ },
+ "t" : {
+ "description" : "Line text",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/replication/{id}/log",
+ "text" : "log"
},
{
"info" : {
"POST" : {
- "proxyto" : "node",
+ "allowtoken" : 1,
+ "description" : "Schedule replication job to start as soon as possible.",
+ "method" : "POST",
+ "name" : "schedule_now",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "id" : {
+ "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
+ "format" : "pve-replication-job-id",
+ "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
+ "type" : "string"
+ },
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
- },
- "service" : {
- "enum" : [
- "pveproxy",
- "pvedaemon",
- "spiceproxy",
- "pvestatd",
- "pve-cluster",
- "corosync",
- "pve-firewall",
- "pvefw-logger",
- "pve-ha-crm",
- "pve-ha-lrm",
- "sshd",
- "syslog",
- "cron",
- "postfix",
- "ksmtuned",
- "systemd-timesyncd"
- ],
- "description" : "Service ID",
- "type" : "string"
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
"permissions" : {
"check" : [
"perm",
- "/nodes/{node}",
+ "/storage",
[
- "Sys.Modify"
+ "Datastore.Allocate"
]
]
},
"protected" : 1,
+ "proxyto" : "node",
"returns" : {
"type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/replication/{id}/schedule_now",
+ "text" : "schedule_now"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
+ "format" : "pve-replication-job-id",
+ "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
+ "type" : "string"
},
- "name" : "service_start",
- "method" : "POST",
- "description" : "Start service."
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
}
},
- "path" : "/nodes/{node}/services/{service}/start",
- "text" : "start",
- "leaf" : 1
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/replication/{id}",
+ "text" : "{id}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List status of all replication jobs on this node.",
+ "method" : "GET",
+ "name" : "status",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "guest" : {
+ "description" : "Only list replication jobs for this guest.",
+ "format" : "pve-vmid",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "id" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
},
+ "links" : [
+ {
+ "href" : "{id}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/replication",
+ "text" : "replication"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
{
- "text" : "stop",
- "leaf" : 1,
- "path" : "/nodes/{node}/services/{service}/stop",
"info" : {
- "POST" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Revoke existing certificate from CA.",
+ "method" : "DELETE",
+ "name" : "revoke_certificate",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
},
"protected" : 1,
"proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "service" : {
- "type" : "string",
- "description" : "Service ID",
- "enum" : [
- "pveproxy",
- "pvedaemon",
- "spiceproxy",
- "pvestatd",
- "pve-cluster",
- "corosync",
- "pve-firewall",
- "pvefw-logger",
- "pve-ha-crm",
- "pve-ha-lrm",
- "sshd",
- "syslog",
- "cron",
- "postfix",
- "ksmtuned",
- "systemd-timesyncd"
- ]
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- }
- },
- "description" : "Stop service.",
"returns" : {
- "type" : "string"
- },
- "name" : "service_stop",
- "method" : "POST"
- }
- }
- },
- {
- "path" : "/nodes/{node}/services/{service}/restart",
- "info" : {
- "POST" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "service" : {
- "type" : "string",
- "description" : "Service ID",
- "enum" : [
- "pveproxy",
- "pvedaemon",
- "spiceproxy",
- "pvestatd",
- "pve-cluster",
- "corosync",
- "pve-firewall",
- "pvefw-logger",
- "pve-ha-crm",
- "pve-ha-lrm",
- "sshd",
- "syslog",
- "cron",
- "postfix",
- "ksmtuned",
- "systemd-timesyncd"
- ]
+ "type" : "string"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Order a new certificate from ACME-compatible CA.",
+ "method" : "POST",
+ "name" : "new_certificate",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "force" : {
+ "default" : 0,
+ "description" : "Overwrite existing custom certificate.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "proxyto" : "node",
"permissions" : {
"check" : [
"perm",
]
},
"protected" : 1,
- "name" : "service_restart",
- "method" : "POST",
- "returns" : {
- "type" : "string"
- },
- "description" : "Restart service."
- }
- },
- "leaf" : 1,
- "text" : "restart"
- },
- {
- "leaf" : 1,
- "text" : "reload",
- "path" : "/nodes/{node}/services/{service}/reload",
- "info" : {
- "POST" : {
- "name" : "service_reload",
- "method" : "POST",
+ "proxyto" : "node",
"returns" : {
"type" : "string"
- },
- "description" : "Reload service.",
- "proxyto" : "node",
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Renew existing certificate from CA.",
+ "method" : "PUT",
+ "name" : "renew_certificate",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "force" : {
+ "default" : 0,
+ "description" : "Force renewal even if expiry is more than 30 days away.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
- },
- "service" : {
"type" : "string",
- "enum" : [
- "pveproxy",
- "pvedaemon",
- "spiceproxy",
- "pvestatd",
- "pve-cluster",
- "corosync",
- "pve-firewall",
- "pvefw-logger",
- "pve-ha-crm",
- "pve-ha-lrm",
- "sshd",
- "syslog",
- "cron",
- "postfix",
- "ksmtuned",
- "systemd-timesyncd"
- ],
- "description" : "Service ID"
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"Sys.Modify"
]
]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
}
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/certificates/acme/certificate",
+ "text" : "certificate"
}
],
"info" : {
"GET" : {
+ "allowtoken" : 1,
+ "description" : "ACME index.",
+ "method" : "GET",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "service" : {
- "type" : "string",
- "enum" : [
- "pveproxy",
- "pvedaemon",
- "spiceproxy",
- "pvestatd",
- "pve-cluster",
- "corosync",
- "pve-firewall",
- "pvefw-logger",
- "pve-ha-crm",
- "pve-ha-lrm",
- "sshd",
- "syslog",
- "cron",
- "postfix",
- "ksmtuned",
- "systemd-timesyncd"
- ],
- "description" : "Service ID"
- },
"node" : {
+ "description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
}
}
},
+ "permissions" : {
+ "user" : "all"
+ },
"returns" : {
"items" : {
- "properties" : {
- "subdir" : {
- "type" : "string"
- }
- },
+ "properties" : {},
"type" : "object"
},
- "type" : "array",
"links" : [
{
- "rel" : "child",
- "href" : "{subdir}"
+ "href" : "{name}",
+ "rel" : "child"
}
- ]
- },
- "method" : "GET",
- "name" : "srvcmdidx",
- "description" : "Directory index",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
+ ],
+ "type" : "array"
}
}
},
- "path" : "/nodes/{node}/services/{service}",
"leaf" : 0,
- "text" : "{service}"
- }
- ],
- "info" : {
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- },
- "protected" : 1,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- }
- },
- "proxyto" : "node",
- "description" : "Service list.",
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "rel" : "child",
- "href" : "{service}"
- }
- ]
- },
- "method" : "GET",
- "name" : "index"
- }
- },
- "leaf" : 0,
- "text" : "services"
- },
- {
- "info" : {
- "GET" : {
- "permissions" : {
- "user" : "all"
- },
- "description" : "Read subscription info.",
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- }
- },
- "returns" : {
- "type" : "object"
- },
- "method" : "GET",
- "name" : "get"
+ "path" : "/nodes/{node}/certificates/acme",
+ "text" : "acme"
},
- "POST" : {
- "method" : "POST",
- "name" : "update",
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "force" : {
- "default" : 0,
- "type" : "boolean",
- "optional" : 1,
- "description" : "Always connect to server, even if we have up to date info inside local cache."
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get information about node's certificates.",
+ "method" : "GET",
+ "name" : "info",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "filename" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "fingerprint" : {
+ "description" : "Certificate SHA 256 fingerprint.",
+ "optional" : 1,
+ "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
+ "type" : "string"
+ },
+ "issuer" : {
+ "description" : "Certificate issuer name.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "notafter" : {
+ "description" : "Certificate's notAfter timestamp (UNIX epoch).",
+ "optional" : 1,
+ "renderer" : "timestamp",
+ "type" : "integer"
+ },
+ "notbefore" : {
+ "description" : "Certificate's notBefore timestamp (UNIX epoch).",
+ "optional" : 1,
+ "renderer" : "timestamp",
+ "type" : "integer"
+ },
+ "pem" : {
+ "description" : "Certificate in PEM format",
+ "format" : "pem-certificate",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "public-key-bits" : {
+ "description" : "Certificate's public key size",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "public-key-type" : {
+ "description" : "Certificate's public key algorithm",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "san" : {
+ "description" : "List of Certificate's SubjectAlternativeName entries.",
+ "items" : {
+ "type" : "string"
+ },
+ "optional" : 1,
+ "renderer" : "yaml",
+ "type" : "array"
+ },
+ "subject" : {
+ "description" : "Certificate subject name.",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
}
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
+ }
},
- "description" : "Update subscription info.",
- "protected" : 1
+ "leaf" : 1,
+ "path" : "/nodes/{node}/certificates/info",
+ "text" : "info"
},
- "PUT" : {
- "returns" : {
- "type" : "null"
- },
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "key" : {
- "type" : "string",
- "description" : "Proxmox VE subscription key"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "method" : "PUT",
- "name" : "set",
- "protected" : 1,
- "description" : "Set subscription key."
- }
- },
- "path" : "/nodes/{node}/subscription",
- "leaf" : 1,
- "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"
- },
- "description" : "Update network device configuration",
- "proxyto" : "node",
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "DELETE custom certificate chain and key.",
+ "method" : "DELETE",
+ "name" : "remove_custom_cert",
"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",
- "format" : "pve-iface",
- "minLength" : 2,
- "maxLength" : 20,
- "description" : "Network interface name."
- },
- "bond_xmit_hash_policy" : {
- "optional" : 1,
- "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
- "enum" : [
- "layer2",
- "layer2+3",
- "layer3+4"
- ],
- "type" : "string"
- },
- "slaves" : {
- "optional" : 1,
- "description" : "Specify the interfaces used by the bonding device.",
- "format" : "pve-iface-list",
- "type" : "string"
- },
- "netmask" : {
- "description" : "Network mask.",
- "optional" : 1,
- "requires" : "address",
- "type" : "string",
- "format" : "ipv4mask"
- },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
- },
- "address" : {
- "optional" : 1,
- "description" : "IP address.",
- "requires" : "netmask",
"type" : "string",
- "format" : "ipv4"
+ "typetext" : "<string>"
},
- "bridge_ports" : {
- "format" : "pve-iface-list",
- "type" : "string",
- "description" : "Specify the iterfaces you want to add to your bridge.",
- "optional" : 1
- },
- "comments" : {
- "description" : "Comments",
+ "restart" : {
+ "default" : 0,
+ "description" : "Restart pveproxy.",
"optional" : 1,
- "type" : "string"
- },
- "bond_mode" : {
- "type" : "string",
- "enum" : [
- "balance-rr",
- "active-backup",
- "balance-xor",
- "broadcast",
- "802.3ad",
- "balance-tlb",
- "balance-alb",
- "balance-slb",
- "lacp-balance-slb",
- "lacp-balance-tcp"
- ],
- "description" : "Bonding mode.",
- "optional" : 1
- },
- "bridge_vlan_aware" : {
- "type" : "boolean",
- "description" : "Enable bridge vlan support.",
- "optional" : 1
- },
- "autostart" : {
"type" : "boolean",
- "optional" : 1,
- "description" : "Automatically start interface on boot."
- },
- "ovs_bridge" : {
- "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-iface"
- },
- "address6" : {
- "optional" : 1,
- "description" : "IP address.",
- "requires" : "netmask6",
- "type" : "string",
- "format" : "ipv6"
- },
- "delete" : {
- "optional" : 1,
- "description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list",
- "type" : "string"
- },
- "ovs_options" : {
- "type" : "string",
- "description" : "OVS interface options.",
- "maxLength" : 1024,
- "optional" : 1
- },
- "ovs_ports" : {
- "optional" : 1,
- "description" : "Specify the iterfaces you want to add to your bridge.",
- "type" : "string",
- "format" : "pve-iface-list"
- },
- "gateway" : {
- "description" : "Default gateway address.",
- "optional" : 1,
- "format" : "ipv4",
- "type" : "string"
- },
- "netmask6" : {
- "description" : "Network mask.",
- "optional" : 1,
- "minimum" : 0,
- "maximum" : 128,
- "requires" : "address6",
- "type" : "integer"
+ "typetext" : "<boolean>"
}
}
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
"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" : {
- "type" : "string"
- },
- "type" : {
- "type" : "string"
- }
- }
},
+ "protected" : 1,
"proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Upload or update custom certificate chain and key.",
+ "method" : "POST",
+ "name" : "upload_custom_cert",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "node" : {
- "description" : "The cluster node name.",
+ "certificates" : {
+ "description" : "PEM encoded certificate (chain).",
+ "format" : "pem-certificate-chain",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
},
- "iface" : {
- "minLength" : 2,
- "description" : "Network interface name.",
- "maxLength" : 20,
+ "force" : {
+ "default" : 0,
+ "description" : "Overwrite existing custom or ACME certificate files.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "key" : {
+ "description" : "PEM encoded private key.",
+ "format" : "pem-string",
+ "optional" : 1,
"type" : "string",
- "format" : "pve-iface"
- }
- },
- "additionalProperties" : 0
- }
- },
- "DELETE" : {
- "description" : "Delete network device configuration",
- "method" : "DELETE",
- "name" : "delete_network",
- "returns" : {
- "type" : "null"
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "restart" : {
+ "default" : 0,
+ "description" : "Restart pveproxy.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
},
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
]
]
},
+ "protected" : 1,
"proxyto" : "node",
- "parameters" : {
+ "returns" : {
"properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "iface" : {
- "description" : "Network interface name.",
- "maxLength" : 20,
- "minLength" : 2,
- "format" : "pve-iface",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- }
- }
- }
- }
- ],
- "info" : {
- "DELETE" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- }
- },
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "method" : "DELETE",
- "name" : "revert_network_changes",
- "returns" : {
- "type" : "null"
- },
- "description" : "Revert network configuration changes."
- },
- "GET" : {
- "description" : "List available networks",
- "permissions" : {
- "user" : "all"
- },
- "name" : "index",
- "method" : "GET",
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "links" : [
- {
- "href" : "{iface}",
- "rel" : "child"
- }
- ]
- },
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "type" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Only list specific interface types.",
- "enum" : [
- "bridge",
- "bond",
- "eth",
- "alias",
- "vlan",
- "OVSBridge",
- "OVSBond",
- "OVSPort",
- "OVSIntPort",
- "any_bridge"
- ]
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- }
- }
- },
- "POST" : {
- "method" : "POST",
- "name" : "create_network",
- "returns" : {
- "type" : "null"
- },
- "description" : "Create network device configuration",
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "slaves" : {
- "format" : "pve-iface-list",
- "type" : "string",
- "description" : "Specify the interfaces used by the bonding device.",
- "optional" : 1
- },
- "bond_xmit_hash_policy" : {
- "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
- "optional" : 1,
- "enum" : [
- "layer2",
- "layer2+3",
- "layer3+4"
- ],
- "type" : "string"
- },
- "comments6" : {
- "description" : "Comments",
- "optional" : 1,
- "type" : "string"
- },
- "iface" : {
- "type" : "string",
- "format" : "pve-iface",
- "minLength" : 2,
- "description" : "Network interface name.",
- "maxLength" : 20
- },
- "type" : {
- "type" : "string",
- "description" : "Network interface type",
- "enum" : [
- "bridge",
- "bond",
- "eth",
- "alias",
- "vlan",
- "OVSBridge",
- "OVSBond",
- "OVSPort",
- "OVSIntPort",
- "unknown"
- ]
- },
- "ovs_tag" : {
- "minimum" : 1,
- "type" : "integer",
- "maximum" : 4094,
- "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
- "optional" : 1
- },
- "ovs_bonds" : {
- "description" : "Specify the interfaces used by the bonding device.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-iface-list"
- },
- "gateway6" : {
- "type" : "string",
- "format" : "ipv6",
- "optional" : 1,
- "description" : "Default ipv6 gateway address."
- },
- "ovs_options" : {
- "type" : "string",
- "description" : "OVS interface options.",
- "optional" : 1,
- "maxLength" : 1024
- },
- "address6" : {
- "format" : "ipv6",
- "requires" : "netmask6",
- "type" : "string",
- "description" : "IP address.",
- "optional" : 1
- },
- "netmask6" : {
- "minimum" : 0,
- "type" : "integer",
- "requires" : "address6",
- "maximum" : 128,
- "description" : "Network mask.",
- "optional" : 1
- },
- "ovs_ports" : {
- "format" : "pve-iface-list",
- "type" : "string",
- "optional" : 1,
- "description" : "Specify the iterfaces you want to add to your bridge."
- },
- "gateway" : {
- "format" : "ipv4",
- "type" : "string",
- "description" : "Default gateway address.",
- "optional" : 1
- },
- "ovs_bridge" : {
- "optional" : 1,
- "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
- "format" : "pve-iface",
- "type" : "string"
- },
- "autostart" : {
- "description" : "Automatically start interface on boot.",
- "optional" : 1,
- "type" : "boolean"
- },
- "bond_mode" : {
- "type" : "string",
- "enum" : [
- "balance-rr",
- "active-backup",
- "balance-xor",
- "broadcast",
- "802.3ad",
- "balance-tlb",
- "balance-alb",
- "balance-slb",
- "lacp-balance-slb",
- "lacp-balance-tcp"
- ],
- "description" : "Bonding mode.",
- "optional" : 1
- },
- "bridge_vlan_aware" : {
- "type" : "boolean",
- "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
- },
- "bridge_ports" : {
- "description" : "Specify the iterfaces you want to add to your bridge.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-iface-list"
- },
- "address" : {
- "optional" : 1,
- "description" : "IP address.",
- "format" : "ipv4",
- "requires" : "netmask",
- "type" : "string"
+ "filename" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "fingerprint" : {
+ "description" : "Certificate SHA 256 fingerprint.",
+ "optional" : 1,
+ "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
+ "type" : "string"
+ },
+ "issuer" : {
+ "description" : "Certificate issuer name.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "notafter" : {
+ "description" : "Certificate's notAfter timestamp (UNIX epoch).",
+ "optional" : 1,
+ "renderer" : "timestamp",
+ "type" : "integer"
+ },
+ "notbefore" : {
+ "description" : "Certificate's notBefore timestamp (UNIX epoch).",
+ "optional" : 1,
+ "renderer" : "timestamp",
+ "type" : "integer"
+ },
+ "pem" : {
+ "description" : "Certificate in PEM format",
+ "format" : "pem-certificate",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "public-key-bits" : {
+ "description" : "Certificate's public key size",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "public-key-type" : {
+ "description" : "Certificate's public key algorithm",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "san" : {
+ "description" : "List of Certificate's SubjectAlternativeName entries.",
+ "items" : {
+ "type" : "string"
+ },
+ "optional" : 1,
+ "renderer" : "yaml",
+ "type" : "array"
+ },
+ "subject" : {
+ "description" : "Certificate subject name.",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
- }
+ "leaf" : 1,
+ "path" : "/nodes/{node}/certificates/custom",
+ "text" : "custom"
}
- }
- },
- {
- "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).",
+ "allowtoken" : 1,
+ "description" : "Node index.",
"method" : "GET",
- "name" : "node_tasks",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "limit" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1
- },
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"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
+ "typetext" : "<string>"
}
}
},
- "proxyto" : "node",
+ "permissions" : {
+ "user" : "all"
+ },
"returns" : {
"items" : {
- "properties" : {
- "upid" : {
- "type" : "string"
- }
- },
+ "properties" : {},
"type" : "object"
},
- "type" : "array",
"links" : [
{
- "href" : "{upid}",
+ "href" : "{name}",
"rel" : "child"
}
- ]
+ ],
+ "type" : "array"
}
}
},
- "path" : "/nodes/{node}/tasks",
- "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",
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "limit" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1
- },
- "start" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1
- },
- "upid" : {
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "description" : "Read task log.",
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "n" : {
- "type" : "integer",
- "description" : "Line number"
- },
- "t" : {
- "description" : "Line text",
- "type" : "string"
- }
- }
- },
- "type" : "array"
- },
- "method" : "GET",
- "name" : "read_task_log"
- }
+ "leaf" : 0,
+ "path" : "/nodes/{node}/certificates",
+ "text" : "certificates"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get node configuration options.",
+ "method" : "GET",
+ "name" : "get_config",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "property" : {
+ "default" : "all",
+ "description" : "Return only a specific property from the node configuration.",
+ "enum" : [
+ "acme",
+ "acmedomain0",
+ "acmedomain1",
+ "acmedomain2",
+ "acmedomain3",
+ "acmedomain4",
+ "acmedomain5",
+ "description",
+ "startall-onboot-delay",
+ "wakeonlan"
+ ],
+ "optional" : 1,
+ "type" : "string"
}
- },
- {
- "text" : "status",
- "leaf" : 1,
- "info" : {
- "GET" : {
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "upid" : {
- "type" : "string"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "acme" : {
+ "description" : "Node specific ACME settings.",
+ "format" : {
+ "account" : {
+ "default" : "default",
+ "description" : "ACME account config file name.",
+ "format" : "pve-configid",
+ "format_description" : "name",
+ "optional" : 1,
+ "type" : "string"
},
- "protected" : 1,
- "permissions" : {
- "user" : "all",
- "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if the task does not belong to him."
+ "domains" : {
+ "description" : "List of domains for this node's ACME certificate",
+ "format" : "pve-acme-domain-list",
+ "format_description" : "domain[;domain;...]",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "acmedomain[n]" : {
+ "description" : "ACME domain and validation plugin",
+ "format" : {
+ "alias" : {
+ "description" : "Alias for the Domain to verify ACME Challenge over DNS",
+ "format" : "pve-acme-alias",
+ "format_description" : "domain",
+ "optional" : 1,
+ "type" : "string"
},
- "method" : "GET",
- "name" : "read_task_status",
- "returns" : {
- "type" : "object",
- "properties" : {
- "status" : {
- "enum" : [
- "running",
- "stopped"
- ],
- "type" : "string"
- },
- "pid" : {
- "type" : "integer"
- }
- }
+ "domain" : {
+ "default_key" : 1,
+ "description" : "domain for this node's ACME certificate",
+ "format" : "pve-acme-domain",
+ "format_description" : "domain",
+ "type" : "string"
},
- "description" : "Read task status."
- }
+ "plugin" : {
+ "default" : "standalone",
+ "description" : "The ACME plugin ID",
+ "format" : "pve-configid",
+ "format_description" : "name of the plugin configuration",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
},
- "path" : "/nodes/{node}/tasks/{upid}/status"
- }
- ],
- "info" : {
- "GET" : {
- "description" : "",
- "permissions" : {
- "user" : "all"
+ "description" : {
+ "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
+ "maxLength" : 65536,
+ "optional" : 1,
+ "type" : "string"
},
- "name" : "upid_index",
- "method" : "GET",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "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.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "startall-onboot-delay" : {
+ "default" : 0,
+ "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
+ "maximum" : 300,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "wakeonlan" : {
+ "description" : "MAC address for wake on LAN",
+ "format" : "mac-addr",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Set node configuration options.",
+ "method" : "PUT",
+ "name" : "set_options",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "acme" : {
+ "description" : "Node specific ACME settings.",
+ "format" : {
+ "account" : {
+ "default" : "default",
+ "description" : "ACME account config file name.",
+ "format" : "pve-configid",
+ "format_description" : "name",
+ "optional" : 1,
+ "type" : "string"
},
- "upid" : {
+ "domains" : {
+ "description" : "List of domains for this node's ACME certificate",
+ "format" : "pve-acme-domain-list",
+ "format_description" : "domain[;domain;...]",
+ "optional" : 1,
"type" : "string"
}
- }
- },
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
},
- "links" : [
- {
- "rel" : "child",
- "href" : "{name}"
- }
- ]
- }
- },
- "DELETE" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "upid" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[account=<name>] [,domains=<domain[;domain;...]>]"
+ },
+ "acmedomain[n]" : {
+ "description" : "ACME domain and validation plugin",
+ "format" : {
+ "alias" : {
+ "description" : "Alias for the Domain to verify ACME Challenge over DNS",
+ "format" : "pve-acme-alias",
+ "format_description" : "domain",
+ "optional" : 1,
"type" : "string"
},
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "domain" : {
+ "default_key" : 1,
+ "description" : "domain for this node's ACME certificate",
+ "format" : "pve-acme-domain",
+ "format_description" : "domain",
+ "type" : "string"
+ },
+ "plugin" : {
+ "default" : "standalone",
+ "description" : "The ACME plugin ID",
+ "format" : "pve-configid",
+ "format_description" : "name of the plugin configuration",
+ "optional" : 1,
"type" : "string"
}
- }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[domain=]<domain> [,alias=<domain>] [,plugin=<name of the plugin configuration>]"
},
- "proxyto" : "node",
- "permissions" : {
- "user" : "all",
- "description" : "The user needs 'Sys.Modify' permissions on '/nodes/<node>' if the task does not belong to him."
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "protected" : 1,
- "method" : "DELETE",
- "name" : "stop_task",
- "returns" : {
- "type" : "null"
+ "description" : {
+ "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
+ "maxLength" : 65536,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "startall-onboot-delay" : {
+ "default" : 0,
+ "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
+ "maximum" : 300,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 300)"
},
- "description" : "Stop a task."
+ "wakeonlan" : {
+ "description" : "MAC address for wake on LAN",
+ "format" : "mac-addr",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
}
},
- "path" : "/nodes/{node}/tasks/{upid}"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
}
- ]
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/config",
+ "text" : "config"
},
{
- "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"
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List zone content.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "zone" : {
+ "description" : "The SDN zone object identifier.",
+ "format" : "pve-sdn-zone-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/zones/{zone}",
+ [
+ "SDN.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "status" : {
+ "description" : "Status.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "statusmsg" : {
+ "description" : "Status details",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "vnet" : {
+ "description" : "Vnet identifier.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{vnet}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
}
},
- "type" : "object"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/sdn/zones/{zone}/content",
+ "text" : "content"
}
- },
- "name" : "zfsscan",
- "method" : "GET",
- "description" : "Scan zfs pool list on local node.",
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/storage",
- [
- "Datastore.Allocate"
- ]
- ]
- },
- "protected" : 1
- }
- }
- },
- {
- "path" : "/nodes/{node}/scan/nfs",
- "info" : {
- "GET" : {
- "description" : "Scan remote NFS server.",
- "method" : "GET",
- "name" : "nfsscan",
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "path" : {
- "type" : "string"
- },
- "options" : {
- "type" : "string"
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "",
+ "method" : "GET",
+ "name" : "diridx",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "zone" : {
+ "description" : "The SDN zone object identifier.",
+ "format" : "pve-sdn-zone-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
}
- }
- },
- "type" : "array"
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/storage",
- [
- "Datastore.Allocate"
- ]
- ]
- },
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "server" : {
- "type" : "string",
- "format" : "pve-storage-server"
},
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/sdn/zones/{zone}",
+ [
+ "SDN.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
- },
- "additionalProperties" : 0
- }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/sdn/zones/{zone}",
+ "text" : "{zone}"
}
- },
- "leaf" : 1,
- "text" : "nfs"
- },
- {
- "path" : "/nodes/{node}/scan/glusterfs",
+ ],
"info" : {
"GET" : {
- "proxyto" : "node",
+ "allowtoken" : 1,
+ "description" : "Get status for all zones.",
+ "method" : "GET",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "server" : {
- "format" : "pve-storage-server",
- "type" : "string"
- },
"node" : {
- "type" : "string",
+ "description" : "The cluster node name.",
"format" : "pve-node",
- "description" : "The cluster node name."
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "protected" : 1,
"permissions" : {
- "check" : [
- "perm",
- "/storage",
- [
- "Datastore.Allocate"
- ]
- ]
- },
- "name" : "glusterfsscan",
- "method" : "GET",
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "volname" : {
- "type" : "string"
- }
- }
- }
+ "description" : "Only list entries where you have 'SDN.Audit'",
+ "user" : "all"
},
- "description" : "Scan remote GlusterFS server."
- }
- },
- "text" : "glusterfs",
- "leaf" : 1
- },
- {
- "path" : "/nodes/{node}/scan/iscsi",
- "info" : {
- "GET" : {
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "type" : "array",
"items" : {
"properties" : {
- "target" : {
+ "status" : {
+ "description" : "Status of zone",
+ "enum" : [
+ "available",
+ "pending",
+ "error"
+ ],
"type" : "string"
},
- "portal" : {
+ "zone" : {
+ "description" : "The SDN zone object identifier.",
+ "format" : "pve-sdn-zone-id",
"type" : "string"
}
},
"type" : "object"
- }
- },
- "method" : "GET",
- "name" : "iscsiscan",
- "description" : "Scan remote iSCSI server.",
- "parameters" : {
- "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",
- "/storage",
- [
- "Datastore.Allocate"
- ]
- ]
+ "links" : [
+ {
+ "href" : "{zone}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
}
},
- "text" : "iscsi",
- "leaf" : 1
- },
- {
- "path" : "/nodes/{node}/scan/lvm",
- "info" : {
- "GET" : {
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "vg" : {
- "type" : "string"
- }
- }
- },
- "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" : 0,
+ "path" : "/nodes/{node}/sdn/zones",
+ "text" : "zones"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "SDN index.",
+ "method" : "GET",
+ "name" : "sdnindex",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
}
},
- "leaf" : 1,
- "text" : "lvm"
- },
- {
- "leaf" : 1,
- "text" : "lvmthin",
- "info" : {
- "GET" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/storage",
- [
- "Datastore.Allocate"
- ]
- ]
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "vg" : {
- "type" : "string",
- "pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+",
- "maxLength" : 100
- }
- },
- "additionalProperties" : 0
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/sdn",
+ "text" : "sdn"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "API version details",
+ "method" : "GET",
+ "name" : "version",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "release" : {
+ "description" : "The current installed Proxmox VE Release",
+ "type" : "string"
},
- "proxyto" : "node",
- "description" : "List local LVM Thin Pools.",
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {
- "lv" : {
- "type" : "string"
- }
- },
- "type" : "object"
- }
+ "repoid" : {
+ "description" : "The short git commit hash ID from which this version was build",
+ "type" : "string"
},
- "method" : "GET",
- "name" : "lvmthinscan"
+ "version" : {
+ "description" : "The current installed pve-manager package version",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/version",
+ "text" : "version"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read node status",
+ "method" : "GET",
+ "name" : "status",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
}
},
- "path" : "/nodes/{node}/scan/lvmthin"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "object"
+ }
},
- {
- "text" : "usb",
- "leaf" : 1,
- "path" : "/nodes/{node}/scan/usb",
- "info" : {
- "GET" : {
- "description" : "List local USB devices.",
- "returns" : {
- "items" : {
- "properties" : {
- "port" : {
- "type" : "integer"
- },
- "prodid" : {
- "type" : "string"
- },
- "manufacturer" : {
- "optional" : 1,
- "type" : "string"
- },
- "product" : {
- "optional" : 1,
- "type" : "string"
- },
- "class" : {
- "type" : "integer"
- },
- "devnum" : {
- "type" : "integer"
- },
- "level" : {
- "type" : "integer"
- },
- "vendid" : {
- "type" : "string"
- },
- "usbpath" : {
- "type" : "string",
- "optional" : 1
- },
- "busnum" : {
- "type" : "integer"
- },
- "serial" : {
- "optional" : 1,
- "type" : "string"
- },
- "speed" : {
- "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."
- }
- }
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Reboot or shutdown a node.",
+ "method" : "POST",
+ "name" : "node_cmd",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "command" : {
+ "description" : "Specify the command.",
+ "enum" : [
+ "reboot",
+ "shutdown"
+ ],
+ "type" : "string"
},
- "proxyto" : "node"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
}
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.PowerMgmt"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
}
}
- ],
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/status",
+ "text" : "status"
+ },
+ {
"info" : {
"GET" : {
- "description" : "Index of available scan methods",
- "permissions" : {
- "user" : "all"
- },
+ "allowtoken" : 1,
+ "description" : "Read tap/vm network device interface counters",
+ "method" : "GET",
+ "name" : "netstat",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
},
+ "proxyto" : "node",
"returns" : {
- "type" : "array",
"items" : {
- "properties" : {
- "method" : {
- "type" : "string"
- }
- },
+ "properties" : {},
"type" : "object"
},
- "links" : [
- {
- "rel" : "child",
- "href" : "{method}"
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/netstat",
+ "text" : "netstat"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Execute multiple commands in order.",
+ "method" : "POST",
+ "name" : "execute",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "commands" : {
+ "description" : "JSON encoded array of commands.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
]
},
- "method" : "GET",
- "name" : "index"
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "array"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/execute",
+ "text" : "execute"
},
{
- "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"
- }
- ]
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Try to wake a node via 'wake on LAN' network packet.",
+ "method" : "POST",
+ "name" : "wakeonlan",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "target node for wake on LAN packet",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "children" : [
- {
- "children" : [
- {
- "path" : "/nodes/{node}/storage/{storage}/content/{volume}",
- "info" : {
- "DELETE" : {
- "protected" : 1,
- "permissions" : {
- "description" : "You need 'Datastore.Allocate' privilege on the storage (or 'Datastore.AllocateSpace' for backup volumes if you have VM.Backup privilege on the VM).",
- "user" : "all"
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "storage" : {
- "optional" : 1,
- "description" : "The storage identifier.",
- "format" : "pve-storage-id",
- "type" : "string"
- },
- "volume" : {
- "description" : "Volume identifier",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "description" : "Delete volume",
- "returns" : {
- "type" : "null"
- },
- "method" : "DELETE",
- "name" : "delete"
- },
- "GET" : {
- "returns" : {
- "type" : "object"
- },
- "name" : "info",
- "method" : "GET",
- "description" : "Get volume attributes",
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "storage" : {
- "optional" : 1,
- "description" : "The storage identifier.",
- "format" : "pve-storage-id",
- "type" : "string"
- },
- "volume" : {
- "description" : "Volume identifier",
- "type" : "string"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- }
- },
- "protected" : 1,
- "permissions" : {
- "user" : "all",
- "description" : "You need read access for the volume."
- }
- },
- "POST" : {
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "target" : {
- "description" : "Target volume identifier",
- "type" : "string"
- },
- "volume" : {
- "type" : "string",
- "description" : "Source volume identifier"
- },
- "storage" : {
- "format" : "pve-storage-id",
- "type" : "string",
- "description" : "The storage identifier.",
- "optional" : 1
- },
- "target_node" : {
- "format" : "pve-node",
- "type" : "string",
- "optional" : 1,
- "description" : "Target node. Default is local node."
- }
- }
- },
- "returns" : {
- "type" : "string"
- },
- "method" : "POST",
- "name" : "copy",
- "description" : "Copy a volume. This is experimental code - do not use.",
- "protected" : 1
- }
- },
- "text" : "{volume}",
- "leaf" : 1
- }
- ],
- "info" : {
- "GET" : {
- "returns" : {
- "items" : {
- "properties" : {
- "volid" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{volid}"
- }
- ]
- },
- "method" : "GET",
- "name" : "index",
- "description" : "List storage content.",
- "parameters" : {
- "properties" : {
- "vmid" : {
- "optional" : 1,
- "description" : "Only list images for this VM",
- "type" : "integer",
- "format" : "pve-vmid",
- "minimum" : 1
- },
- "storage" : {
- "description" : "The storage identifier.",
- "type" : "string",
- "format" : "pve-storage-id"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "content" : {
- "description" : "Only list content of this type.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-storage-content"
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.Audit",
- "Datastore.AllocateSpace"
- ],
- "any",
- 1
- ]
- },
- "protected" : 1
- },
- "POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.AllocateSpace"
- ]
- ]
- },
- "protected" : 1,
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "storage" : {
- "format" : "pve-storage-id",
- "type" : "string",
- "description" : "The storage identifier."
- },
- "format" : {
- "type" : "string",
- "requires" : "size",
- "enum" : [
- "raw",
- "qcow2",
- "subvol"
- ],
- "optional" : 1
- },
- "vmid" : {
- "description" : "Specify owner VM",
- "minimum" : 1,
- "format" : "pve-vmid",
- "type" : "integer"
- },
- "size" : {
- "type" : "string",
- "description" : "Size in kilobyte (1024 bytes). Optional suffixes 'M' (megabyte, 1024K) and 'G' (gigabyte, 1024M)",
- "pattern" : "\\d+[MG]?"
- },
- "filename" : {
- "description" : "The name of the file to create.",
- "type" : "string"
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- }
- }
- },
- "proxyto" : "node",
- "description" : "Allocate disk images.",
- "name" : "create",
- "method" : "POST",
- "returns" : {
- "description" : "Volume identifier",
- "type" : "string"
- }
- }
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.PowerMgmt"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "description" : "MAC address used to assemble the WoL magic packet.",
+ "format" : "mac-addr",
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/wakeonlan",
+ "text" : "wakeonlan"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read node RRD statistics (returns PNG)",
+ "method" : "GET",
+ "name" : "rrd",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cf" : {
+ "description" : "The RRD consolidation function",
+ "enum" : [
+ "AVERAGE",
+ "MAX"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "path" : "/nodes/{node}/storage/{storage}/content",
- "text" : "content",
- "leaf" : 0
- },
- {
- "text" : "status",
- "leaf" : 1,
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "read_status",
- "returns" : {
- "properties" : {},
- "type" : "object"
- },
- "description" : "Read storage status.",
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "storage" : {
- "description" : "The storage identifier.",
- "type" : "string",
- "format" : "pve-storage-id"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.Audit",
- "Datastore.AllocateSpace"
- ],
- "any",
- 1
- ]
- }
- }
+ "ds" : {
+ "description" : "The list of datasources you want to display.",
+ "format" : "pve-configid-list",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "path" : "/nodes/{node}/storage/{storage}/status"
- },
- {
- "path" : "/nodes/{node}/storage/{storage}/rrd",
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "rrd",
- "returns" : {
- "type" : "object",
- "properties" : {
- "filename" : {
- "type" : "string"
- }
- }
- },
- "description" : "Read storage RRD statistics (returns PNG).",
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "cf" : {
- "optional" : 1,
- "description" : "The RRD consolidation function",
- "enum" : [
- "AVERAGE",
- "MAX"
- ],
- "type" : "string"
- },
- "storage" : {
- "description" : "The storage identifier.",
- "type" : "string",
- "format" : "pve-storage-id"
- },
- "timeframe" : {
- "enum" : [
- "hour",
- "day",
- "week",
- "month",
- "year"
- ],
- "description" : "Specify the time frame you are interested in.",
- "type" : "string"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "ds" : {
- "format" : "pve-configid-list",
- "type" : "string",
- "description" : "The list of datasources you want to display."
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.Audit",
- "Datastore.AllocateSpace"
- ],
- "any",
- 1
- ]
- },
- "protected" : 1
- }
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "leaf" : 1,
- "text" : "rrd"
- },
- {
- "text" : "rrddata",
- "leaf" : 1,
- "path" : "/nodes/{node}/storage/{storage}/rrddata",
- "info" : {
- "GET" : {
- "description" : "Read storage RRD statistics.",
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
- }
- },
- "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",
- "enum" : [
- "AVERAGE",
- "MAX"
- ],
- "optional" : 1,
- "description" : "The RRD consolidation function"
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- }
- }
- }
- }
+ "timeframe" : {
+ "description" : "Specify the time frame you are interested in.",
+ "enum" : [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "type" : "string"
}
- },
- {
- "text" : "upload",
- "leaf" : 1,
- "path" : "/nodes/{node}/storage/{storage}/upload",
- "info" : {
- "POST" : {
- "method" : "POST",
- "name" : "upload",
- "returns" : {
- "type" : "string"
- },
- "parameters" : {
- "properties" : {
- "storage" : {
- "description" : "The storage identifier.",
- "format" : "pve-storage-id",
- "type" : "string"
- },
- "tmpfilename" : {
- "optional" : 1,
- "description" : "The source file name. This parameter is usually set by the REST handler. You can only overwrite it when connecting to the trustet port on localhost.",
- "type" : "string"
- },
- "content" : {
- "format" : "pve-storage-content",
- "type" : "string",
- "description" : "Content type."
- },
- "filename" : {
- "description" : "The name of the file to create.",
- "type" : "string"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "protected" : 1,
- "description" : "Upload templates and ISO images.",
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.AllocateTemplate"
- ]
- ]
- }
- }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "properties" : {
+ "filename" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/rrd",
+ "text" : "rrd"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read node RRD statistics",
+ "method" : "GET",
+ "name" : "rrddata",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cf" : {
+ "description" : "The RRD consolidation function",
+ "enum" : [
+ "AVERAGE",
+ "MAX"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "timeframe" : {
+ "description" : "Specify the time frame you are interested in.",
+ "enum" : [
+ "hour",
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "type" : "string"
}
}
- ],
- "path" : "/nodes/{node}/storage/{storage}",
- "text" : "{storage}",
- "leaf" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
+ }
}
- ],
- "path" : "/nodes/{node}/storage",
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/rrddata",
+ "text" : "rrddata"
+ },
+ {
"info" : {
"GET" : {
- "description" : "Get status for all datastores.",
+ "allowtoken" : 1,
+ "description" : "Read system log",
+ "method" : "GET",
+ "name" : "syslog",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "limit" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "service" : {
+ "description" : "Service ID",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "since" : {
+ "description" : "Display all log since this date-time string.",
+ "optional" : 1,
+ "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
+ "type" : "string"
+ },
+ "start" : {
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "until" : {
+ "description" : "Display all log until this date-time string.",
+ "optional" : 1,
+ "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Syslog"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
"items" : {
- "type" : "object",
"properties" : {
- "storage" : {
+ "n" : {
+ "description" : "Line number",
+ "type" : "integer"
+ },
+ "t" : {
+ "description" : "Line text",
"type" : "string"
}
- }
+ },
+ "type" : "object"
},
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{storage}"
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/syslog",
+ "text" : "syslog"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read Journal",
+ "method" : "GET",
+ "name" : "journal",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "endcursor" : {
+ "description" : "End before the given Cursor. Conflicts with 'until'",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "lastentries" : {
+ "description" : "Limit to the last X lines. Conflicts with a range.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "since" : {
+ "description" : "Display all log since this UNIX epoch. Conflicts with 'startcursor'.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "startcursor" : {
+ "description" : "Start after the given Cursor. Conflicts with 'since'",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "until" : {
+ "description" : "Display all log until this UNIX epoch. Conflicts with 'endcursor'.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
}
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Syslog"
+ ]
]
},
- "name" : "index",
- "method" : "GET",
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "type" : "string"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/journal",
+ "text" : "journal"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Creates a VNC Shell proxy.",
+ "method" : "POST",
+ "name" : "vncshell",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cmd" : {
+ "default" : "login",
+ "description" : "Run specific command or default to login.",
+ "enum" : [
+ "ceph_install",
+ "upgrade",
+ "login"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cmd-opts" : {
+ "default" : "",
+ "description" : "Add parameters to a command. Encoded as null terminated strings.",
+ "optional" : 1,
+ "requires" : "cmd",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "height" : {
+ "description" : "sets the height of the console in pixels.",
+ "maximum" : 2160,
+ "minimum" : 16,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (16 - 2160)"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "websocket" : {
+ "description" : "use websocket instead of standard vnc.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "width" : {
+ "description" : "sets the width of the console in pixels.",
+ "maximum" : 4096,
+ "minimum" : 16,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (16 - 4096)"
+ }
+ }
+ },
"permissions" : {
- "user" : "all",
- "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'"
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Console"
+ ]
+ ],
+ "description" : "Restricted to users on realm 'pam'"
},
"protected" : 1,
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cert" : {
+ "type" : "string"
+ },
+ "port" : {
+ "type" : "integer"
+ },
+ "ticket" : {
+ "type" : "string"
+ },
+ "upid" : {
+ "type" : "string"
+ },
+ "user" : {
+ "type" : "string"
+ }
+ }
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/vncshell",
+ "text" : "vncshell"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Creates a VNC Shell proxy.",
+ "method" : "POST",
+ "name" : "termproxy",
"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" : {
+ "cmd" : {
+ "default" : "login",
+ "description" : "Run specific command or default to login.",
+ "enum" : [
+ "ceph_install",
+ "upgrade",
+ "login"
+ ],
"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" : {
+ "cmd-opts" : {
+ "default" : "",
+ "description" : "Add parameters to a command. Encoded as null terminated strings.",
"optional" : 1,
- "description" : "Only list stores which are enabled (not disabled in config).",
- "default" : 0,
- "type" : "boolean"
+ "requires" : "cmd",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "storage" : {
- "format" : "pve-storage-id",
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
- "optional" : 1,
- "description" : "Only list status for specified storage"
+ "typetext" : "<string>"
}
}
},
- "proxyto" : "node"
- }
- }
- },
- {
- "text" : "apt",
- "leaf" : 0,
- "children" : [
- {
- "info" : {
- "POST" : {
- "proxyto" : "node",
- "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",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Console"
+ ]
+ ],
+ "description" : "Restricted to users on realm 'pam'"
+ },
+ "protected" : 1,
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "port" : {
+ "type" : "integer"
},
- "method" : "POST",
- "name" : "update_database",
- "returns" : {
+ "ticket" : {
"type" : "string"
},
- "description" : "This is used to resynchronize the package index files from their sources (apt-get update)."
- },
- "GET" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
- },
- "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"
- }
- },
- "path" : "/nodes/{node}/apt/update",
- "text" : "update",
- "leaf" : 1
- },
- {
- "leaf" : 1,
- "text" : "changelog",
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "changelog",
- "returns" : {
+ "upid" : {
"type" : "string"
},
- "parameters" : {
- "properties" : {
- "name" : {
- "description" : "Package name.",
- "type" : "string"
- },
- "version" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Package version."
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
- },
- "description" : "Get package changelogs."
+ "user" : {
+ "type" : "string"
+ }
}
- },
- "path" : "/nodes/{node}/apt/changelog"
- },
- {
- "text" : "versions",
- "leaf" : 1,
- "info" : {
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/termproxy",
+ "text" : "termproxy"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Opens a websocket for VNC traffic.",
+ "method" : "GET",
+ "name" : "vncwebsocket",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "description" : "Get package information for important Proxmox packages.",
- "method" : "GET",
- "name" : "versions",
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {}
- },
- "type" : "array"
+ "port" : {
+ "description" : "Port number returned by previous vncproxy call.",
+ "maximum" : 5999,
+ "minimum" : 5900,
+ "type" : "integer",
+ "typetext" : "<integer> (5900 - 5999)"
},
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- }
+ "vncticket" : {
+ "description" : "Ticket from previous call to vncproxy.",
+ "maxLength" : 512,
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "path" : "/nodes/{node}/apt/versions"
- }
- ],
- "path" : "/nodes/{node}/apt",
- "info" : {
- "GET" : {
- "description" : "Directory index for apt (Advanced Package Tool).",
"permissions" : {
- "user" : "all"
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Console"
+ ]
+ ],
+ "description" : "Restricted to users on realm 'pam'. You also need to pass a valid ticket (vncticket)."
},
- "method" : "GET",
- "name" : "index",
+ "returns" : {
+ "properties" : {
+ "port" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/vncwebsocket",
+ "text" : "vncwebsocket"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Creates a SPICE shell.",
+ "method" : "POST",
+ "name" : "spiceshell",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "cmd" : {
+ "default" : "login",
+ "description" : "Run specific command or default to login.",
+ "enum" : [
+ "ceph_install",
+ "upgrade",
+ "login"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "cmd-opts" : {
+ "default" : "",
+ "description" : "Add parameters to a command. Encoded as null terminated strings.",
+ "optional" : 1,
+ "requires" : "cmd",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"node" : {
"description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "proxy" : {
+ "description" : "SPICE proxy server. This can be used by the client to specify the proxy server. All nodes in a cluster runs 'spiceproxy', so it is up to the client to choose one. By default, we return the node where the VM is currently running. As reasonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI).",
+ "format" : "address",
+ "optional" : 1,
"type" : "string",
- "format" : "pve-node"
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Console"
+ ]
+ ],
+ "description" : "Restricted to users on realm 'pam'"
},
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "items" : {
- "properties" : {
- "id" : {
- "type" : "string"
- }
+ "additionalProperties" : 1,
+ "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
+ "properties" : {
+ "host" : {
+ "type" : "string"
},
- "type" : "object"
- },
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{id}"
- }
- ]
- }
- }
- }
- },
- {
- "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",
- "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,
- "type" : "string"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- }
- },
- "description" : "Delete rule.",
- "name" : "delete_rule",
- "method" : "DELETE",
- "returns" : {
- "type" : "null"
- }
- },
- "GET" : {
- "returns" : {
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- },
- "type" : "object"
- },
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "pos" : {
- "minimum" : 0,
- "type" : "integer",
- "description" : "Update rule at position <pos>.",
- "optional" : 1
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- }
- },
- "name" : "get_rule",
- "method" : "GET",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- },
- "description" : "Get single rule data."
- },
- "PUT" : {
- "method" : "PUT",
- "name" : "update_rule",
- "returns" : {
- "type" : "null"
- },
- "description" : "Modify rule data.",
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "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.",
- "type" : "string",
- "format" : "pve-fw-sport-spec"
- },
- "delete" : {
- "type" : "string",
- "format" : "pve-configid-list",
- "optional" : 1,
- "description" : "A list of settings you want to delete."
- },
- "moveto" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1,
- "description" : "Move rule to new position <moveto>. Other arguments are ignored."
- },
- "enable" : {
- "optional" : 1,
- "type" : "integer",
- "minimum" : 0
- },
- "dport" : {
- "format" : "pve-fw-dport-spec",
- "type" : "string",
- "optional" : 1,
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges."
- },
- "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'."
- },
- "macro" : {
- "optional" : 1,
- "maxLength" : 128,
- "type" : "string"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "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.",
- "optional" : 1,
- "minLength" : 2,
- "format" : "pve-iface",
- "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"
- },
- "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",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
- }
- }
+ "password" : {
+ "type" : "string"
+ },
+ "proxy" : {
+ "type" : "string"
+ },
+ "tls-port" : {
+ "type" : "integer"
+ },
+ "type" : {
+ "type" : "string"
}
}
- ],
- "path" : "/nodes/{node}/firewall/rules",
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "get_rules",
- "returns" : {
- "links" : [
- {
- "href" : "{pos}",
- "rel" : "child"
- }
- ],
- "items" : {
- "properties" : {
- "pos" : {
- "type" : "integer"
- }
- },
- "type" : "object"
- },
- "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/spiceshell",
+ "text" : "spiceshell"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read DNS settings.",
+ "method" : "GET",
+ "name" : "dns",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "dns1" : {
+ "description" : "First name server IP address.",
+ "optional" : 1,
+ "type" : "string"
},
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
+ "dns2" : {
+ "description" : "Second name server IP address.",
+ "optional" : 1,
+ "type" : "string"
},
- "proxyto" : "node",
- "description" : "List rules.",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
+ "dns3" : {
+ "description" : "Third name server IP address.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "search" : {
+ "description" : "Search domain for host-name lookup.",
+ "optional" : 1,
+ "type" : "string"
}
},
- "POST" : {
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "digest" : {
- "maxLength" : 40,
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "optional" : 1,
- "type" : "string"
- },
- "proto" : {
- "type" : "string",
- "format" : "pve-fw-protocol-spec",
- "optional" : 1,
- "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'."
- },
- "iface" : {
- "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,
- "minLength" : 2,
- "format" : "pve-iface",
- "type" : "string"
- },
- "dport" : {
- "optional" : 1,
- "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
- "type" : "string",
- "format" : "pve-fw-dport-spec"
- },
- "enable" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1
- },
- "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,
- "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.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-fw-sport-spec"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "pos" : {
- "type" : "integer",
- "minimum" : 0,
- "description" : "Update rule at position <pos>.",
- "optional" : 1
- },
- "action" : {
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "minLength" : 2,
- "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
- "maxLength" : 20,
- "optional" : 0,
- "type" : "string"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- },
- "dest" : {
- "format" : "pve-fw-addr-spec",
- "type" : "string",
- "optional" : 1,
- "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists."
- },
- "macro" : {
- "type" : "string",
- "maxLength" : 128,
- "optional" : 1
- },
- "type" : {
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "optional" : 0,
- "type" : "string"
- }
- },
- "additionalProperties" : 0
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Write DNS settings.",
+ "method" : "PUT",
+ "name" : "update_dns",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "dns1" : {
+ "description" : "First name server IP address.",
+ "format" : "ip",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dns2" : {
+ "description" : "Second name server IP address.",
+ "format" : "ip",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dns3" : {
+ "description" : "Third name server IP address.",
+ "format" : "ip",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "search" : {
+ "description" : "Search domain for host-name lookup.",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/dns",
+ "text" : "dns"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read server time and time zone settings.",
+ "method" : "GET",
+ "name" : "time",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "localtime" : {
+ "description" : "Seconds since 1970-01-01 00:00:00 (local time)",
+ "minimum" : 1297163644,
+ "renderer" : "timestamp_gmt",
+ "type" : "integer"
},
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
+ "time" : {
+ "description" : "Seconds since 1970-01-01 00:00:00 UTC.",
+ "minimum" : 1297163644,
+ "renderer" : "timestamp",
+ "type" : "integer"
},
- "protected" : 1,
- "returns" : {
- "type" : "null"
+ "timezone" : {
+ "description" : "Time zone",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Set time zone.",
+ "method" : "PUT",
+ "name" : "set_timezone",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "method" : "POST",
- "name" : "create_rule",
- "description" : "Create new rule."
+ "timezone" : {
+ "description" : "Time zone. The file '/usr/share/zoneinfo/zone.tab' contains the list of valid names.",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/time",
+ "text" : "time"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get list of appliances.",
+ "method" : "GET",
+ "name" : "aplinfo",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
}
},
- "text" : "rules",
- "leaf" : 0
+ "permissions" : {
+ "user" : "all"
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "type" : "array"
+ }
},
- {
- "path" : "/nodes/{node}/firewall/options",
- "info" : {
- "PUT" : {
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Download appliance templates.",
+ "method" : "POST",
+ "name" : "apl_download",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "proxyto" : "node",
- "parameters" : {
- "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",
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "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
- },
- "log_level_out" : {
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ],
- "description" : "Log level for outgoing traffic.",
- "optional" : 1,
- "type" : "string"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "nf_conntrack_tcp_timeout_established" : {
- "minimum" : 7875,
- "type" : "integer",
- "description" : "Conntrack established timeout.",
- "optional" : 1
- },
- "tcp_flags_log_level" : {
- "type" : "string",
- "description" : "Log level for illegal tcp flags filter.",
- "optional" : 1,
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ]
- },
- "ndp" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Enable NDP."
- },
- "smurf_log_level" : {
- "type" : "string",
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ],
- "optional" : 1,
- "description" : "Log level for SMURFS filter."
- }
- },
- "additionalProperties" : 0
+ "storage" : {
+ "description" : "The storage where the template will be stored",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "template" : {
+ "description" : "The template which will downloaded",
+ "maxLength" : 255,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.AllocateTemplate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/aplinfo",
+ "text" : "aplinfo"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Query metadata of an URL: file size, file name and mime type.",
+ "method" : "GET",
+ "name" : "query_url_metadata",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "description" : "Set Firewall options.",
- "returns" : {
- "type" : "null"
+ "url" : {
+ "description" : "The URL to query the metadata from.",
+ "pattern" : "https?://.*",
+ "type" : "string"
},
- "name" : "set_options",
- "method" : "PUT"
+ "verify-certificates" : {
+ "default" : 1,
+ "description" : "If false, no SSL/TLS certificates will be verified.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "filename" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "mimetype" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "size" : {
+ "optional" : 1,
+ "renderer" : "bytes",
+ "type" : "integer"
+ }
},
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/query-url-metadata",
+ "text" : "query-url-metadata"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Gather various systems information about a node",
+ "method" : "GET",
+ "name" : "report",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/report",
+ "text" : "report"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Start all VMs and containers located on this node (by default only those with onboot=1).",
+ "method" : "POST",
+ "name" : "startall",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "force" : {
+ "default" : "off",
+ "description" : "Issue start command even if virtual guest have 'onboot' not set or set to off.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "description" : "Get host firewall options.",
- "method" : "GET",
- "name" : "get_options",
- "returns" : {
- "properties" : {
- "nf_conntrack_tcp_timeout_established" : {
- "optional" : 1,
- "description" : "Conntrack established timeout.",
- "type" : "integer",
- "minimum" : 7875
- },
- "ndp" : {
- "type" : "boolean",
- "description" : "Enable NDP.",
- "optional" : 1
- },
- "smurf_log_level" : {
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ],
- "description" : "Log level for SMURFS filter.",
- "optional" : 1,
- "type" : "string"
- },
- "tcp_flags_log_level" : {
- "type" : "string",
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ],
- "optional" : 1,
- "description" : "Log level for illegal tcp flags filter."
- },
- "log_level_in" : {
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "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" : {
- "enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
- ],
- "optional" : 1,
- "description" : "Log level for outgoing traffic.",
- "type" : "string"
- }
- },
- "type" : "object"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
+ "vms" : {
+ "description" : "Only consider guests from this comma separated list of VMIDs.",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "VM.PowerMgmt"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/startall",
+ "text" : "startall"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Stop all VMs and Containers.",
+ "method" : "POST",
+ "name" : "stopall",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vms" : {
+ "description" : "Only consider Guests with these IDs.",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "leaf" : 1,
- "text" : "options"
- },
- {
- "path" : "/nodes/{node}/firewall/log",
- "info" : {
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Syslog"
- ]
- ]
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "VM.PowerMgmt"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/stopall",
+ "text" : "stopall"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Migrate all VMs and Containers.",
+ "method" : "POST",
+ "name" : "migrateall",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "maxworkers" : {
+ "description" : "Maximal number of parallel migration job. If not set use 'max_workers' from datacenter.cfg, one of both must be set!",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
},
- "protected" : 1,
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "limit" : {
- "minimum" : 0,
- "type" : "integer",
- "optional" : 1
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "start" : {
- "optional" : 1,
- "type" : "integer",
- "minimum" : 0
- }
- }
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "description" : "Read firewall log",
- "returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "t" : {
- "description" : "Line text",
- "type" : "string"
- },
- "n" : {
- "type" : "integer",
- "description" : "Line number"
- }
- }
- },
- "type" : "array"
+ "target" : {
+ "description" : "Target node.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "method" : "GET",
- "name" : "log"
+ "vms" : {
+ "description" : "Only consider Guests with these IDs.",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "with-local-disks" : {
+ "description" : "Enable live storage migration for local disk",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
}
},
- "text" : "log",
- "leaf" : 1
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "VM.Migrate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
}
- ],
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/migrateall",
+ "text" : "migrateall"
+ },
+ {
"info" : {
"GET" : {
+ "allowtoken" : 1,
+ "description" : "Get the content of /etc/hosts.",
+ "method" : "GET",
+ "name" : "get_etc_hosts",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
"returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
+ "properties" : {
+ "data" : {
+ "description" : "The content of /etc/hosts.",
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string"
+ }
},
- "type" : "array",
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
+ "type" : "object"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Write /etc/hosts.",
+ "method" : "POST",
+ "name" : "write_etc_hosts",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "data" : {
+ "description" : "The target content of /etc/hosts.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
- ]
+ }
},
- "name" : "index",
- "method" : "GET",
- "description" : "Directory index.",
"permissions" : {
- "user" : "all"
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/hosts",
+ "text" : "hosts"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Node index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}",
+ "text" : "{node}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Cluster node index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "cpu" : {
+ "description" : "CPU utilization.",
+ "optional" : 1,
+ "renderer" : "fraction_as_percentage",
+ "type" : "number"
+ },
+ "level" : {
+ "description" : "Support level.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "maxcpu" : {
+ "description" : "Number of available CPUs.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "maxmem" : {
+ "description" : "Number of available memory in bytes.",
+ "optional" : 1,
+ "renderer" : "bytes",
+ "type" : "integer"
+ },
+ "mem" : {
+ "description" : "Used memory in bytes.",
+ "optional" : 1,
+ "renderer" : "bytes",
+ "type" : "integer"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "ssl_fingerprint" : {
+ "description" : "The SSL fingerprint for the node certificate.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "status" : {
+ "description" : "Node status.",
+ "enum" : [
+ "unknown",
+ "online",
+ "offline"
+ ],
+ "type" : "string"
+ },
+ "uptime" : {
+ "description" : "Node uptime in seconds.",
+ "optional" : 1,
+ "renderer" : "duration",
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{node}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes",
+ "text" : "nodes"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete storage configuration.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
},
- {
- "text" : "version",
- "leaf" : 1,
- "path" : "/nodes/{node}/version",
- "info" : {
- "GET" : {
- "description" : "API version details",
- "permissions" : {
- "user" : "all"
- },
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- }
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read storage configuration.",
+ "method" : "GET",
+ "name" : "read",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage/{storage}",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update storage configuration.",
+ "method" : "PUT",
+ "name" : "update",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "blocksize" : {
+ "description" : "block size",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "returns" : {
- "properties" : {
- "version" : {
- "type" : "string"
+ "bwlimit" : {
+ "description" : "Set bandwidth/io limits various operations.",
+ "format" : {
+ "clone" : {
+ "description" : "bandwidth limit in KiB/s for cloning disks",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
},
- "release" : {
- "type" : "string"
+ "default" : {
+ "description" : "default bandwidth limit in KiB/s",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
},
- "repoid" : {
- "type" : "string"
+ "migration" : {
+ "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "move" : {
+ "description" : "bandwidth limit in KiB/s for moving disks",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "restore" : {
+ "description" : "bandwidth limit in KiB/s for restoring guests from backups",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
}
},
- "type" : "object"
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
},
- "method" : "GET",
- "name" : "version"
- }
- }
- },
- {
- "text" : "status",
- "leaf" : 1,
- "path" : "/nodes/{node}/status",
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "status",
- "returns" : {
- "type" : "object",
- "properties" : {}
+ "comstar_hg" : {
+ "description" : "host group for comstar views",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- }
- },
- "additionalProperties" : 0
+ "comstar_tg" : {
+ "description" : "target group for comstar views",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "description" : "Read node status",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- }
- },
- "POST" : {
- "returns" : {
- "type" : "null"
+ "content" : {
+ "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
+ "format" : "pve-storage-content-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "name" : "node_cmd",
- "method" : "POST",
- "description" : "Reboot or shutdown a node.",
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- },
- "command" : {
- "enum" : [
- "reboot",
- "shutdown"
- ],
- "description" : "Specify the command.",
- "type" : "string"
- }
- }
+ "data-pool" : {
+ "description" : "Data Pool (for erasure coding only)",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disable" : {
+ "description" : "Flag to disable the storage.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "domain" : {
+ "description" : "CIFS domain.",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "encryption-key" : {
+ "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "fingerprint" : {
+ "description" : "Certificate SHA 256 fingerprint.",
+ "optional" : 1,
+ "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
+ "type" : "string"
+ },
+ "format" : {
+ "description" : "Default image format.",
+ "format" : "pve-storage-format",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "fs-name" : {
+ "description" : "The Ceph filesystem name.",
+ "format" : "pve-configid",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "fuse" : {
+ "description" : "Mount CephFS through FUSE.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "is_mountpoint" : {
+ "default" : "no",
+ "description" : "Assume the given path is an externally managed mountpoint and consider the storage offline if it is not mounted. Using a boolean (yes/no) value serves as a shortcut to using the target path in this field.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "keyring" : {
+ "description" : "Client keyring contents (for external clusters).",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "krbd" : {
+ "description" : "Always access rbd through krbd kernel module.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "lio_tpg" : {
+ "description" : "target portal group for Linux LIO targets",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "master-pubkey" : {
+ "description" : "Base64-encoded, PEM-formatted public RSA key. Used to encrypt a copy of the encryption-key which will be added to each encrypted backup.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "max-protected-backups" : {
+ "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
+ "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
+ "minimum" : -1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (-1 - N)"
+ },
+ "maxfiles" : {
+ "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "mkdir" : {
+ "default" : "yes",
+ "description" : "Create the directory if it doesn't exist.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "monhost" : {
+ "description" : "IP addresses of monitors (for external clusters).",
+ "format" : "pve-storage-portal-dns-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "mountpoint" : {
+ "description" : "mount point",
+ "format" : "pve-storage-path",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "namespace" : {
+ "description" : "RBD Namespace.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.PowerMgmt"
- ]
- ]
+ "nocow" : {
+ "default" : 0,
+ "description" : "Set the NOCOW flag on files. Disables data checksumming and causes data errors to be unrecoverable from while allowing direct I/O. Only use this if data does not need to be any more safe than on a single ext4 formatted disk with no underlying raid system.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "protected" : 1
- }
- }
- },
- {
- "leaf" : 1,
- "text" : "netstat",
- "path" : "/nodes/{node}/netstat",
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "netstat",
- "proxyto" : "node",
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
+ "nodes" : {
+ "description" : "List of cluster node names.",
+ "format" : "pve-node-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
- }
+ "nowritecache" : {
+ "description" : "disable write caching on the target",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "description" : "Read tap/vm network device interface counters",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- }
- }
- }
- },
- {
- "info" : {
- "POST" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "commands" : {
- "description" : "JSON encoded array of commands.",
- "type" : "string"
- },
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- }
- }
+ "options" : {
+ "description" : "NFS mount options (see 'man nfs')",
+ "format" : "pve-storage-options",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
+ "password" : {
+ "description" : "Password for accessing the share/datastore.",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "protected" : 1,
- "returns" : {
- "properties" : {},
- "type" : "array"
+ "pool" : {
+ "description" : "Pool.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "method" : "POST",
- "name" : "execute",
- "description" : "Execute multiple commands in order."
- }
- },
- "path" : "/nodes/{node}/execute",
- "leaf" : 1,
- "text" : "execute"
- },
- {
- "text" : "rrd",
- "leaf" : 1,
- "path" : "/nodes/{node}/rrd",
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "rrd",
- "returns" : {
- "type" : "object",
- "properties" : {
- "filename" : {
- "type" : "string"
- }
- }
+ "port" : {
+ "default" : 8007,
+ "description" : "For non default port.",
+ "maximum" : 65535,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 65535)"
},
- "parameters" : {
- "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"
- ],
- "type" : "string"
- },
- "timeframe" : {
- "enum" : [
- "hour",
- "day",
- "week",
- "month",
- "year"
- ],
- "description" : "Specify the time frame you are interested in.",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
+ "preallocation" : {
+ "default" : "metadata",
+ "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
+ "enum" : [
+ "off",
+ "metadata",
+ "falloc",
+ "full"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
+ "prune-backups" : {
+ "description" : "The retention options with shorter intervals are processed first with --keep-last being the very first one. Each option covers a specific period of time. We say that backups within this period are covered by this option. The next option does not take care of already covered backups and only considers older backups.",
+ "format" : "prune-backups",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
},
- "description" : "Read node RRD statistics (returns PNG)"
- }
- }
- },
- {
- "path" : "/nodes/{node}/rrddata",
- "info" : {
- "GET" : {
- "protected" : 1,
- "description" : "Read node RRD statistics",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
+ "saferemove" : {
+ "description" : "Zero-out data when removing LVs.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "method" : "GET",
- "name" : "rrddata",
- "returns" : {
- "type" : "array",
- "items" : {
- "properties" : {},
- "type" : "object"
- }
+ "saferemove_throughput" : {
+ "description" : "Wipe throughput (cstream -t parameter value).",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "timeframe" : {
- "description" : "Specify the time frame you are interested in.",
- "enum" : [
- "hour",
- "day",
- "week",
- "month",
- "year"
- ],
- "type" : "string"
- },
- "cf" : {
- "type" : "string",
- "optional" : 1,
- "description" : "The RRD consolidation function",
- "enum" : [
- "AVERAGE",
- "MAX"
- ]
- }
- },
- "additionalProperties" : 0
- }
- }
- },
- "text" : "rrddata",
- "leaf" : 1
- },
- {
- "text" : "syslog",
- "leaf" : 1,
- "path" : "/nodes/{node}/syslog",
- "info" : {
- "GET" : {
- "method" : "GET",
- "name" : "syslog",
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "t" : {
- "description" : "Line text",
- "type" : "string"
- },
- "n" : {
- "description" : "Line number",
- "type" : "integer"
- }
- }
- }
+ "server" : {
+ "description" : "Server IP or DNS name.",
+ "format" : "pve-storage-server",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "description" : "Read system log",
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "start" : {
- "optional" : 1,
- "type" : "integer",
- "minimum" : 0
- },
- "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,
- "type" : "string"
- },
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "limit" : {
- "optional" : 1,
- "type" : "integer",
- "minimum" : 0
- },
- "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})?)?$"
- }
- }
+ "server2" : {
+ "description" : "Backup volfile server IP or DNS name.",
+ "format" : "pve-storage-server",
+ "optional" : 1,
+ "requires" : "server",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Syslog"
- ]
- ]
+ "shared" : {
+ "description" : "Mark storage as shared.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "protected" : 1
- }
- }
- },
- {
- "text" : "vncshell",
- "leaf" : 1,
- "path" : "/nodes/{node}/vncshell",
- "info" : {
- "POST" : {
- "name" : "vncshell",
- "method" : "POST",
- "returns" : {
- "additionalProperties" : 0,
- "properties" : {
- "cert" : {
- "type" : "string"
- },
- "port" : {
- "type" : "integer"
- },
- "ticket" : {
- "type" : "string"
- },
- "upid" : {
- "type" : "string"
- },
- "user" : {
- "type" : "string"
- }
- }
+ "smbversion" : {
+ "default" : "default",
+ "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
+ "enum" : [
+ "default",
+ "2.0",
+ "2.1",
+ "3",
+ "3.0",
+ "3.11"
+ ],
+ "optional" : 1,
+ "type" : "string"
},
- "parameters" : {
- "properties" : {
- "upgrade" : {
- "type" : "boolean",
- "default" : 0,
- "optional" : 1,
- "description" : "Run 'apt-get dist-upgrade' instead of normal shell."
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "websocket" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "use websocket instead of standard vnc."
- }
- },
- "additionalProperties" : 0
+ "sparse" : {
+ "description" : "use sparse volumes",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Console"
- ]
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "subdir" : {
+ "description" : "Subdir to mount.",
+ "format" : "pve-storage-path",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tagged_only" : {
+ "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "transport" : {
+ "description" : "Gluster transport: tcp or rdma",
+ "enum" : [
+ "tcp",
+ "rdma",
+ "unix"
],
- "description" : "Restricted to users on realm 'pam'"
+ "optional" : 1,
+ "type" : "string"
},
- "description" : "Creates a VNC Shell proxy."
- }
- }
- },
- {
- "info" : {
- "GET" : {
- "returns" : {
+ "username" : {
+ "description" : "RBD Id.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "properties" : {
+ "config" : {
+ "additionalProperties" : 1,
+ "description" : "Partial, possible server generated, configuration properties.",
+ "optional" : 1,
"properties" : {
- "port" : {
+ "encryption-key" : {
+ "description" : "The, possible auto-generated, encryption-key.",
+ "optional" : 1,
"type" : "string"
}
},
"type" : "object"
},
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "port" : {
- "description" : "Port number returned by previous vncproxy call.",
- "minimum" : 5900,
- "type" : "integer",
- "maximum" : 5999
- },
- "vncticket" : {
- "description" : "Ticket from previous call to vncproxy.",
- "maxLength" : 512,
- "type" : "string"
- },
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- }
- }
+ "storage" : {
+ "description" : "The ID of the created storage.",
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "The type of the created storage.",
+ "enum" : [
+ "btrfs",
+ "cephfs",
+ "cifs",
+ "dir",
+ "glusterfs",
+ "iscsi",
+ "iscsidirect",
+ "lvm",
+ "lvmthin",
+ "nfs",
+ "pbs",
+ "rbd",
+ "zfs",
+ "zfspool"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/storage/{storage}",
+ "text" : "{storage}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Storage index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "type" : {
+ "description" : "Only list storage of specific type",
+ "enum" : [
+ "btrfs",
+ "cephfs",
+ "cifs",
+ "dir",
+ "glusterfs",
+ "iscsi",
+ "iscsidirect",
+ "lvm",
+ "lvmthin",
+ "nfs",
+ "pbs",
+ "rbd",
+ "zfs",
+ "zfspool"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "storage" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{storage}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a new storage.",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "authsupported" : {
+ "description" : "Authsupported.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "base" : {
+ "description" : "Base volume. This volume is automatically activated.",
+ "format" : "pve-volume-id",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "blocksize" : {
+ "description" : "block size",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "bwlimit" : {
+ "description" : "Set bandwidth/io limits various operations.",
+ "format" : {
+ "clone" : {
+ "description" : "bandwidth limit in KiB/s for cloning disks",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
},
- "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"
- ]
- ]
+ "default" : {
+ "description" : "default bandwidth limit in KiB/s",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "migration" : {
+ "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "move" : {
+ "description" : "bandwidth limit in KiB/s for moving disks",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
+ },
+ "restore" : {
+ "description" : "bandwidth limit in KiB/s for restoring guests from backups",
+ "format_description" : "LIMIT",
+ "minimum" : "0",
+ "optional" : 1,
+ "type" : "number"
}
- }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
+ },
+ "comstar_hg" : {
+ "description" : "host group for comstar views",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comstar_tg" : {
+ "description" : "target group for comstar views",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "content" : {
+ "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
+ "format" : "pve-storage-content-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "data-pool" : {
+ "description" : "Data Pool (for erasure coding only)",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "datastore" : {
+ "description" : "Proxmox Backup Server datastore name.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disable" : {
+ "description" : "Flag to disable the storage.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "domain" : {
+ "description" : "CIFS domain.",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "encryption-key" : {
+ "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "export" : {
+ "description" : "NFS export path.",
+ "format" : "pve-storage-path",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "fingerprint" : {
+ "description" : "Certificate SHA 256 fingerprint.",
+ "optional" : 1,
+ "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
+ "type" : "string"
+ },
+ "format" : {
+ "description" : "Default image format.",
+ "format" : "pve-storage-format",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "fs-name" : {
+ "description" : "The Ceph filesystem name.",
+ "format" : "pve-configid",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "fuse" : {
+ "description" : "Mount CephFS through FUSE.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "is_mountpoint" : {
+ "default" : "no",
+ "description" : "Assume the given path is an externally managed mountpoint and consider the storage offline if it is not mounted. Using a boolean (yes/no) value serves as a shortcut to using the target path in this field.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "iscsiprovider" : {
+ "description" : "iscsi provider",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "keyring" : {
+ "description" : "Client keyring contents (for external clusters).",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "krbd" : {
+ "description" : "Always access rbd through krbd kernel module.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "lio_tpg" : {
+ "description" : "target portal group for Linux LIO targets",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "master-pubkey" : {
+ "description" : "Base64-encoded, PEM-formatted public RSA key. Used to encrypt a copy of the encryption-key which will be added to each encrypted backup.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "max-protected-backups" : {
+ "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
+ "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
+ "minimum" : -1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (-1 - N)"
+ },
+ "maxfiles" : {
+ "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "mkdir" : {
+ "default" : "yes",
+ "description" : "Create the directory if it doesn't exist.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "monhost" : {
+ "description" : "IP addresses of monitors (for external clusters).",
+ "format" : "pve-storage-portal-dns-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "mountpoint" : {
+ "description" : "mount point",
+ "format" : "pve-storage-path",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "namespace" : {
+ "description" : "RBD Namespace.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nocow" : {
+ "default" : 0,
+ "description" : "Set the NOCOW flag on files. Disables data checksumming and causes data errors to be unrecoverable from while allowing direct I/O. Only use this if data does not need to be any more safe than on a single ext4 formatted disk with no underlying raid system.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "nodes" : {
+ "description" : "List of cluster node names.",
+ "format" : "pve-node-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nowritecache" : {
+ "description" : "disable write caching on the target",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "options" : {
+ "description" : "NFS mount options (see 'man nfs')",
+ "format" : "pve-storage-options",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "password" : {
+ "description" : "Password for accessing the share/datastore.",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "path" : {
+ "description" : "File system path.",
+ "format" : "pve-storage-path",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pool" : {
+ "description" : "Pool.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "port" : {
+ "default" : 8007,
+ "description" : "For non default port.",
+ "maximum" : 65535,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 65535)"
+ },
+ "portal" : {
+ "description" : "iSCSI portal (IP or DNS name with optional port).",
+ "format" : "pve-storage-portal-dns",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "preallocation" : {
+ "default" : "metadata",
+ "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
+ "enum" : [
+ "off",
+ "metadata",
+ "falloc",
+ "full"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "prune-backups" : {
+ "description" : "The retention options with shorter intervals are processed first with --keep-last being the very first one. Each option covers a specific period of time. We say that backups within this period are covered by this option. The next option does not take care of already covered backups and only considers older backups.",
+ "format" : "prune-backups",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
+ },
+ "saferemove" : {
+ "description" : "Zero-out data when removing LVs.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "saferemove_throughput" : {
+ "description" : "Wipe throughput (cstream -t parameter value).",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "server" : {
+ "description" : "Server IP or DNS name.",
+ "format" : "pve-storage-server",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "server2" : {
+ "description" : "Backup volfile server IP or DNS name.",
+ "format" : "pve-storage-server",
+ "optional" : 1,
+ "requires" : "server",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "share" : {
+ "description" : "CIFS share.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "shared" : {
+ "description" : "Mark storage as shared.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "smbversion" : {
+ "default" : "default",
+ "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
+ "enum" : [
+ "default",
+ "2.0",
+ "2.1",
+ "3",
+ "3.0",
+ "3.11"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "sparse" : {
+ "description" : "use sparse volumes",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "storage" : {
+ "description" : "The storage identifier.",
+ "format" : "pve-storage-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "subdir" : {
+ "description" : "Subdir to mount.",
+ "format" : "pve-storage-path",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tagged_only" : {
+ "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "target" : {
+ "description" : "iSCSI target.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "thinpool" : {
+ "description" : "LVM thin pool LV name.",
+ "format" : "pve-storage-vgname",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "transport" : {
+ "description" : "Gluster transport: tcp or rdma",
+ "enum" : [
+ "tcp",
+ "rdma",
+ "unix"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "Storage type.",
+ "enum" : [
+ "btrfs",
+ "cephfs",
+ "cifs",
+ "dir",
+ "glusterfs",
+ "iscsi",
+ "iscsidirect",
+ "lvm",
+ "lvmthin",
+ "nfs",
+ "pbs",
+ "rbd",
+ "zfs",
+ "zfspool"
+ ],
+ "type" : "string"
},
- "path" : "/nodes/{node}/vncwebsocket",
- "leaf" : 1,
- "text" : "vncwebsocket"
- },
- {
- "info" : {
- "POST" : {
- "parameters" : {
- "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
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "protected" : 1,
- "permissions" : {
- "description" : "Restricted to users on realm 'pam'",
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Console"
- ]
- ]
- },
- "method" : "POST",
- "name" : "spiceshell",
- "returns" : {
- "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
- "additionalProperties" : 1,
- "properties" : {
- "tls-port" : {
- "type" : "integer"
- },
- "type" : {
- "type" : "string"
- },
- "password" : {
- "type" : "string"
- },
- "proxy" : {
- "type" : "string"
- },
- "host" : {
- "type" : "string"
- }
- }
- },
- "description" : "Creates a SPICE shell."
- }
+ "username" : {
+ "description" : "RBD Id.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "path" : "/nodes/{node}/spiceshell",
- "text" : "spiceshell",
- "leaf" : 1
+ "vgname" : {
+ "description" : "Volume group name.",
+ "format" : "pve-storage-vgname",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "volume" : {
+ "description" : "Glusterfs Volume.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
},
- {
- "info" : {
- "PUT" : {
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "parameters" : {
- "properties" : {
- "dns3" : {
- "type" : "string",
- "format" : "ip",
- "description" : "Third name server IP address.",
- "optional" : 1
- },
- "search" : {
- "description" : "Search domain for host-name lookup.",
- "type" : "string"
- },
- "dns1" : {
- "format" : "ip",
- "type" : "string",
- "optional" : 1,
- "description" : "First name server IP address."
- },
- "dns2" : {
- "description" : "Second name server IP address.",
- "optional" : 1,
- "format" : "ip",
- "type" : "string"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "description" : "Write DNS settings.",
- "returns" : {
- "type" : "null"
- },
- "method" : "PUT",
- "name" : "update_dns"
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/storage",
+ [
+ "Datastore.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "properties" : {
+ "config" : {
+ "additionalProperties" : 1,
+ "description" : "Partial, possible server generated, configuration properties.",
+ "optional" : 1,
+ "properties" : {
+ "encryption-key" : {
+ "description" : "The, possible auto-generated, encryption-key.",
+ "optional" : 1,
+ "type" : "string"
+ }
},
- "GET" : {
- "description" : "Read DNS settings.",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- },
- "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."
- }
- }
- },
- "proxyto" : "node",
- "method" : "GET",
- "name" : "dns"
- }
+ "type" : "object"
},
- "path" : "/nodes/{node}/dns",
- "leaf" : 1,
- "text" : "dns"
+ "storage" : {
+ "description" : "The ID of the created storage.",
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "The type of the created storage.",
+ "enum" : [
+ "btrfs",
+ "cephfs",
+ "cifs",
+ "dir",
+ "glusterfs",
+ "iscsi",
+ "iscsidirect",
+ "lvm",
+ "lvmthin",
+ "nfs",
+ "pbs",
+ "rbd",
+ "zfs",
+ "zfspool"
+ ],
+ "type" : "string"
+ }
},
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/storage",
+ "text" : "storage"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
{
- "text" : "time",
- "leaf" : 1,
- "info" : {
- "GET" : {
- "name" : "time",
- "method" : "GET",
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "returns" : {
- "properties" : {
- "time" : {
- "type" : "integer",
- "minimum" : 1297163644,
- "description" : "Seconds since 1970-01-01 00:00:00 UTC."
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get user TFA types (Personal and Realm).",
+ "method" : "GET",
+ "name" : "read_user_tfa_type",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "multiple" : {
+ "default" : 0,
+ "description" : "Request all entries as an array.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "localtime" : {
- "type" : "integer",
- "minimum" : 1297163644,
- "description" : "Seconds since 1970-01-01 00:00:00 (local time)"
+ "permissions" : {
+ "check" : [
+ "or",
+ [
+ "userid-param",
+ "self"
+ ],
+ [
+ "userid-group",
+ [
+ "User.Modify",
+ "Sys.Audit"
+ ]
+ ]
+ ]
},
- "timezone" : {
- "type" : "string",
- "description" : "Time zone"
+ "protected" : 1,
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "realm" : {
+ "description" : "The type of TFA the users realm has set, if any.",
+ "enum" : [
+ "oath",
+ "yubico"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "types" : {
+ "description" : "Array of the user configured TFA types, if any. Only available if 'multiple' was not passed.",
+ "items" : {
+ "description" : "A TFA type.",
+ "enum" : [
+ "totp",
+ "u2f",
+ "yubico",
+ "webauthn",
+ "recovedry"
+ ],
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
+ "user" : {
+ "description" : "The type of TFA the user has set, if any. Only set if 'multiple' was not passed.",
+ "enum" : [
+ "oath",
+ "u2f"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
}
- },
- "additionalProperties" : 0,
- "type" : "object"
+ }
},
- "description" : "Read server time and time zone settings.",
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- }
+ "leaf" : 1,
+ "path" : "/access/users/{userid}/tfa",
+ "text" : "tfa"
},
- "PUT" : {
- "method" : "PUT",
- "name" : "set_timezone",
- "returns" : {
- "type" : "null"
- },
- "description" : "Set time zone.",
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Remove API token for a specific user.",
+ "method" : "DELETE",
+ "name" : "remove_token",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "tokenid" : {
+ "description" : "User-specific token identifier.",
+ "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
+ "type" : "string"
+ },
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "or",
+ [
+ "userid-param",
+ "self"
+ ],
+ [
+ "perm",
+ "/access/users/{userid}",
+ [
+ "User.Modify"
+ ]
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get specific API token information.",
+ "method" : "GET",
+ "name" : "read_token",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "tokenid" : {
+ "description" : "User-specific token identifier.",
+ "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
+ "type" : "string"
+ },
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "or",
+ [
+ "userid-param",
+ "self"
+ ],
+ [
+ "perm",
+ "/access/users/{userid}",
+ [
+ "User.Modify"
+ ]
+ ]
+ ]
+ },
+ "returns" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "expire" : {
+ "default" : "same as user",
+ "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "privsep" : {
+ "default" : 1,
+ "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Generate a new API token for a specific user. NOTE: returns API token value, which needs to be stored as it cannot be retrieved afterwards!",
+ "method" : "POST",
+ "name" : "generate_token",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "expire" : {
+ "default" : "same as user",
+ "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "privsep" : {
+ "default" : 1,
+ "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "tokenid" : {
+ "description" : "User-specific token identifier.",
+ "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
+ "type" : "string"
+ },
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "or",
+ [
+ "userid-param",
+ "self"
+ ],
+ [
+ "perm",
+ "/access/users/{userid}",
+ [
+ "User.Modify"
+ ]
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "full-tokenid" : {
+ "description" : "The full token id.",
+ "format_description" : "<userid>!<tokenid>",
+ "type" : "string"
+ },
+ "info" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "expire" : {
+ "default" : "same as user",
+ "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "privsep" : {
+ "default" : 1,
+ "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ },
+ "value" : {
+ "description" : "API token value used for authentication.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update API token for a specific user.",
+ "method" : "PUT",
+ "name" : "update_token_info",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "expire" : {
+ "default" : "same as user",
+ "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "privsep" : {
+ "default" : 1,
+ "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "tokenid" : {
+ "description" : "User-specific token identifier.",
+ "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
+ "type" : "string"
+ },
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "or",
+ [
+ "userid-param",
+ "self"
+ ],
+ [
+ "perm",
+ "/access/users/{userid}",
+ [
+ "User.Modify"
+ ]
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "description" : "Updated token information.",
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "expire" : {
+ "default" : "same as user",
+ "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "privsep" : {
+ "default" : 1,
+ "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ }
+ }
},
- "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",
- "/nodes/{node}",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1
- }
- },
- "path" : "/nodes/{node}/time"
- },
- {
- "leaf" : 1,
- "text" : "aplinfo",
- "info" : {
- "POST" : {
- "parameters" : {
- "properties" : {
- "template" : {
- "type" : "string",
- "maxLength" : 255,
- "description" : "The template wich will downloaded"
+ "leaf" : 1,
+ "path" : "/access/users/{userid}/token/{tokenid}",
+ "text" : "{tokenid}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get user API tokens.",
+ "method" : "GET",
+ "name" : "token_index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "storage" : {
- "description" : "Only list status for specified storage",
- "type" : "string",
- "format" : "pve-storage-id"
+ "permissions" : {
+ "check" : [
+ "or",
+ [
+ "userid-param",
+ "self"
+ ],
+ [
+ "perm",
+ "/access/users/{userid}",
+ [
+ "User.Modify"
+ ]
+ ]
+ ]
},
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.AllocateTemplate"
- ]
- ]
- },
- "protected" : 1,
- "method" : "POST",
- "name" : "apl_download",
- "returns" : {
- "type" : "string"
- },
- "description" : "Download appliance templates."
- },
- "GET" : {
- "method" : "GET",
- "name" : "aplinfo",
- "returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "type" : "array"
- },
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "description" : "Get list of appliances.",
- "permissions" : {
- "user" : "all"
- }
- }
- },
- "path" : "/nodes/{node}/aplinfo"
- },
- {
- "info" : {
- "GET" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "expire" : {
+ "default" : "same as user",
+ "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "privsep" : {
+ "default" : 1,
+ "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "tokenid" : {
+ "description" : "User-specific token identifier.",
+ "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{tokenid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
}
},
- "proxyto" : "node",
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- },
- "name" : "report",
- "method" : "GET",
- "returns" : {
- "type" : "string"
- },
- "description" : "Gather various systems information about a node"
- }
- },
- "path" : "/nodes/{node}/report",
- "text" : "report",
- "leaf" : 1
- },
- {
- "info" : {
- "POST" : {
- "parameters" : {
- "properties" : {
- "node" : {
- "type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
- },
- "force" : {
- "optional" : 1,
- "description" : "force if onboot=0.",
- "type" : "boolean"
- }
- },
- "additionalProperties" : 0
- },
- "proxyto" : "node",
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "VM.PowerMgmt"
- ]
- ]
- },
- "protected" : 1,
- "returns" : {
- "type" : "string"
- },
- "name" : "startall",
- "method" : "POST",
- "description" : "Start all VMs and containers (when onboot=1)."
+ "leaf" : 0,
+ "path" : "/access/users/{userid}/token",
+ "text" : "token"
}
- },
- "path" : "/nodes/{node}/startall",
- "leaf" : 1,
- "text" : "startall"
- },
- {
- "text" : "stopall",
- "leaf" : 1,
+ ],
"info" : {
- "POST" : {
- "proxyto" : "node",
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete user.",
+ "method" : "DELETE",
+ "name" : "delete_user",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "node" : {
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
"type" : "string",
- "format" : "pve-node",
- "description" : "The cluster node name."
+ "typetext" : "<string>"
}
}
},
"permissions" : {
"check" : [
- "perm",
- "/",
+ "and",
[
- "VM.PowerMgmt"
- ]
- ]
- },
- "protected" : 1,
- "returns" : {
- "type" : "string"
- },
- "method" : "POST",
- "name" : "stopall",
- "description" : "Stop all VMs and Containers."
- }
- },
- "path" : "/nodes/{node}/stopall"
- },
- {
- "info" : {
- "POST" : {
- "proxyto" : "node",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "format" : "pve-node",
- "type" : "string",
- "description" : "The cluster node name."
- },
- "target" : {
- "type" : "string",
- "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!"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
+ "userid-param",
+ "Realm.AllocateUser"
+ ],
[
- "VM.Migrate"
+ "userid-group",
+ [
+ "User.Modify"
+ ]
]
]
},
"protected" : 1,
"returns" : {
- "type" : "string"
- },
- "method" : "POST",
- "name" : "migrateall",
- "description" : "Migrate all VMs and Containers."
- }
- },
- "path" : "/nodes/{node}/migrateall",
- "text" : "migrateall",
- "leaf" : 1
- }
- ],
- "info" : {
- "GET" : {
- "name" : "index",
- "method" : "GET",
- "parameters" : {
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "type" : "string",
- "format" : "pve-node"
+ "type" : "null"
}
},
- "additionalProperties" : 0
- },
- "returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "type" : "array",
- "links" : [
- {
- "rel" : "child",
- "href" : "{name}"
- }
- ]
- },
- "permissions" : {
- "user" : "all"
- },
- "description" : "Node index."
- }
- }
- }
- ],
- "info" : {
- "GET" : {
- "returns" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{node}"
- }
- ],
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {}
- }
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "name" : "index",
- "method" : "GET",
- "permissions" : {
- "user" : "all"
- },
- "description" : "Cluster node index."
- }
- }
- },
- {
- "leaf" : 0,
- "text" : "storage",
- "path" : "/storage",
- "children" : [
- {
- "path" : "/storage/{storage}",
- "info" : {
- "DELETE" : {
- "protected" : 1,
- "description" : "Delete storage configuration.",
- "permissions" : {
- "check" : [
- "perm",
- "/storage",
- [
- "Datastore.Allocate"
- ]
- ]
- },
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "storage" : {
- "description" : "The storage identifier.",
- "format" : "pve-storage-id",
- "type" : "string"
- }
- }
- },
- "method" : "DELETE",
- "name" : "delete"
- },
- "GET" : {
- "permissions" : {
- "check" : [
- "perm",
- "/storage/{storage}",
- [
- "Datastore.Allocate"
- ]
- ]
- },
- "description" : "Read storage configuration.",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "storage" : {
- "format" : "pve-storage-id",
- "type" : "string",
- "description" : "The storage identifier."
- }
- }
- },
- "returns" : {},
- "method" : "GET",
- "name" : "read"
- },
- "PUT" : {
- "method" : "PUT",
- "name" : "update",
- "returns" : {
- "type" : "null"
- },
- "parameters" : {
- "type" : "object",
- "additionalProperties" : 0,
- "properties" : {
- "maxfiles" : {
- "type" : "integer",
- "minimum" : 0,
- "optional" : 1,
- "description" : "Maximal number of backup files per VM. Use '0' for unlimted."
- },
- "content" : {
- "format" : "pve-storage-content-list",
- "type" : "string",
- "optional" : 1,
- "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n"
- },
- "username" : {
- "description" : "RBD Id.",
- "optional" : 1,
- "type" : "string"
- },
- "server" : {
- "format" : "pve-storage-server",
- "type" : "string",
- "optional" : 1,
- "description" : "Server IP or DNS name."
- },
- "krbd" : {
- "description" : "Access rbd through krbd kernel module.",
- "optional" : 1,
- "type" : "boolean"
- },
- "options" : {
- "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
- },
- "delete" : {
- "maxLength" : 4096,
- "optional" : 1,
- "description" : "A list of settings you want to delete.",
- "type" : "string",
- "format" : "pve-configid-list"
- },
- "sparse" : {
- "description" : "use sparse volumes",
- "optional" : 1,
- "type" : "boolean"
- },
- "format" : {
- "optional" : 1,
- "description" : "Default image format.",
- "format" : "pve-storage-format",
- "type" : "string"
- },
- "disable" : {
- "type" : "boolean",
- "description" : "Flag to disable the storage.",
- "optional" : 1
- },
- "saferemove_throughput" : {
- "type" : "string",
- "description" : "Wipe throughput (cstream -t parameter value).",
- "optional" : 1
- },
- "saferemove" : {
- "description" : "Zero-out data when removing LVs.",
- "optional" : 1,
- "type" : "boolean"
- },
- "digest" : {
- "maxLength" : 40,
- "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",
- "optional" : 1,
- "description" : "List of cluster node names."
- },
- "pool" : {
- "description" : "Pool.",
- "optional" : 1,
- "type" : "string"
- },
- "comstar_tg" : {
- "type" : "string",
- "description" : "target group for comstar views",
- "optional" : 1
- },
- "nowritecache" : {
- "description" : "disable write caching on the target",
- "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
- },
- "transport" : {
- "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",
- "optional" : 1,
- "type" : "string"
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get user configuration.",
+ "method" : "GET",
+ "name" : "read_user",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "storage" : {
- "description" : "The storage identifier.",
- "type" : "string",
- "format" : "pve-storage-id"
+ "permissions" : {
+ "check" : [
+ "userid-group",
+ [
+ "User.Modify",
+ "Sys.Audit"
+ ]
+ ]
},
- "server2" : {
- "format" : "pve-storage-server",
- "requires" : "server",
- "type" : "string",
- "optional" : 1,
- "description" : "Backup volfile server IP or DNS name."
- }
- }
- },
- "protected" : 1,
- "permissions" : {
- "check" : [
- "perm",
- "/storage",
- [
- "Datastore.Allocate"
- ]
- ]
- },
- "description" : "Update storage configuration."
- }
- },
- "leaf" : 1,
- "text" : "{storage}"
- }
- ],
- "info" : {
- "GET" : {
- "parameters" : {
- "properties" : {
- "type" : {
- "type" : "string",
- "enum" : [
- "rbd",
- "sheepdog",
- "lvm",
- "iscsi",
- "nfs",
- "zfs",
- "glusterfs",
- "iscsidirect",
- "lvmthin",
- "drbd",
- "zfspool",
- "dir"
- ],
- "description" : "Only list storage of specific type",
- "optional" : 1
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "links" : [
- {
- "href" : "{storage}",
- "rel" : "child"
- }
- ],
- "items" : {
- "type" : "object",
- "properties" : {
- "storage" : {
- "type" : "string"
- }
- }
- },
- "type" : "array"
- },
- "name" : "index",
- "method" : "GET",
- "description" : "Storage index.",
- "permissions" : {
- "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
- "user" : "all"
- }
- },
- "POST" : {
- "permissions" : {
- "check" : [
- "perm",
- "/storage",
- [
- "Datastore.Allocate"
- ]
- ]
- },
- "description" : "Create a new storage.",
- "protected" : 1,
- "name" : "create",
- "method" : "POST",
- "parameters" : {
- "type" : "object",
- "properties" : {
- "nowritecache" : {
- "description" : "disable write caching on the target",
- "optional" : 1,
- "type" : "boolean"
- },
- "comstar_tg" : {
- "type" : "string",
- "description" : "target group for comstar views",
- "optional" : 1
- },
- "shared" : {
- "optional" : 1,
- "description" : "Mark storage as shared.",
- "type" : "boolean"
- },
- "transport" : {
- "description" : "Gluster transport: tcp or rdma",
- "optional" : 1,
- "enum" : [
- "tcp",
- "rdma",
- "unix"
- ],
- "type" : "string"
- },
- "redundancy" : {
- "minimum" : 1,
- "type" : "integer",
- "maximum" : 16,
- "default" : 2,
- "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"
- },
- "saferemove" : {
- "description" : "Zero-out data when removing LVs.",
- "optional" : 1,
- "type" : "boolean"
- },
- "nodes" : {
- "type" : "string",
- "format" : "pve-node-list",
- "description" : "List of cluster node names.",
- "optional" : 1
- },
- "sparse" : {
- "description" : "use sparse volumes",
- "optional" : 1,
- "type" : "boolean"
- },
- "saferemove_throughput" : {
- "description" : "Wipe throughput (cstream -t parameter value).",
- "optional" : 1,
- "type" : "string"
- },
- "format" : {
- "type" : "string",
- "format" : "pve-storage-format",
- "description" : "Default image format.",
- "optional" : 1
- },
- "content" : {
- "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.",
- "optional" : 1,
- "format" : "pve-storage-server",
- "type" : "string"
- },
- "krbd" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Access rbd through krbd kernel module."
- },
- "monhost" : {
- "optional" : 1,
- "description" : "Monitors daemon ips.",
- "type" : "string"
- },
- "server2" : {
- "format" : "pve-storage-server",
- "requires" : "server",
- "type" : "string",
- "description" : "Backup volfile server IP or DNS name.",
- "optional" : 1
- },
- "blocksize" : {
- "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"
- },
- "vgname" : {
- "description" : "Volume group name.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-storage-vgname"
- },
- "iscsiprovider" : {
- "description" : "iscsi provider",
- "optional" : 1,
- "type" : "string"
- },
- "pool" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Pool."
- },
- "path" : {
- "description" : "File system path.",
- "optional" : 1,
- "format" : "pve-storage-path",
- "type" : "string"
- },
- "export" : {
- "description" : "NFS export path.",
- "optional" : 1,
- "type" : "string",
- "format" : "pve-storage-path"
- },
- "disable" : {
- "description" : "Flag to disable the storage.",
- "optional" : 1,
- "type" : "boolean"
- },
- "base" : {
- "type" : "string",
- "format" : "pve-volume-id",
- "description" : "Base volume. This volume is automatically activated.",
- "optional" : 1
- },
- "volume" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Glusterfs Volume."
- },
- "target" : {
- "type" : "string",
- "optional" : 1,
- "description" : "iSCSI target."
- },
- "maxfiles" : {
- "optional" : 1,
- "description" : "Maximal number of backup files per VM. Use '0' for unlimted.",
- "minimum" : 0,
- "type" : "integer"
- },
- "authsupported" : {
- "type" : "string",
- "optional" : 1,
- "description" : "Authsupported."
- },
- "thinpool" : {
- "type" : "string",
- "format" : "pve-storage-vgname",
- "optional" : 1,
- "description" : "LVM thin pool LV name."
+ "returns" : {
+ "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 account",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "expire" : {
+ "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "firstname" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "groups" : {
+ "items" : {
+ "format" : "pve-groupid",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
+ "keys" : {
+ "description" : "Keys for two factor auth (yubico).",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "lastname" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "tokens" : {
+ "additionalProperties" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "expire" : {
+ "default" : "same as user",
+ "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "privsep" : {
+ "default" : 1,
+ "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ },
+ "optional" : 1,
+ "type" : "object"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update user configuration.",
+ "method" : "PUT",
+ "name" : "update_user",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "append" : {
+ "optional" : 1,
+ "requires" : "groups",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "email" : {
+ "format" : "email-opt",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "default" : 1,
+ "description" : "Enable the account (default). You can set this to '0' to disable the account",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "expire" : {
+ "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "firstname" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "groups" : {
+ "format" : "pve-groupid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "keys" : {
+ "description" : "Keys for two factor auth (yubico).",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "lastname" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "userid-group",
+ [
+ "User.Modify"
+ ],
+ "groups_param",
+ "update"
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
},
- "options" : {
- "description" : "NFS mount options (see 'man nfs')",
- "optional" : 1,
- "format" : "pve-storage-options",
- "type" : "string"
+ "leaf" : 0,
+ "path" : "/access/users/{userid}",
+ "text" : "{userid}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "User index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "enabled" : {
+ "description" : "Optional filter for enable property.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "full" : {
+ "default" : 0,
+ "description" : "Include group and token information.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
},
- "username" : {
- "description" : "RBD Id.",
- "optional" : 1,
- "type" : "string"
+ "permissions" : {
+ "description" : "The returned list is restricted to users where you have 'User.Modify' or 'Sys.Audit' permissions on '/access/groups' or on a group the user belongs too. But it always includes the current (authenticated) user.",
+ "user" : "all"
},
- "comstar_hg" : {
- "type" : "string",
- "description" : "host group for comstar views",
- "optional" : 1
- }
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
- }
- }
- }
- },
- {
- "text" : "access",
- "leaf" : 0,
- "info" : {
- "GET" : {
- "returns" : {
- "type" : "array",
- "items" : {
- "type" : "object",
- "properties" : {
- "subdir" : {
- "type" : "string"
- }
- }
- },
- "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" : {
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "email" : {
+ "format" : "email-opt",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "enable" : {
+ "default" : 1,
+ "description" : "Enable the account (default). You can set this to '0' to disable the account",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "expire" : {
+ "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "firstname" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "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"
+ },
+ "realm-type" : {
+ "description" : "The type of the users realm",
+ "format" : "pve-realm",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "tokens" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "expire" : {
+ "default" : "same as user",
+ "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "privsep" : {
+ "default" : 1,
+ "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "tokenid" : {
+ "description" : "User-specific token identifier.",
+ "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{userid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
"POST" : {
- "name" : "create_user",
+ "allowtoken" : 1,
+ "description" : "Create new user.",
"method" : "POST",
+ "name" : "create_user",
"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"
+ "typetext" : "<string>"
},
"email" : {
+ "format" : "email-opt",
"optional" : 1,
"type" : "string",
- "format" : "email-opt"
- },
- "password" : {
- "minLength" : 5,
- "maxLength" : 64,
- "optional" : 1,
- "description" : "Initial password.",
- "type" : "string"
+ "typetext" : "<string>"
},
"enable" : {
"default" : 1,
+ "description" : "Enable the account (default). You can set this to '0' to disable the account",
+ "optional" : 1,
"type" : "boolean",
- "description" : "Enable the account (default). You can set this to '0' to disable the accout",
- "optional" : 1
+ "typetext" : "<boolean>"
},
"expire" : {
+ "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
"minimum" : 0,
+ "optional" : 1,
"type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "firstname" : {
"optional" : 1,
- "description" : "Account expiration date (seconds since epoch). '0' means no expiration date."
+ "type" : "string",
+ "typetext" : "<string>"
},
"groups" : {
- "type" : "string",
"format" : "pve-groupid-list",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "keys" : {
+ "description" : "Keys for two factor auth (yubico).",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "lastname" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "password" : {
+ "description" : "Initial password.",
+ "maxLength" : 64,
+ "minLength" : 5,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "returns" : {
- "type" : "null"
- },
- "description" : "Create new user.",
"permissions" : {
"check" : [
"and",
"User.Modify"
],
"groups_param",
- 1
+ "create"
]
],
"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" : {
+ "protected" : 1,
"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."
+ "type" : "null"
}
}
},
+ "leaf" : 0,
"path" : "/access/users",
+ "text" : "users"
+ },
+ {
"children" : [
{
- "text" : "{userid}",
- "leaf" : 1,
"info" : {
- "PUT" : {
- "name" : "update_user",
- "method" : "PUT",
- "returns" : {
- "type" : "null"
- },
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete group.",
+ "method" : "DELETE",
+ "name" : "delete_group",
"parameters" : {
+ "additionalProperties" : 0,
"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" : {
+ "groupid" : {
+ "format" : "pve-groupid",
"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"
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
- "description" : "Update user configuration.",
"permissions" : {
"check" : [
- "userid-group",
+ "perm",
+ "/access/groups",
[
- "User.Modify"
- ],
- "groups_param",
- 1
+ "Group.Allocate"
+ ]
]
- }
- },
- "DELETE" : {
- "method" : "DELETE",
- "name" : "delete_user",
+ },
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get group configuration.",
+ "method" : "GET",
+ "name" : "read_group",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "userid" : {
- "format" : "pve-userid",
+ "groupid" : {
+ "format" : "pve-groupid",
"type" : "string",
- "maxLength" : 64,
- "description" : "User ID"
+ "typetext" : "<string>"
}
}
},
- "protected" : 1,
"permissions" : {
"check" : [
- "and",
+ "perm",
+ "/access/groups",
[
- "userid-param",
- "Realm.AllocateUser"
+ "Sys.Audit",
+ "Group.Allocate"
],
- [
- "userid-group",
- [
- "User.Modify"
- ]
- ]
+ "any",
+ 1
]
},
- "description" : "Delete user."
- },
- "GET" : {
"returns" : {
+ "additionalProperties" : 0,
"properties" : {
- "email" : {
- "optional" : 1,
- "type" : "string"
- },
"comment" : {
"optional" : 1,
"type" : "string"
},
- "firstname" : {
- "optional" : 1,
- "type" : "string"
- },
- "keys" : {
- "type" : "string",
- "optional" : 1
- },
- "lastname" : {
- "optional" : 1,
- "type" : "string"
- },
- "groups" : {
+ "members" : {
+ "items" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string"
+ },
"type" : "array"
- },
- "expire" : {
- "type" : "integer",
- "optional" : 1
- },
- "enable" : {
- "type" : "boolean"
}
},
- "additionalProperties" : 0
- },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update group data.",
+ "method" : "PUT",
+ "name" : "update_group",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "userid" : {
- "maxLength" : 64,
- "description" : "User ID",
- "format" : "pve-userid",
- "type" : "string"
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "groupid" : {
+ "format" : "pve-groupid",
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "method" : "GET",
- "name" : "read_user",
"permissions" : {
"check" : [
- "userid-group",
+ "perm",
+ "/access/groups",
[
- "User.Modify",
- "Sys.Audit"
+ "Group.Allocate"
]
]
},
- "description" : "Get user configuration."
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "path" : "/access/users/{userid}"
+ "leaf" : 1,
+ "path" : "/access/groups/{groupid}",
+ "text" : "{groupid}"
}
- ]
- },
- {
+ ],
"info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Group index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "description" : "The returned list is restricted to groups where you have 'User.Modify', 'Sys.Audit' or 'Group.Allocate' permissions on /access/groups/<group>.",
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "groupid" : {
+ "format" : "pve-groupid",
+ "type" : "string"
+ },
+ "users" : {
+ "description" : "list of users which form this group",
+ "format" : "pve-userid-list",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{groupid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
"POST" : {
- "name" : "create_group",
+ "allowtoken" : 1,
+ "description" : "Create new group.",
"method" : "POST",
+ "name" : "create_group",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
"comment" : {
+ "optional" : 1,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
"groupid" : {
+ "format" : "pve-groupid",
"type" : "string",
- "format" : "pve-groupid"
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
+ }
},
"permissions" : {
"check" : [
]
]
},
- "description" : "Create new group.",
- "protected" : 1
- },
- "GET" : {
- "name" : "index",
- "method" : "GET",
- "parameters" : {
- "additionalProperties" : 0
- },
+ "protected" : 1,
"returns" : {
- "items" : {
- "type" : "object",
- "properties" : {
- "groupid" : {
- "type" : "string"
- }
- }
- },
- "type" : "array",
- "links" : [
- {
- "href" : "{groupid}",
- "rel" : "child"
- }
- ]
- },
- "permissions" : {
- "description" : "The returned list is restricted to groups where you have 'User.Modify', 'Sys.Audit' or 'Group.Allocate' permissions on /access/groups/<group>.",
- "user" : "all"
- },
- "description" : "Group index."
+ "type" : "null"
+ }
}
},
+ "leaf" : 0,
+ "path" : "/access/groups",
+ "text" : "groups"
+ },
+ {
"children" : [
{
- "text" : "{groupid}",
- "leaf" : 1,
"info" : {
"DELETE" : {
- "returns" : {
- "type" : "null"
- },
+ "allowtoken" : 1,
+ "description" : "Delete role.",
+ "method" : "DELETE",
+ "name" : "delete_role",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "groupid" : {
- "format" : "pve-groupid",
- "type" : "string"
+ "roleid" : {
+ "format" : "pve-roleid",
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "name" : "delete_group",
- "method" : "DELETE",
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
- "/access/groups",
+ "/access",
[
- "Group.Allocate"
+ "Sys.Modify"
]
]
},
- "description" : "Delete group."
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
},
"GET" : {
+ "allowtoken" : 1,
+ "description" : "Get role configuration.",
+ "method" : "GET",
+ "name" : "read_role",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "roleid" : {
+ "format" : "pve-roleid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
"returns" : {
+ "additionalProperties" : 0,
"properties" : {
- "members" : {
- "type" : "array",
- "items" : {
- "type" : "string"
- }
+ "Datastore.Allocate" : {
+ "optional" : 1,
+ "type" : "boolean"
},
- "comment" : {
- "type" : "string",
- "optional" : 1
+ "Datastore.AllocateSpace" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "Datastore.AllocateTemplate" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "Datastore.Audit" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "Group.Allocate" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "Permissions.Modify" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "Pool.Allocate" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "Pool.Audit" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "Realm.Allocate" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "Realm.AllocateUser" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "SDN.Allocate" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "SDN.Audit" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "Sys.Audit" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "Sys.Console" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "Sys.Modify" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "Sys.PowerMgmt" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "Sys.Syslog" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "User.Modify" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "VM.Allocate" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "VM.Audit" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "VM.Backup" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "VM.Clone" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "VM.Config.CDROM" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "VM.Config.CPU" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "VM.Config.Cloudinit" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "VM.Config.Disk" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "VM.Config.HWType" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "VM.Config.Memory" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "VM.Config.Network" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "VM.Config.Options" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "VM.Console" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "VM.Migrate" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "VM.Monitor" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "VM.PowerMgmt" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "VM.Snapshot" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "VM.Snapshot.Rollback" : {
+ "optional" : 1,
+ "type" : "boolean"
}
},
- "additionalProperties" : 0,
"type" : "object"
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "groupid" : {
- "type" : "string",
- "format" : "pve-groupid"
- }
- }
- },
- "name" : "read_group",
- "method" : "GET",
- "description" : "Get group configuration.",
- "permissions" : {
- "check" : [
- "perm",
- "/access/groups",
- [
- "Sys.Audit",
- "Group.Allocate"
- ],
- "any",
- 1
- ]
}
},
"PUT" : {
- "name" : "update_group",
+ "allowtoken" : 1,
+ "description" : "Update an existing role.",
"method" : "PUT",
- "returns" : {
- "type" : "null"
- },
+ "name" : "update_role",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "comment" : {
+ "append" : {
+ "optional" : 1,
+ "requires" : "privs",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "privs" : {
+ "format" : "pve-priv-list",
+ "optional" : 1,
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
},
- "groupid" : {
- "format" : "pve-groupid",
- "type" : "string"
+ "roleid" : {
+ "format" : "pve-roleid",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "protected" : 1,
- "description" : "Update group data.",
"permissions" : {
"check" : [
"perm",
- "/access/groups",
+ "/access",
[
- "Group.Allocate"
+ "Sys.Modify"
]
]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "path" : "/access/groups/{groupid}"
+ "leaf" : 1,
+ "path" : "/access/roles/{roleid}",
+ "text" : "{roleid}"
}
],
- "path" : "/access/groups",
- "leaf" : 0,
- "text" : "groups"
- },
- {
"info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Role index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "privs" : {
+ "format" : "pve-priv-list",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "roleid" : {
+ "format" : "pve-roleid",
+ "type" : "string"
+ },
+ "special" : {
+ "default" : 0,
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{roleid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
"POST" : {
- "name" : "create_role",
+ "allowtoken" : 1,
+ "description" : "Create new role.",
"method" : "POST",
+ "name" : "create_role",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "roleid" : {
+ "privs" : {
+ "format" : "pve-priv-list",
+ "optional" : 1,
"type" : "string",
- "format" : "pve-roleid"
+ "typetext" : "<string>"
},
- "privs" : {
+ "roleid" : {
+ "format" : "pve-roleid",
"type" : "string",
- "format" : "pve-priv-list",
- "optional" : 1
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
+ }
},
"permissions" : {
"check" : [
]
]
},
- "description" : "Create new role.",
- "protected" : 1
- },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/access/roles",
+ "text" : "roles"
+ },
+ {
+ "info" : {
"GET" : {
+ "allowtoken" : 1,
+ "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" : "{roleid}"
- }
- ],
- "type" : "array",
"items" : {
- "type" : "object",
+ "additionalProperties" : 0,
"properties" : {
+ "path" : {
+ "description" : "Access control path",
+ "type" : "string"
+ },
+ "propagate" : {
+ "default" : 1,
+ "description" : "Allow to propagate (inherit) permissions.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
"roleid" : {
"type" : "string"
+ },
+ "type" : {
+ "enum" : [
+ "user",
+ "group",
+ "token"
+ ],
+ "type" : "string"
+ },
+ "ugid" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update Access Control List (add or remove permissions).",
+ "method" : "PUT",
+ "name" : "update_acl",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "delete" : {
+ "description" : "Remove permissions (instead of adding it).",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "groups" : {
+ "description" : "List of groups.",
+ "format" : "pve-groupid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "path" : {
+ "description" : "Access control path",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "propagate" : {
+ "default" : 1,
+ "description" : "Allow to propagate (inherit) permissions.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "roles" : {
+ "description" : "List of roles.",
+ "format" : "pve-roleid-list",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tokens" : {
+ "description" : "List of API tokens.",
+ "format" : "pve-tokenid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "users" : {
+ "description" : "List of users.",
+ "format" : "pve-userid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm-modify",
+ "{path}"
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/access/acl",
+ "text" : "acl"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Syncs users and/or groups from the configured LDAP to user.cfg. NOTE: Synced groups will have the name 'name-$realm', so make sure those groups do not exist to prevent overwriting.",
+ "method" : "POST",
+ "name" : "sync",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "dry-run" : {
+ "default" : 0,
+ "description" : "If set, does not write anything.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "enable-new" : {
+ "default" : "1",
+ "description" : "Enable newly synced users immediately.",
+ "optional" : "1",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "full" : {
+ "description" : "DEPRECATED: use 'remove-vanished' instead. If set, uses the LDAP Directory as source of truth, deleting users or groups not returned from the sync and removing all locally modified properties of synced users. If not set, only syncs information which is present in the synced data, and does not delete or modify anything else.",
+ "optional" : "1",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "purge" : {
+ "description" : "DEPRECATED: use 'remove-vanished' instead. Remove ACLs for users or groups which were removed from the config during a sync.",
+ "optional" : "1",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "realm" : {
+ "description" : "Authentication domain ID",
+ "format" : "pve-realm",
+ "maxLength" : 32,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "remove-vanished" : {
+ "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync.",
+ "optional" : "1",
+ "pattern" : "(?:(?:acl|properties|entry);)*(?:acl|properties|entry)",
+ "type" : "string",
+ "typetext" : "[acl];[properties];[entry]"
+ },
+ "scope" : {
+ "description" : "Select what to sync.",
+ "enum" : [
+ "users",
+ "groups",
+ "both"
+ ],
+ "optional" : "1",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "and",
+ [
+ "perm",
+ "/access/realm/{realm}",
+ [
+ "Realm.AllocateUser"
+ ]
+ ],
+ [
+ "perm",
+ "/access/groups",
+ [
+ "User.Modify"
+ ]
+ ]
+ ],
+ "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
+ },
+ "protected" : 1,
+ "returns" : {
+ "description" : "Worker Task-UPID",
+ "type" : "string"
+ }
}
- }
+ },
+ "leaf" : 1,
+ "path" : "/access/domains/{realm}/sync",
+ "text" : "sync"
}
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "permissions" : {
- "user" : "all"
- },
- "description" : "Role index."
- }
- },
- "children" : [
- {
- "leaf" : 1,
- "text" : "{roleid}",
- "path" : "/access/roles/{roleid}",
+ ],
"info" : {
- "PUT" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete an authentication server.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "realm" : {
+ "description" : "Authentication domain ID",
+ "format" : "pve-realm",
+ "maxLength" : 32,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
- "/access",
+ "/access/realm",
[
- "Sys.Modify"
+ "Realm.Allocate"
]
]
},
- "description" : "Create new role.",
"protected" : 1,
- "name" : "update_role",
- "method" : "PUT",
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get auth server configuration.",
+ "method" : "GET",
+ "name" : "read",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "privs" : {
- "format" : "pve-priv-list",
- "type" : "string"
- },
- "append" : {
- "type" : "boolean",
- "requires" : "privs",
- "optional" : 1
- },
- "roleid" : {
- "format" : "pve-roleid",
- "type" : "string"
+ "realm" : {
+ "description" : "Authentication domain ID",
+ "format" : "pve-realm",
+ "maxLength" : 32,
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "returns" : {
- "type" : "null"
- }
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/access/realm",
+ [
+ "Realm.Allocate",
+ "Sys.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "returns" : {}
},
- "GET" : {
- "returns" : {},
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update authentication server settings.",
+ "method" : "PUT",
+ "name" : "update",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "roleid" : {
- "format" : "pve-roleid",
+ "acr-values" : {
+ "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "autocreate" : {
+ "default" : 0,
+ "description" : "Automatically create users if they do not exist.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "base_dn" : {
+ "description" : "LDAP base domain name",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+ "type" : "string"
+ },
+ "bind_dn" : {
+ "description" : "LDAP bind domain name",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+ "type" : "string"
+ },
+ "capath" : {
+ "default" : "/etc/ssl/certs",
+ "description" : "Path to the CA certificate store",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "case-sensitive" : {
+ "default" : 1,
+ "description" : "username is case-sensitive",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "cert" : {
+ "description" : "Path to the client certificate",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "certkey" : {
+ "description" : "Path to the client certificate key",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "client-id" : {
+ "description" : "OpenID Client ID",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "client-key" : {
+ "description" : "OpenID Client Key",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "default" : {
+ "description" : "Use this as default realm",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 40,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "domain" : {
+ "description" : "AD domain name",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "\\S+",
+ "type" : "string"
+ },
+ "filter" : {
+ "description" : "LDAP filter for user sync.",
+ "maxLength" : 2048,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "group_classes" : {
+ "default" : "groupOfNames, group, univentionGroup, ipausergroup",
+ "description" : "The objectclasses for groups.",
+ "format" : "ldap-simple-attr-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "group_dn" : {
+ "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+ "type" : "string"
+ },
+ "group_filter" : {
+ "description" : "LDAP filter for group sync.",
+ "maxLength" : 2048,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "group_name_attr" : {
+ "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
+ "format" : "ldap-simple-attr",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "issuer-url" : {
+ "description" : "OpenID Issuer Url",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "mode" : {
+ "default" : "ldap",
+ "description" : "LDAP protocol mode.",
+ "enum" : [
+ "ldap",
+ "ldaps",
+ "ldap+starttls"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "password" : {
+ "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "port" : {
+ "description" : "Server port.",
+ "maximum" : 65535,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 65535)"
+ },
+ "prompt" : {
+ "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
+ "optional" : 1,
+ "pattern" : "(?:none|login|consent|select_account|\\S+)",
+ "type" : "string"
+ },
+ "realm" : {
+ "description" : "Authentication domain ID",
+ "format" : "pve-realm",
+ "maxLength" : 32,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "scopes" : {
+ "default" : "email profile",
+ "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "secure" : {
+ "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "server1" : {
+ "description" : "Server IP address (or DNS name)",
+ "format" : "address",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "server2" : {
+ "description" : "Fallback Server IP address (or DNS name)",
+ "format" : "address",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sslversion" : {
+ "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
+ "enum" : [
+ "tlsv1",
+ "tlsv1_1",
+ "tlsv1_2",
+ "tlsv1_3"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "sync-defaults-options" : {
+ "description" : "The default options for behavior of synchronizations.",
+ "format" : "realm-sync-options",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=[acl];[properties];[entry]] [,scope=<users|groups|both>]"
+ },
+ "sync_attributes" : {
+ "description" : "Comma separated list of key=value pairs for specifying which LDAP attributes map to which PVE user field. For example, to map the LDAP attribute 'mail' to PVEs 'email', write 'email=mail'. By default, each PVE user field is represented by an LDAP attribute of the same name.",
+ "optional" : 1,
+ "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+ "type" : "string"
+ },
+ "tfa" : {
+ "description" : "Use Two-factor authentication.",
+ "format" : "pve-tfa-config",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
+ },
+ "user_attr" : {
+ "description" : "LDAP user attribute name",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "\\S{2,}",
"type" : "string"
+ },
+ "user_classes" : {
+ "default" : "inetorgperson, posixaccount, person, user",
+ "description" : "The objectclasses for users.",
+ "format" : "ldap-simple-attr-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "verify" : {
+ "default" : 0,
+ "description" : "Verify the server's SSL certificate",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
},
- "additionalProperties" : 0
+ "type" : "object"
},
- "method" : "GET",
- "name" : "read_role",
- "description" : "Get role configuration.",
- "permissions" : {
- "user" : "all"
- }
- },
- "DELETE" : {
- "protected" : 1,
"permissions" : {
"check" : [
"perm",
- "/access",
+ "/access/realm",
[
- "Sys.Modify"
+ "Realm.Allocate"
]
]
},
- "description" : "Delete role.",
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
- "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."
- },
- "users" : {
- "format" : "pve-userid-list",
- "type" : "string",
- "description" : "List of users.",
- "optional" : 1
- },
- "groups" : {
- "optional" : 1,
- "description" : "List of groups.",
- "format" : "pve-groupid-list",
- "type" : "string"
- },
- "delete" : {
- "type" : "boolean",
- "description" : "Remove permissions (instead of adding it).",
- "optional" : 1
- },
- "path" : {
- "type" : "string",
- "description" : "Access control path"
}
}
},
- "returns" : {
- "type" : "null"
- }
- },
- "GET" : {
- "method" : "GET",
- "name" : "read_acl",
- "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"
- }
- },
- "parameters" : {
- "additionalProperties" : 0
- },
- "description" : "Get Access Control List (ACLs).",
- "permissions" : {
- "user" : "all",
- "description" : "The returned list is restricted to objects where you have rights to modify permissions."
- }
+ "leaf" : 0,
+ "path" : "/access/domains/{realm}",
+ "text" : "{realm}"
}
- },
- "path" : "/access/acl",
- "text" : "acl",
- "leaf" : 1
- },
- {
+ ],
"info" : {
"GET" : {
- "permissions" : {
- "user" : "world",
- "description" : "Anyone can access that, because we need that list for the login box (before the user is authenticated)."
- },
+ "allowtoken" : 1,
"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" : {
- "links" : [
- {
- "rel" : "child",
- "href" : "{realm}"
- }
- ],
- "type" : "array",
"items" : {
"properties" : {
+ "comment" : {
+ "description" : "A comment. The GUI use this text when you select a domain (Realm) on the login window.",
+ "optional" : 1,
+ "type" : "string"
+ },
"realm" : {
"type" : "string"
},
"tfa" : {
+ "description" : "Two-factor authentication provider.",
"enum" : [
"yubico",
"oath"
],
- "description" : "Two-factor authentication provider.",
"optional" : 1,
"type" : "string"
},
- "comment" : {
- "type" : "string",
- "optional" : 1
+ "type" : {
+ "type" : "string"
}
},
"type" : "object"
- }
+ },
+ "links" : [
+ {
+ "href" : "{realm}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
},
"POST" : {
+ "allowtoken" : 1,
"description" : "Add an authentication server.",
- "permissions" : {
- "check" : [
- "perm",
- "/access/realm",
- [
- "Realm.Allocate"
- ]
- ]
- },
- "protected" : 1,
+ "method" : "POST",
+ "name" : "create",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "server1" : {
- "format" : "address",
+ "acr-values" : {
+ "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
+ "optional" : 1,
"type" : "string",
- "description" : "Server IP address (or DNS name)",
+ "typetext" : "<string>"
+ },
+ "autocreate" : {
+ "default" : 0,
+ "description" : "Automatically create users if they do not exist.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "base_dn" : {
+ "description" : "LDAP base domain name",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+ "type" : "string"
+ },
+ "bind_dn" : {
+ "description" : "LDAP bind domain name",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+ "type" : "string"
+ },
+ "capath" : {
+ "default" : "/etc/ssl/certs",
+ "description" : "Path to the CA certificate store",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "case-sensitive" : {
+ "default" : 1,
+ "description" : "username is case-sensitive",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "cert" : {
+ "description" : "Path to the client certificate",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "certkey" : {
+ "description" : "Path to the client certificate key",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "client-id" : {
+ "description" : "OpenID Client ID",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "client-key" : {
+ "description" : "OpenID Client Key",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "default" : {
+ "description" : "Use this as default realm",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "domain" : {
+ "description" : "AD domain name",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "\\S+",
+ "type" : "string"
+ },
+ "filter" : {
+ "description" : "LDAP filter for user sync.",
+ "maxLength" : 2048,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "group_classes" : {
+ "default" : "groupOfNames, group, univentionGroup, ipausergroup",
+ "description" : "The objectclasses for groups.",
+ "format" : "ldap-simple-attr-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "group_dn" : {
+ "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
+ "maxLength" : 256,
+ "optional" : 1,
+ "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+ "type" : "string"
+ },
+ "group_filter" : {
+ "description" : "LDAP filter for group sync.",
+ "maxLength" : 2048,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "group_name_attr" : {
+ "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
+ "format" : "ldap-simple-attr",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "issuer-url" : {
+ "description" : "OpenID Issuer Url",
+ "maxLength" : 256,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "mode" : {
+ "default" : "ldap",
+ "description" : "LDAP protocol mode.",
+ "enum" : [
+ "ldap",
+ "ldaps",
+ "ldap+starttls"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "password" : {
+ "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "port" : {
+ "description" : "Server port.",
+ "maximum" : 65535,
+ "minimum" : 1,
"optional" : 1,
- "maxLength" : 256
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 65535)"
},
- "default" : {
- "type" : "boolean",
+ "prompt" : {
+ "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
"optional" : 1,
- "description" : "Use this as default realm"
+ "pattern" : "(?:none|login|consent|select_account|\\S+)",
+ "type" : "string"
},
"realm" : {
- "type" : "string",
- "format" : "pve-realm",
"description" : "Authentication domain ID",
- "maxLength" : 32
- },
- "base_dn" : {
+ "format" : "pve-realm",
+ "maxLength" : 32,
"type" : "string",
- "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
- "maxLength" : 256,
- "description" : "LDAP base domain name",
- "optional" : 1
+ "typetext" : "<string>"
},
- "tfa" : {
- "format" : "pve-tfa-config",
+ "scopes" : {
+ "default" : "email profile",
+ "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
+ "optional" : 1,
"type" : "string",
- "maxLength" : 128,
+ "typetext" : "<string>"
+ },
+ "secure" : {
+ "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
"optional" : 1,
- "description" : "Use Two-factor authentication."
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "server2" : {
+ "server1" : {
+ "description" : "Server IP address (or DNS name)",
"format" : "address",
+ "maxLength" : 256,
+ "optional" : 1,
"type" : "string",
+ "typetext" : "<string>"
+ },
+ "server2" : {
"description" : "Fallback Server IP address (or DNS name)",
+ "format" : "address",
"maxLength" : 256,
- "optional" : 1
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "domain" : {
- "pattern" : "\\S+",
+ "sslversion" : {
+ "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
+ "enum" : [
+ "tlsv1",
+ "tlsv1_1",
+ "tlsv1_2",
+ "tlsv1_3"
+ ],
"optional" : 1,
- "description" : "AD domain name",
- "maxLength" : 256,
"type" : "string"
},
- "type" : {
+ "sync-defaults-options" : {
+ "description" : "The default options for behavior of synchronizations.",
+ "format" : "realm-sync-options",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=[acl];[properties];[entry]] [,scope=<users|groups|both>]"
+ },
+ "sync_attributes" : {
+ "description" : "Comma separated list of key=value pairs for specifying which LDAP attributes map to which PVE user field. For example, to map the LDAP attribute 'mail' to PVEs 'email', write 'email=mail'. By default, each PVE user field is represented by an LDAP attribute of the same name.",
+ "optional" : 1,
+ "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+ "type" : "string"
+ },
+ "tfa" : {
+ "description" : "Use Two-factor authentication.",
+ "format" : "pve-tfa-config",
+ "maxLength" : 128,
+ "optional" : 1,
"type" : "string",
+ "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
+ },
+ "type" : {
"description" : "Realm type.",
"enum" : [
- "ldap",
- "pve",
"ad",
- "pam"
- ]
+ "ldap",
+ "openid",
+ "pam",
+ "pve"
+ ],
+ "type" : "string"
},
"user_attr" : {
- "type" : "string",
- "pattern" : "\\S{2,}",
"description" : "LDAP user attribute name",
"maxLength" : 256,
- "optional" : 1
+ "optional" : 1,
+ "pattern" : "\\S{2,}",
+ "type" : "string"
},
- "port" : {
- "minimum" : 1,
- "type" : "integer",
- "maximum" : 65535,
- "description" : "Server port.",
- "optional" : 1
+ "user_classes" : {
+ "default" : "inetorgperson, posixaccount, person, user",
+ "description" : "The objectclasses for users.",
+ "format" : "ldap-simple-attr-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
},
- "comment" : {
+ "username-claim" : {
+ "description" : "OpenID claim used to generate the unique username.",
+ "optional" : 1,
"type" : "string",
- "description" : "Description.",
- "maxLength" : 4096,
- "optional" : 1
+ "typetext" : "<string>"
+ },
+ "verify" : {
+ "default" : 0,
+ "description" : "Verify the server's SSL certificate",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/access/realm",
+ [
+ "Realm.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/access/domains",
+ "text" : "domains"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Get the OpenId Authorization Url for the specified realm.",
+ "method" : "POST",
+ "name" : "auth_url",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "realm" : {
+ "description" : "Authentication domain ID",
+ "format" : "pve-realm",
+ "maxLength" : 32,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "redirect-url" : {
+ "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
+ "maxLength" : 255,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "world"
+ },
+ "protected" : 1,
+ "returns" : {
+ "description" : "Redirection URL.",
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/access/openid/auth-url",
+ "text" : "auth-url"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : " Verify OpenID authorization code and create a ticket.",
+ "method" : "POST",
+ "name" : "login",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "code" : {
+ "description" : "OpenId authorization code.",
+ "maxLength" : 1024,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "redirect-url" : {
+ "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
+ "maxLength" : 255,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "state" : {
+ "description" : "OpenId state.",
+ "maxLength" : 1024,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "world"
+ },
+ "protected" : 1,
+ "returns" : {
+ "properties" : {
+ "CSRFPreventionToken" : {
+ "type" : "string"
+ },
+ "cap" : {
+ "type" : "object"
+ },
+ "clustername" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ticket" : {
+ "type" : "string"
+ },
+ "username" : {
+ "type" : "string"
+ }
+ }
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/access/openid/login",
+ "text" : "login"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "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/openid",
+ "text" : "openid"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 0,
+ "description" : "Delete a TFA entry by ID.",
+ "method" : "DELETE",
+ "name" : "delete_tfa",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "A TFA entry id.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "password" : {
+ "description" : "The current password.",
+ "maxLength" : 64,
+ "minLength" : 5,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "or",
+ [
+ "userid-param",
+ "self"
+ ],
+ [
+ "userid-group",
+ [
+ "User.Modify"
+ ]
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 0,
+ "description" : "Fetch a requested TFA entry if present.",
+ "method" : "GET",
+ "name" : "get_tfa_entry",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "A TFA entry id.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "or",
+ [
+ "userid-param",
+ "self"
+ ],
+ [
+ "userid-group",
+ [
+ "User.Modify",
+ "Sys.Audit"
+ ]
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "description" : "TFA Entry.",
+ "properties" : {
+ "created" : {
+ "description" : "Creation time of this entry as unix epoch.",
+ "type" : "integer"
+ },
+ "description" : {
+ "description" : "User chosen description for this entry.",
+ "type" : "string"
+ },
+ "enable" : {
+ "default" : 1,
+ "description" : "Whether this TFA entry is currently enabled.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "id" : {
+ "description" : "The id used to reference this entry.",
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "TFA Entry Type.",
+ "enum" : [
+ "totp",
+ "u2f",
+ "webauthn",
+ "recovery",
+ "yubico"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 0,
+ "description" : "Add a TFA entry for a user.",
+ "method" : "PUT",
+ "name" : "update_tfa_entry",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "description" : {
+ "description" : "A description to distinguish multiple entries from one another",
+ "maxLength" : 255,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable" : {
+ "description" : "Whether the entry should be enabled for login.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "id" : {
+ "description" : "A TFA entry id.",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "password" : {
+ "description" : "The current password.",
+ "maxLength" : 64,
+ "minLength" : 5,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "or",
+ [
+ "userid-param",
+ "self"
+ ],
+ [
+ "userid-group",
+ [
+ "User.Modify"
+ ]
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
},
- "secure" : {
- "optional" : 1,
- "description" : "Use secure LDAPS protocol.",
- "type" : "boolean"
- }
- },
- "additionalProperties" : 0,
- "type" : "object"
- },
- "returns" : {
- "type" : "null"
- },
- "name" : "create",
- "method" : "POST"
- }
- },
- "children" : [
- {
- "path" : "/access/domains/{realm}",
+ "leaf" : 1,
+ "path" : "/access/tfa/{userid}/{id}",
+ "text" : "{id}"
+ }
+ ],
"info" : {
- "PUT" : {
+ "GET" : {
+ "allowtoken" : 0,
+ "description" : "List TFA configurations of users.",
+ "method" : "GET",
+ "name" : "list_user_tfa",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
"permissions" : {
"check" : [
- "perm",
- "/access/realm",
+ "or",
[
- "Realm.Allocate"
+ "userid-param",
+ "self"
+ ],
+ [
+ "userid-group",
+ [
+ "User.Modify",
+ "Sys.Audit"
+ ]
]
]
},
- "description" : "Update authentication server settings.",
"protected" : 1,
+ "returns" : {
+ "description" : "A list of the user's TFA entries.",
+ "items" : {
+ "description" : "TFA Entry.",
+ "properties" : {
+ "created" : {
+ "description" : "Creation time of this entry as unix epoch.",
+ "type" : "integer"
+ },
+ "description" : {
+ "description" : "User chosen description for this entry.",
+ "type" : "string"
+ },
+ "enable" : {
+ "default" : 1,
+ "description" : "Whether this TFA entry is currently enabled.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "id" : {
+ "description" : "The id used to reference this entry.",
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "TFA Entry Type.",
+ "enum" : [
+ "totp",
+ "u2f",
+ "webauthn",
+ "recovery",
+ "yubico"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 0,
+ "description" : "Add a TFA entry for a user.",
+ "method" : "POST",
+ "name" : "add_tfa_entry",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "comment" : {
+ "challenge" : {
+ "description" : "When responding to a u2f challenge: the original challenge string",
+ "optional" : 1,
"type" : "string",
- "description" : "Description.",
- "maxLength" : 4096,
- "optional" : 1
+ "typetext" : "<string>"
},
- "secure" : {
- "type" : "boolean",
+ "description" : {
+ "description" : "A description to distinguish multiple entries from one another",
+ "maxLength" : 255,
"optional" : 1,
- "description" : "Use secure LDAPS protocol."
- },
- "user_attr" : {
"type" : "string",
- "pattern" : "\\S{2,}",
- "optional" : 1,
- "description" : "LDAP user attribute name",
- "maxLength" : 256
+ "typetext" : "<string>"
},
- "port" : {
- "description" : "Server port.",
+ "password" : {
+ "description" : "The current password.",
+ "maxLength" : 64,
+ "minLength" : 5,
"optional" : 1,
- "minimum" : 1,
- "maximum" : 65535,
- "type" : "integer"
- },
- "domain" : {
"type" : "string",
- "pattern" : "\\S+",
- "optional" : 1,
- "description" : "AD domain name",
- "maxLength" : 256
+ "typetext" : "<string>"
},
- "server2" : {
- "type" : "string",
- "format" : "address",
+ "totp" : {
+ "description" : "A totp URI.",
"optional" : 1,
- "maxLength" : 256,
- "description" : "Fallback Server IP address (or DNS name)"
- },
- "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."
+ "typetext" : "<string>"
},
- "realm" : {
- "maxLength" : 32,
- "description" : "Authentication domain ID",
- "format" : "pve-realm",
+ "type" : {
+ "description" : "TFA Entry Type.",
+ "enum" : [
+ "totp",
+ "u2f",
+ "webauthn",
+ "recovery",
+ "yubico"
+ ],
"type" : "string"
},
- "default" : {
- "type" : "boolean",
- "optional" : 1,
- "description" : "Use this as default realm"
- },
- "tfa" : {
- "description" : "Use Two-factor authentication.",
- "maxLength" : 128,
- "optional" : 1,
- "type" : "string",
- "format" : "pve-tfa-config"
- },
- "base_dn" : {
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
"type" : "string",
- "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
- "optional" : 1,
- "description" : "LDAP base domain name",
- "maxLength" : 256
+ "typetext" : "<string>"
},
- "delete" : {
- "maxLength" : 4096,
+ "value" : {
+ "description" : "The current value for the provided totp URI, or a Webauthn/U2F challenge response",
"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)",
- "maxLength" : 256,
- "optional" : 1
+ "typetext" : "<string>"
}
- },
- "type" : "object"
- },
- "returns" : {
- "type" : "null"
+ }
},
- "method" : "PUT",
- "name" : "update"
- },
- "GET" : {
- "description" : "Get auth server configuration.",
"permissions" : {
"check" : [
- "perm",
- "/access/realm",
+ "or",
[
- "Realm.Allocate",
- "Sys.Audit"
+ "userid-param",
+ "self"
],
- "any",
- 1
- ]
- },
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "realm" : {
- "description" : "Authentication domain ID",
- "maxLength" : 32,
- "type" : "string",
- "format" : "pve-realm"
- }
- }
- },
- "returns" : {},
- "name" : "read",
- "method" : "GET"
- },
- "DELETE" : {
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "realm" : {
- "maxLength" : 32,
- "description" : "Authentication domain ID",
- "type" : "string",
- "format" : "pve-realm"
- }
- }
- },
- "returns" : {
- "type" : "null"
- },
- "method" : "DELETE",
- "name" : "delete",
- "description" : "Delete an authentication server.",
- "permissions" : {
- "check" : [
- "perm",
- "/access/realm",
[
- "Realm.Allocate"
+ "userid-group",
+ [
+ "User.Modify"
+ ]
]
]
},
- "protected" : 1
+ "protected" : 1,
+ "returns" : {
+ "properties" : {
+ "challenge" : {
+ "description" : "When adding u2f entries, this contains a challenge the user must respond to in order to finish the registration.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "id" : {
+ "description" : "The id of a newly added TFA entry.",
+ "type" : "string"
+ },
+ "recovery" : {
+ "description" : "When adding recovery codes, this contains the list of codes to be displayed to the user",
+ "items" : {
+ "description" : "A recovery entry.",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ }
}
},
- "leaf" : 1,
- "text" : "{realm}"
+ "leaf" : 0,
+ "path" : "/access/tfa/{userid}",
+ "text" : "{userid}"
}
],
- "path" : "/access/domains",
- "leaf" : 0,
- "text" : "domains"
- },
- {
- "path" : "/access/ticket",
"info" : {
+ "GET" : {
+ "allowtoken" : 0,
+ "description" : "List TFA configurations of users.",
+ "method" : "GET",
+ "name" : "list_tfa",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "description" : "Returns all or just the logged-in user, depending on privileges.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "returns" : {
+ "description" : "The list tuples of user and TFA entries.",
+ "items" : {
+ "properties" : {
+ "entries" : {
+ "items" : {
+ "description" : "TFA Entry.",
+ "properties" : {
+ "created" : {
+ "description" : "Creation time of this entry as unix epoch.",
+ "type" : "integer"
+ },
+ "description" : {
+ "description" : "User chosen description for this entry.",
+ "type" : "string"
+ },
+ "enable" : {
+ "default" : 1,
+ "description" : "Whether this TFA entry is currently enabled.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "id" : {
+ "description" : "The id used to reference this entry.",
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "TFA Entry Type.",
+ "enum" : [
+ "totp",
+ "u2f",
+ "webauthn",
+ "recovery",
+ "yubico"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ },
+ "userid" : {
+ "description" : "User this entry belongs to.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ },
"POST" : {
+ "allowtoken" : 0,
+ "description" : "Finish a u2f challenge.",
"method" : "POST",
- "name" : "create_ticket",
+ "name" : "verify_tfa",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "response" : {
+ "description" : "The response to the current authentication challenge.",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "protected" : 1,
"returns" : {
"properties" : {
- "CSRFPreventionToken" : {
- "optional" : 1,
- "type" : "string"
- },
"ticket" : {
- "type" : "string",
- "optional" : 1
- },
- "username" : {
"type" : "string"
}
},
"type" : "object"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/access/tfa",
+ "text" : "tfa"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Dummy. Useful for formatters which want to provide a login page.",
+ "method" : "GET",
+ "name" : "get_ticket",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "world"
},
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 0,
+ "description" : "Create or verify authentication ticket.",
+ "method" : "POST",
+ "name" : "create_ticket",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
+ "new-format" : {
+ "default" : 0,
+ "description" : "With webauthn the format of half-authenticated tickts changed. New clients should pass 1 here and not worry about the old format. The old format is deprecated and will be retired with PVE-8.0",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"otp" : {
"description" : "One-time password for Two-factor authentication.",
"optional" : 1,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "password" : {
+ "description" : "The secret password. This can also be a valid ticket.",
+ "type" : "string",
+ "typetext" : "<string>"
},
"path" : {
+ "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
+ "maxLength" : 64,
+ "optional" : 1,
"requires" : "privs",
"type" : "string",
- "optional" : 1,
- "maxLength" : 64,
- "description" : "Verify ticket, and check if user have access 'privs' on 'path'"
+ "typetext" : "<string>"
},
- "password" : {
- "description" : "The secret password. This can also be a valid ticket.",
- "type" : "string"
+ "privs" : {
+ "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
+ "format" : "pve-priv-list",
+ "maxLength" : 64,
+ "optional" : 1,
+ "requires" : "path",
+ "type" : "string",
+ "typetext" : "<string>"
},
"realm" : {
- "optional" : 1,
- "maxLength" : 32,
"description" : "You can optionally pass the realm using this parameter. Normally the realm is simply added to the username <username>@<relam>.",
+ "format" : "pve-realm",
+ "maxLength" : 32,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "tfa-challenge" : {
+ "description" : "The signed TFA challenge string the user wants to respond to.",
+ "optional" : 1,
"type" : "string",
- "format" : "pve-realm"
+ "typetext" : "<string>"
},
"username" : {
"description" : "User name",
"maxLength" : 64,
- "type" : "string"
- },
- "privs" : {
- "format" : "pve-priv-list",
"type" : "string",
- "requires" : "path",
- "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
- "optional" : 1,
- "maxLength" : 64
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
},
- "protected" : 1,
- "description" : "Create or verify authentication ticket.",
- "permissions" : {
- "user" : "world",
- "description" : "You need to pass valid credientials."
- }
- },
- "GET" : {
- "description" : "Dummy. Useful for formaters which want to priovde a login page.",
"permissions" : {
+ "description" : "You need to pass valid credientials.",
"user" : "world"
},
- "method" : "GET",
- "name" : "get_ticket",
- "parameters" : {
- "additionalProperties" : 0
- },
+ "protected" : 1,
"returns" : {
- "type" : "null"
+ "properties" : {
+ "CSRFPreventionToken" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "clustername" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "ticket" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "username" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
}
}
},
- "text" : "ticket",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/access/ticket",
+ "text" : "ticket"
},
{
- "text" : "password",
- "leaf" : 1,
- "path" : "/access/password",
"info" : {
"PUT" : {
- "protected" : 1,
+ "allowtoken" : 0,
+ "description" : "Change user password.",
+ "method" : "PUT",
+ "name" : "change_password",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "password" : {
+ "description" : "The new password.",
+ "maxLength" : 64,
+ "minLength" : 5,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "userid" : {
+ "description" : "User ID",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
"permissions" : {
- "description" : "Each user is allowed to change his own password. A user can change the password of another user if he has 'Realm.AllocateUser' (on the realm of user <userid>) and 'User.Modify' permission on /access/groups/<group> on a group where user <userid> is member of.",
"check" : [
"or",
[
]
]
]
- ]
+ ],
+ "description" : "Each user is allowed to change his own password. A user can change the password of another user if he has 'Realm.AllocateUser' (on the realm of user <userid>) and 'User.Modify' permission on /access/groups/<group> on a group where user <userid> is member of."
},
- "description" : "Change user password.",
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/access/password",
+ "text" : "password"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Retrieve effective permissions of given user/token.",
+ "method" : "GET",
+ "name" : "permissions",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "password" : {
+ "path" : {
+ "description" : "Only dump this specific path, not the whole tree.",
+ "optional" : 1,
"type" : "string",
- "maxLength" : 64,
- "description" : "The new password.",
- "minLength" : 5
+ "typetext" : "<string>"
},
"userid" : {
- "description" : "User ID",
- "maxLength" : 64,
- "format" : "pve-userid",
+ "description" : "User ID or full API token ID",
+ "optional" : 1,
+ "pattern" : "(?^:^(?^:[^\\s:/]+)\\@(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)(?:!(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+))?$)",
"type" : "string"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "description" : "Each user/token is allowed to dump their own permissions. A user can dump the permissions of another user if they have 'Sys.Audit' permission on /access.",
+ "user" : "all"
+ },
+ "returns" : {
+ "description" : "Map of \"path\" => (Map of \"privilege\" => \"propagate boolean\").",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/access/permissions",
+ "text" : "permissions"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "type" : "string"
+ }
},
- "name" : "change_passsword",
- "method" : "PUT"
- }
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
}
- ]
+ },
+ "leaf" : 0,
+ "path" : "/access",
+ "text" : "access"
},
{
"children" : [
{
- "path" : "/pools/{poolid}",
"info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete pool.",
+ "method" : "DELETE",
+ "name" : "delete_pool",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "poolid" : {
+ "format" : "pve-poolid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/pool/{poolid}",
+ [
+ "Pool.Allocate"
+ ]
+ ],
+ "description" : "You can only delete empty pools (no members)."
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
"GET" : {
- "name" : "read_pool",
+ "allowtoken" : 1,
+ "description" : "Get pool configuration.",
"method" : "GET",
+ "name" : "read_pool",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"poolid" : {
+ "format" : "pve-poolid",
"type" : "string",
- "format" : "pve-poolid"
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "enum" : [
+ "qemu",
+ "lxc",
+ "storage"
+ ],
+ "optional" : 1,
+ "type" : "string"
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/pool/{poolid}",
+ [
+ "Pool.Audit"
+ ]
+ ]
+ },
"returns" : {
- "type" : "object",
+ "additionalProperties" : 0,
"properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
"members" : {
"items" : {
- "type" : "object",
"additionalProperties" : 1,
"properties" : {
+ "id" : {
+ "type" : "string"
+ },
+ "node" : {
+ "type" : "string"
+ },
"storage" : {
- "type" : "string",
- "optional" : 1
+ "optional" : 1,
+ "type" : "string"
},
"type" : {
"enum" : [
"type" : "string"
},
"vmid" : {
- "type" : "integer",
- "optional" : 1
- },
- "node" : {
- "type" : "string"
- },
- "id" : {
- "type" : "string"
+ "optional" : 1,
+ "type" : "integer"
}
- }
+ },
+ "type" : "object"
},
"type" : "array"
- },
- "comment" : {
- "type" : "string",
- "optional" : 1
- }
- },
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/pool/{poolid}",
- [
- "Pool.Allocate"
- ]
- ]
- },
- "description" : "Get pool configuration."
- },
- "DELETE" : {
- "permissions" : {
- "check" : [
- "perm",
- "/pool/{poolid}",
- [
- "Pool.Allocate"
- ]
- ],
- "description" : "You can only delete empty pools (no members)."
- },
- "description" : "Delete pool.",
- "protected" : 1,
- "parameters" : {
- "properties" : {
- "poolid" : {
- "format" : "pve-poolid",
- "type" : "string"
}
},
- "additionalProperties" : 0
- },
- "returns" : {
- "type" : "null"
- },
- "name" : "delete_pool",
- "method" : "DELETE"
+ "type" : "object"
+ }
},
"PUT" : {
- "permissions" : {
- "description" : "You also need the right to modify permissions on any object you add/delete.",
- "check" : [
- "perm",
- "/pool/{poolid}",
- [
- "Pool.Allocate"
- ]
- ]
- },
+ "allowtoken" : 1,
"description" : "Update pool data.",
- "protected" : 1,
+ "method" : "PUT",
+ "name" : "update_pool",
"parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "storage" : {
- "format" : "pve-storage-id-list",
+ "comment" : {
+ "optional" : 1,
"type" : "string",
- "description" : "List of storage IDs.",
- "optional" : 1
+ "typetext" : "<string>"
},
"delete" : {
+ "description" : "Remove vms/storage (instead of adding it).",
+ "optional" : 1,
"type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "poolid" : {
+ "format" : "pve-poolid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "List of storage IDs.",
+ "format" : "pve-storage-id-list",
"optional" : 1,
- "description" : "Remove vms/storage (instead of adding it)."
+ "type" : "string",
+ "typetext" : "<string>"
},
"vms" : {
"description" : "List of virtual machines.",
- "optional" : 1,
"format" : "pve-vmid-list",
- "type" : "string"
- },
- "comment" : {
"optional" : 1,
- "type" : "string"
- },
- "poolid" : {
- "format" : "pve-poolid",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
}
- },
- "additionalProperties" : 0
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/pool/{poolid}",
+ [
+ "Pool.Allocate"
+ ]
+ ],
+ "description" : "You also need the right to modify permissions on any object you add/delete."
},
+ "protected" : 1,
"returns" : {
"type" : "null"
- },
- "name" : "update_pool",
- "method" : "PUT"
+ }
}
},
- "text" : "{poolid}",
- "leaf" : 1
+ "leaf" : 1,
+ "path" : "/pools/{poolid}",
+ "text" : "{poolid}"
}
],
- "path" : "/pools",
"info" : {
"GET" : {
+ "allowtoken" : 1,
"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.Audit 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"
- },
+ "allowtoken" : 1,
+ "description" : "Create new pool.",
+ "method" : "POST",
+ "name" : "create_pool",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "poolid" : {
+ "comment" : {
+ "optional" : 1,
"type" : "string",
- "format" : "pve-poolid"
+ "typetext" : "<string>"
},
- "comment" : {
+ "poolid" : {
+ "format" : "pve-poolid",
"type" : "string",
- "optional" : 1
+ "typetext" : "<string>"
}
}
},
- "name" : "create_pool",
- "method" : "POST",
- "protected" : 1,
- "description" : "Create new pool.",
"permissions" : {
"check" : [
"perm",
"Pool.Allocate"
]
]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "text" : "pools",
- "leaf" : 0
+ "leaf" : 0,
+ "path" : "/pools",
+ "text" : "pools"
},
{
- "path" : "/version",
"info" : {
"GET" : {
+ "allowtoken" : 1,
+ "description" : "API version details, including some parts of the global datacenter config.",
+ "method" : "GET",
+ "name" : "version",
"parameters" : {
"additionalProperties" : 0
},
+ "permissions" : {
+ "user" : "all"
+ },
"returns" : {
- "type" : "object",
"properties" : {
- "release" : {
+ "console" : {
+ "description" : "The default console viewer to use.",
+ "enum" : [
+ "applet",
+ "vv",
+ "html5",
+ "xtermjs"
+ ],
+ "optional" : 1,
"type" : "string"
},
- "version" : {
+ "release" : {
+ "description" : "The current Proxmox VE point release in `x.y` format.",
"type" : "string"
},
"repoid" : {
+ "description" : "The short git revision from which this version was build.",
+ "type" : "string"
+ },
+ "version" : {
+ "description" : "The full pve-manager package version of this node.",
"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"
}
]