"typetext" : "<string>"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"additionalProperties" : 0
},
"permissions" : {
- "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
+ "description" : "Will only return replication jobs for which the calling user has VM.Audit permission on /vms/<vmid>.",
"user" : "all"
},
"returns" : {
"typetext" : "<string>"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
{
"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",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "returns" : {
- "description" : "Cluster Join API version, currently 1",
- "minimum" : 0,
- "type" : "integer"
- }
- }
- },
- "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>"
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Remove sendmail endpoint",
+ "method" : "DELETE",
+ "name" : "delete_sendmail_endpoint",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
- }
- },
- "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>"
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Return a specific sendmail endpoint",
+ "method" : "GET",
+ "name" : "get_sendmail_endpoint",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "force" : {
- "description" : "Do not throw error if node already exists.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "permissions" : {
+ "check" : [
+ "or",
+ [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Modify"
+ ]
+ ],
+ [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Audit"
+ ]
+ ]
+ ]
},
- "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",
+ "protected" : 1,
+ "returns" : {
+ "properties" : {
+ "author" : {
+ "description" : "Author of the mail",
+ "optional" : 1,
"type" : "string"
},
- "priority" : {
+ "comment" : {
+ "description" : "Comment",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "disable" : {
"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,
+ "description" : "Disable this target",
"optional" : 1,
- "type" : "integer"
+ "type" : "boolean"
+ },
+ "from-address" : {
+ "description" : "`From` address for the mail",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "mailto" : {
+ "description" : "List of email recipients",
+ "items" : {
+ "format" : "email-or-username",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
+ "mailto-user" : {
+ "description" : "List of users",
+ "items" : {
+ "format" : "pve-userid",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
+ "name" : {
+ "description" : "The name of the endpoint.",
+ "format" : "pve-configid",
+ "type" : "string"
}
},
- "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)"
+ "type" : "object"
}
- }
- },
- "protected" : 1,
- "returns" : {
- "properties" : {
- "corosync_authkey" : {
- "type" : "string"
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update existing sendmail endpoint",
+ "method" : "PUT",
+ "name" : "update_sendmail_endpoint",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "author" : {
+ "description" : "Author of the mail",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "description" : "Comment",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "items" : {
+ "format" : "pve-configid",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array",
+ "typetext" : "<array>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disable" : {
+ "default" : 0,
+ "description" : "Disable this target",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "from-address" : {
+ "description" : "`From` address for the mail",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "mailto" : {
+ "description" : "List of email recipients",
+ "items" : {
+ "format" : "email-or-username",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array",
+ "typetext" : "<array>"
+ },
+ "mailto-user" : {
+ "description" : "List of users",
+ "items" : {
+ "format" : "pve-userid",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array",
+ "typetext" : "<array>"
+ },
+ "name" : {
+ "description" : "The name of the endpoint.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "corosync_conf" : {
- "type" : "string"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Modify"
+ ]
+ ]
},
- "warnings" : {
- "items" : {
- "type" : "string"
- },
- "type" : "array"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
- },
- "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.Audit"
- ]
- ]
- },
- "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" : {
- "node" : {
- "default" : "current connected node",
- "description" : "The node for which the joinee gets the nodeinfo. ",
- "format" : "pve-node",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- }
+ "leaf" : 1,
+ "path" : "/cluster/notifications/endpoints/sendmail/{name}",
+ "text" : "{name}"
}
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "returns" : {
- "additionalProperties" : 0,
- "properties" : {
- "config_digest" : {
- "type" : "string"
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Returns a list of all sendmail endpoints",
+ "method" : "GET",
+ "name" : "get_sendmail_endpoints",
+ "parameters" : {
+ "additionalProperties" : 0
},
- "nodelist" : {
+ "permissions" : {
+ "check" : [
+ "or",
+ [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Modify"
+ ]
+ ],
+ [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Audit"
+ ]
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
"items" : {
- "additionalProperties" : 1,
"properties" : {
- "name" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
+ "author" : {
+ "description" : "Author of the mail",
+ "optional" : 1,
"type" : "string"
},
- "nodeid" : {
- "description" : "Node id for this node.",
- "minimum" : 1,
+ "comment" : {
+ "description" : "Comment",
"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}",
+ "disable" : {
+ "default" : 0,
+ "description" : "Disable this target",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "from-address" : {
+ "description" : "`From` address for the mail",
+ "optional" : 1,
"type" : "string"
},
- "quorum_votes" : {
- "minimum" : 0,
- "type" : "integer"
+ "mailto" : {
+ "description" : "List of email recipients",
+ "items" : {
+ "format" : "email-or-username",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array"
},
- "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"
- }
+ "mailto-user" : {
+ "description" : "List of users",
+ "items" : {
+ "format" : "pve-userid",
+ "type" : "string"
},
"optional" : 1,
+ "type" : "array"
+ },
+ "name" : {
+ "description" : "The name of the endpoint.",
+ "format" : "pve-configid",
+ "type" : "string"
+ },
+ "origin" : {
+ "description" : "Show if this entry was created by a user or was built-in",
+ "enum" : [
+ "user-created",
+ "builtin",
+ "modified-builtin"
+ ],
"type" : "string"
}
},
"type" : "object"
},
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
"type" : "array"
- },
- "preferred_node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string"
- },
- "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"
- },
- "force" : {
- "description" : "Do not throw error if node already exists.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "hostname" : {
- "description" : "Hostname (or IP) of an existing cluster member.",
- "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"
- },
- "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,
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a new sendmail endpoint",
+ "method" : "POST",
+ "name" : "create_sendmail_endpoint",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "author" : {
+ "description" : "Author of the mail",
"optional" : 1,
- "type" : "integer"
- }
- },
- "optional" : 1,
- "type" : "string",
- "typetext" : "[address=]<IP> [,priority=<integer>]"
- },
- "nodeid" : {
- "description" : "Node id for this node.",
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "description" : "Comment",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disable" : {
+ "default" : 0,
+ "description" : "Disable this target",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "from-address" : {
+ "description" : "`From` address for the mail",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "mailto" : {
+ "description" : "List of email recipients",
+ "items" : {
+ "format" : "email-or-username",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array",
+ "typetext" : "<array>"
+ },
+ "mailto-user" : {
+ "description" : "List of users",
+ "items" : {
+ "format" : "pve-userid",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array",
+ "typetext" : "<array>"
+ },
+ "name" : {
+ "description" : "The name of the endpoint.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "password" : {
- "description" : "Superuser (root) password of peer node.",
- "maxLength" : 128,
- "type" : "string",
- "typetext" : "<string>"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Modify"
+ ]
+ ]
},
- "votes" : {
- "description" : "Number of votes for this node",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
}
},
- "protected" : 1,
- "returns" : {
- "type" : "string"
- }
- }
- },
- "leaf" : 1,
- "path" : "/cluster/config/join",
- "text" : "join"
- },
- {
- "info" : {
- "GET" : {
- "allowtoken" : 1,
- "description" : "Get corosync totem protocol settings.",
- "method" : "GET",
- "name" : "totem",
- "parameters" : {
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "returns" : {
- "type" : "object"
- }
- }
- },
- "leaf" : 1,
- "path" : "/cluster/config/totem",
- "text" : "totem"
- },
- {
- "info" : {
- "GET" : {
- "allowtoken" : 1,
- "description" : "Get QDevice status",
- "method" : "GET",
- "name" : "status",
- "parameters" : {
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "protected" : 1,
- "returns" : {
- "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"
+ "leaf" : 0,
+ "path" : "/cluster/notifications/endpoints/sendmail",
+ "text" : "sendmail"
},
- "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"
- },
- "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>]"
- },
- "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" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - N)"
- }
- }
- },
- "protected" : 1,
- "returns" : {
- "type" : "string"
- }
- }
- },
- "leaf" : 0,
- "path" : "/cluster/config",
- "text" : "config"
- },
- {
- "children" : [
- {
- "children" : [
{
"children" : [
{
"info" : {
"DELETE" : {
"allowtoken" : 1,
- "description" : "Delete rule.",
+ "description" : "Remove gotify endpoint",
"method" : "DELETE",
- "name" : "delete_rule",
+ "name" : "delete_gotify_endpoint",
"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,
+ "name" : {
+ "format" : "pve-configid",
"type" : "string",
"typetext" : "<string>"
- },
- "group" : {
- "description" : "Security Group name.",
- "maxLength" : 18,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
- },
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
}
}
},
"permissions" : {
"check" : [
"perm",
- "/",
+ "/mapping/notifications",
[
- "Sys.Modify"
+ "Mapping.Modify"
]
]
},
"protected" : 1,
- "proxyto" : null,
"returns" : {
"type" : "null"
}
},
"GET" : {
"allowtoken" : 1,
- "description" : "Get single rule data.",
+ "description" : "Return a specific gotify endpoint",
"method" : "GET",
- "name" : "get_rule",
+ "name" : "get_gotify_endpoint",
"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)"
+ "name" : {
+ "description" : "Name of the endpoint.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
"permissions" : {
"check" : [
- "perm",
- "/",
+ "or",
[
- "Sys.Audit"
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Modify"
+ ]
+ ],
+ [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Audit"
+ ]
]
]
},
- "proxyto" : null,
+ "protected" : 1,
"returns" : {
"properties" : {
- "action" : {
- "type" : "string"
- },
"comment" : {
+ "description" : "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" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string"
},
- "source" : {
+ "disable" : {
+ "default" : 0,
+ "description" : "Disable this target",
"optional" : 1,
- "type" : "string"
+ "type" : "boolean"
},
- "sport" : {
- "optional" : 1,
+ "name" : {
+ "description" : "The name of the endpoint.",
+ "format" : "pve-configid",
"type" : "string"
},
- "type" : {
+ "server" : {
+ "description" : "Server URL",
"type" : "string"
}
},
},
"PUT" : {
"allowtoken" : 1,
- "description" : "Modify rule data.",
+ "description" : "Update existing gotify endpoint",
"method" : "PUT",
- "name" : "update_rule",
+ "name" : "update_gotify_endpoint",
"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.",
+ "description" : "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,
+ "items" : {
+ "format" : "pve-configid",
+ "type" : "string"
+ },
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "type" : "array",
+ "typetext" : "<array>"
},
"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' or 'icmpv6'/'ipv6-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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"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,
+ "disable" : {
+ "default" : 0,
+ "description" : "Disable this target",
"optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "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,
+ "name" : {
+ "description" : "The name of the endpoint.",
+ "format" : "pve-configid",
"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,
+ "server" : {
+ "description" : "Server URL",
"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",
+ "token" : {
+ "description" : "Secret token",
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
- },
- "type" : {
- "description" : "Rule type.",
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "optional" : 1,
- "type" : "string"
}
}
},
"permissions" : {
"check" : [
"perm",
- "/",
+ "/mapping/notifications",
[
- "Sys.Modify"
+ "Mapping.Modify"
]
]
},
"protected" : 1,
- "proxyto" : null,
"returns" : {
"type" : "null"
}
}
},
"leaf" : 1,
- "path" : "/cluster/firewall/groups/{group}/{pos}",
- "text" : "{pos}"
+ "path" : "/cluster/notifications/endpoints/gotify/{name}",
+ "text" : "{name}"
}
],
"info" : {
- "DELETE" : {
+ "GET" : {
"allowtoken" : 1,
- "description" : "Delete security group.",
- "method" : "DELETE",
- "name" : "delete_security_group",
+ "description" : "Returns a list of all gotify endpoints",
+ "method" : "GET",
+ "name" : "get_gotify_endpoints",
"parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "group" : {
- "description" : "Security Group name.",
- "maxLength" : 18,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
- }
- }
+ "additionalProperties" : 0
},
"permissions" : {
"check" : [
"perm",
- "/",
+ "/mapping/notifications",
[
- "Sys.Modify"
+ "Mapping.Audit"
]
]
},
"protected" : 1,
"returns" : {
- "type" : "null"
- }
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "description" : "Comment",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "disable" : {
+ "default" : 0,
+ "description" : "Disable this target",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "name" : {
+ "description" : "The name of the endpoint.",
+ "format" : "pve-configid",
+ "type" : "string"
+ },
+ "origin" : {
+ "description" : "Show if this entry was created by a user or was built-in",
+ "enum" : [
+ "user-created",
+ "builtin",
+ "modified-builtin"
+ ],
+ "type" : "string"
+ },
+ "server" : {
+ "description" : "Server URL",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
},
- "GET" : {
+ "POST" : {
"allowtoken" : 1,
- "description" : "List rules.",
- "method" : "GET",
- "name" : "get_rules",
+ "description" : "Create a new gotify endpoint",
+ "method" : "POST",
+ "name" : "create_gotify_endpoint",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "group" : {
- "description" : "Security Group name.",
- "maxLength" : 18,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
+ "comment" : {
+ "description" : "Comment",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disable" : {
+ "default" : 0,
+ "description" : "Disable this target",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "name" : {
+ "description" : "The name of the endpoint.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "server" : {
+ "description" : "Server URL",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "token" : {
+ "description" : "Secret token",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
"permissions" : {
"check" : [
"perm",
- "/",
+ "/mapping/notifications",
[
- "Sys.Audit"
+ "Mapping.Modify"
]
]
},
- "proxyto" : null,
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/notifications/endpoints/gotify",
+ "text" : "gotify"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Remove smtp endpoint",
+ "method" : "DELETE",
+ "name" : "delete_smtp_endpoint",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Return a specific smtp endpoint",
+ "method" : "GET",
+ "name" : "get_smtp_endpoint",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "or",
+ [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Modify"
+ ]
+ ],
+ [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Audit"
+ ]
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "properties" : {
+ "author" : {
+ "description" : "Author of the mail. Defaults to 'Proxmox VE'.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "comment" : {
+ "description" : "Comment",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "disable" : {
+ "default" : 0,
+ "description" : "Disable this target",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "from-address" : {
+ "description" : "`From` address for the mail",
+ "type" : "string"
+ },
+ "mailto" : {
+ "description" : "List of email recipients",
+ "items" : {
+ "format" : "email-or-username",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
+ "mailto-user" : {
+ "description" : "List of users",
+ "items" : {
+ "format" : "pve-userid",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
+ "mode" : {
+ "default" : "tls",
+ "description" : "Determine which encryption method shall be used for the connection.",
+ "enum" : [
+ "insecure",
+ "starttls",
+ "tls"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "The name of the endpoint.",
+ "format" : "pve-configid",
+ "type" : "string"
+ },
+ "port" : {
+ "description" : "The port to be used. Defaults to 465 for TLS based connections, 587 for STARTTLS based connections and port 25 for insecure plain-text connections.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "server" : {
+ "description" : "The address of the SMTP server.",
+ "type" : "string"
+ },
+ "username" : {
+ "description" : "Username for SMTP authentication",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update existing smtp endpoint",
+ "method" : "PUT",
+ "name" : "update_smtp_endpoint",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "author" : {
+ "description" : "Author of the mail. Defaults to 'Proxmox VE'.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "description" : "Comment",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "items" : {
+ "format" : "pve-configid",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array",
+ "typetext" : "<array>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "disable" : {
+ "default" : 0,
+ "description" : "Disable this target",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "from-address" : {
+ "description" : "`From` address for the mail",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "mailto" : {
+ "description" : "List of email recipients",
+ "items" : {
+ "format" : "email-or-username",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array",
+ "typetext" : "<array>"
+ },
+ "mailto-user" : {
+ "description" : "List of users",
+ "items" : {
+ "format" : "pve-userid",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array",
+ "typetext" : "<array>"
+ },
+ "mode" : {
+ "default" : "tls",
+ "description" : "Determine which encryption method shall be used for the connection.",
+ "enum" : [
+ "insecure",
+ "starttls",
+ "tls"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "The name of the endpoint.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "password" : {
+ "description" : "Password for SMTP authentication",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "port" : {
+ "description" : "The port to be used. Defaults to 465 for TLS based connections, 587 for STARTTLS based connections and port 25 for insecure plain-text connections.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "server" : {
+ "description" : "The address of the SMTP server.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "username" : {
+ "description" : "Username for SMTP authentication",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "or",
+ [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Modify"
+ ]
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/notifications/endpoints/smtp/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Returns a list of all smtp endpoints",
+ "method" : "GET",
+ "name" : "get_smtp_endpoints",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "or",
+ [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Modify"
+ ]
+ ],
+ [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Audit"
+ ]
+ ]
+ ]
+ },
+ "protected" : 1,
"returns" : {
"items" : {
"properties" : {
- "pos" : {
+ "author" : {
+ "description" : "Author of the mail. Defaults to 'Proxmox VE'.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "comment" : {
+ "description" : "Comment",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "disable" : {
+ "default" : 0,
+ "description" : "Disable this target",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "from-address" : {
+ "description" : "`From` address for the mail",
+ "type" : "string"
+ },
+ "mailto" : {
+ "description" : "List of email recipients",
+ "items" : {
+ "format" : "email-or-username",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
+ "mailto-user" : {
+ "description" : "List of users",
+ "items" : {
+ "format" : "pve-userid",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
+ "mode" : {
+ "default" : "tls",
+ "description" : "Determine which encryption method shall be used for the connection.",
+ "enum" : [
+ "insecure",
+ "starttls",
+ "tls"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "The name of the endpoint.",
+ "format" : "pve-configid",
+ "type" : "string"
+ },
+ "origin" : {
+ "description" : "Show if this entry was created by a user or was built-in",
+ "enum" : [
+ "user-created",
+ "builtin",
+ "modified-builtin"
+ ],
+ "type" : "string"
+ },
+ "port" : {
+ "description" : "The port to be used. Defaults to 465 for TLS based connections, 587 for STARTTLS based connections and port 25 for insecure plain-text connections.",
+ "optional" : 1,
"type" : "integer"
+ },
+ "server" : {
+ "description" : "The address of the SMTP server.",
+ "type" : "string"
+ },
+ "username" : {
+ "description" : "Username for SMTP authentication",
+ "optional" : 1,
+ "type" : "string"
}
},
"type" : "object"
},
"links" : [
{
- "href" : "{pos}",
+ "href" : "{name}",
"rel" : "child"
}
],
},
"POST" : {
"allowtoken" : 1,
- "description" : "Create new rule.",
+ "description" : "Create a new smtp endpoint",
"method" : "POST",
- "name" : "create_rule",
+ "name" : "create_smtp_endpoint",
"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.",
+ "author" : {
+ "description" : "Author of the mail. Defaults to 'Proxmox VE'.",
"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,
+ "comment" : {
+ "description" : "Comment",
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "disable" : {
+ "default" : 0,
+ "description" : "Disable this target",
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "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,
+ "from-address" : {
+ "description" : "`From` address for the mail",
"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' or 'icmpv6'/'ipv6-icmp'.",
- "format" : "pve-fw-icmp-type-spec",
+ "mailto" : {
+ "description" : "List of email recipients",
+ "items" : {
+ "format" : "email-or-username",
+ "type" : "string"
+ },
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "type" : "array",
+ "typetext" : "<array>"
},
- "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,
+ "mailto-user" : {
+ "description" : "List of users",
+ "items" : {
+ "format" : "pve-userid",
+ "type" : "string"
+ },
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "type" : "array",
+ "typetext" : "<array>"
},
- "log" : {
- "description" : "Log level for firewall rule.",
+ "mode" : {
+ "default" : "tls",
+ "description" : "Determine which encryption method shall be used for the connection.",
"enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
+ "insecure",
+ "starttls",
+ "tls"
],
"optional" : 1,
"type" : "string"
},
- "macro" : {
- "description" : "Use predefined standard macro.",
- "maxLength" : 128,
- "optional" : 1,
+ "name" : {
+ "description" : "The name of the endpoint.",
+ "format" : "pve-configid",
"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",
+ "password" : {
+ "description" : "Password for SMTP authentication",
"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,
+ "port" : {
+ "description" : "The port to be used. Defaults to 465 for TLS based connections, 587 for STARTTLS based connections and port 25 for insecure plain-text connections.",
"optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "server" : {
+ "description" : "The address of the SMTP server.",
"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",
+ "username" : {
+ "description" : "Username for SMTP authentication",
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
- },
- "type" : {
- "description" : "Rule type.",
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "optional" : 0,
- "type" : "string"
}
}
},
"permissions" : {
"check" : [
- "perm",
- "/",
+ "or",
[
- "Sys.Modify"
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Modify"
+ ]
]
]
},
"protected" : 1,
- "proxyto" : null,
"returns" : {
"type" : "null"
}
}
},
"leaf" : 0,
- "path" : "/cluster/firewall/groups/{group}",
- "text" : "{group}"
+ "path" : "/cluster/notifications/endpoints/smtp",
+ "text" : "smtp"
}
],
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "List security groups.",
+ "description" : "Index for all available endpoint types.",
"method" : "GET",
- "name" : "list_security_groups",
+ "name" : "endpoints_index",
"parameters" : {
"additionalProperties" : 0
},
},
"returns" : {
"items" : {
- "properties" : {
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 0,
- "type" : "string"
- },
- "group" : {
- "description" : "Security Group name.",
- "maxLength" : 18,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
- }
- },
+ "properties" : {},
"type" : "object"
},
"links" : [
{
- "href" : "{group}",
+ "href" : "{name}",
"rel" : "child"
}
],
"type" : "array"
}
- },
- "POST" : {
- "allowtoken" : 1,
- "description" : "Create new security group.",
- "method" : "POST",
- "name" : "create_security_group",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "comment" : {
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "group" : {
- "description" : "Security Group name.",
- "maxLength" : 18,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/notifications/endpoints",
+ "text" : "endpoints"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Send a test notification to a provided target.",
+ "method" : "POST",
+ "name" : "test_target",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "Name of the target.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "or",
+ [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Modify"
+ ]
+ ],
+ [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Audit"
+ ]
+ ],
+ [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Use"
+ ]
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
},
- "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"
- }
+ "leaf" : 1,
+ "path" : "/cluster/notifications/targets/{name}/test",
+ "text" : "test"
}
+ ],
+ "leaf" : 0,
+ "path" : "/cluster/notifications/targets/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Returns a list of all entities that can be used as notification targets.",
+ "method" : "GET",
+ "name" : "get_all_targets",
+ "parameters" : {
+ "additionalProperties" : 0
},
"permissions" : {
"check" : [
- "perm",
- "/",
+ "or",
[
- "Sys.Modify"
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Modify"
+ ]
+ ],
+ [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Audit"
+ ]
+ ],
+ [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Use"
+ ]
]
]
},
"protected" : 1,
"returns" : {
- "type" : "null"
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "description" : "Comment",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "disable" : {
+ "default" : 0,
+ "description" : "Show if this target is disabled",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "name" : {
+ "description" : "Name of the target.",
+ "format" : "pve-configid",
+ "type" : "string"
+ },
+ "origin" : {
+ "description" : "Show if this entry was created by a user or was built-in",
+ "enum" : [
+ "user-created",
+ "builtin",
+ "modified-builtin"
+ ],
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "Type of the target.",
+ "enum" : [
+ "sendmail",
+ "gotify",
+ "smtp"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
}
},
"leaf" : 0,
- "path" : "/cluster/firewall/groups",
- "text" : "groups"
+ "path" : "/cluster/notifications/targets",
+ "text" : "targets"
},
{
"children" : [
"info" : {
"DELETE" : {
"allowtoken" : 1,
- "description" : "Delete rule.",
+ "description" : "Remove matcher",
"method" : "DELETE",
- "name" : "delete_rule",
+ "name" : "delete_matcher",
"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,
+ "name" : {
+ "format" : "pve-configid",
"type" : "string",
"typetext" : "<string>"
- },
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
}
}
},
"permissions" : {
"check" : [
"perm",
- "/",
+ "/mapping/notifications",
[
- "Sys.Modify"
+ "Mapping.Modify"
]
]
},
"protected" : 1,
- "proxyto" : null,
"returns" : {
"type" : "null"
}
},
"GET" : {
"allowtoken" : 1,
- "description" : "Get single rule data.",
+ "description" : "Return a specific matcher",
"method" : "GET",
- "name" : "get_rule",
+ "name" : "get_matcher",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "pos" : {
- "description" : "Update rule at position <pos>.",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
+ "name" : {
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
"permissions" : {
"check" : [
- "perm",
- "/",
+ "or",
[
- "Sys.Audit"
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Modify"
+ ]
+ ],
+ [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Audit"
+ ]
]
]
},
- "proxyto" : null,
+ "protected" : 1,
"returns" : {
"properties" : {
- "action" : {
- "type" : "string"
- },
"comment" : {
+ "description" : "Comment",
"optional" : 1,
"type" : "string"
},
- "dest" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string"
},
- "dport" : {
+ "disable" : {
+ "default" : 0,
+ "description" : "Disable this matcher",
"optional" : 1,
- "type" : "string"
+ "type" : "boolean"
},
- "enable" : {
+ "invert-match" : {
+ "description" : "Invert match of the whole matcher",
"optional" : 1,
- "type" : "integer"
+ "type" : "boolean"
},
- "icmp-type" : {
+ "match-calendar" : {
+ "description" : "Match notification timestamp",
+ "items" : {
+ "type" : "string"
+ },
"optional" : 1,
- "type" : "string"
+ "type" : "array"
},
- "iface" : {
+ "match-field" : {
+ "description" : "Metadata fields to match (regex or exact match). Must be in the form (regex|exact):<field>=<value>",
+ "items" : {
+ "type" : "string"
+ },
"optional" : 1,
- "type" : "string"
+ "type" : "array"
},
- "ipversion" : {
+ "match-severity" : {
+ "description" : "Notification severities to match",
+ "items" : {
+ "type" : "string"
+ },
"optional" : 1,
- "type" : "integer"
+ "type" : "array"
},
- "log" : {
- "description" : "Log level for firewall rule",
+ "mode" : {
+ "default" : "all",
+ "description" : "Choose between 'all' and 'any' for when multiple properties are specified",
"enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
+ "all",
+ "any"
],
"optional" : 1,
"type" : "string"
},
- "macro" : {
- "optional" : 1,
- "type" : "string"
- },
- "pos" : {
- "type" : "integer"
- },
- "proto" : {
- "optional" : 1,
- "type" : "string"
- },
- "source" : {
- "optional" : 1,
+ "name" : {
+ "description" : "Name of the matcher.",
+ "format" : "pve-configid",
"type" : "string"
},
- "sport" : {
+ "target" : {
+ "description" : "Targets to notify on match",
+ "items" : {
+ "format" : "pve-configid",
+ "type" : "string"
+ },
"optional" : 1,
- "type" : "string"
- },
- "type" : {
- "type" : "string"
+ "type" : "array"
}
},
"type" : "object"
},
"PUT" : {
"allowtoken" : 1,
- "description" : "Modify rule data.",
+ "description" : "Update existing matcher",
"method" : "PUT",
- "name" : "update_rule",
+ "name" : "update_matcher",
"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.",
+ "description" : "Comment",
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
"delete" : {
"description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list",
+ "items" : {
+ "format" : "pve-configid",
+ "type" : "string"
+ },
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "type" : "array",
+ "typetext" : "<array>"
},
- "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,
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "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,
+ "disable" : {
+ "default" : 0,
+ "description" : "Disable this matcher",
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "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",
+ "invert-match" : {
+ "description" : "Invert match of the whole matcher",
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "enable" : {
- "description" : "Flag to enable/disable a rule.",
- "minimum" : 0,
+ "match-calendar" : {
+ "description" : "Match notification timestamp",
+ "items" : {
+ "type" : "string"
+ },
"optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
+ "type" : "array",
+ "typetext" : "<array>"
},
- "icmp-type" : {
- "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
- "format" : "pve-fw-icmp-type-spec",
+ "match-field" : {
+ "description" : "Metadata fields to match (regex or exact match). Must be in the form (regex|exact):<field>=<value>",
+ "items" : {
+ "type" : "string"
+ },
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "type" : "array",
+ "typetext" : "<array>"
},
- "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,
+ "match-severity" : {
+ "description" : "Notification severities to match",
+ "items" : {
+ "type" : "string"
+ },
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "type" : "array",
+ "typetext" : "<array>"
},
- "log" : {
- "description" : "Log level for firewall rule.",
+ "mode" : {
+ "default" : "all",
+ "description" : "Choose between 'all' and 'any' for when multiple properties are specified",
"enum" : [
- "emerg",
- "alert",
- "crit",
- "err",
- "warning",
- "notice",
- "info",
- "debug",
- "nolog"
+ "all",
+ "any"
],
"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,
+ "name" : {
+ "description" : "Name of the matcher.",
+ "format" : "pve-configid",
"type" : "string",
"typetext" : "<string>"
},
- "type" : {
- "description" : "Rule type.",
- "enum" : [
- "in",
- "out",
- "group"
- ],
+ "target" : {
+ "description" : "Targets to notify on match",
+ "items" : {
+ "format" : "pve-configid",
+ "type" : "string"
+ },
"optional" : 1,
- "type" : "string"
+ "type" : "array",
+ "typetext" : "<array>"
}
}
},
"permissions" : {
"check" : [
"perm",
- "/",
+ "/mapping/notifications",
[
- "Sys.Modify"
+ "Mapping.Modify"
]
]
},
"protected" : 1,
- "proxyto" : null,
"returns" : {
"type" : "null"
}
}
},
"leaf" : 1,
- "path" : "/cluster/firewall/rules/{pos}",
- "text" : "{pos}"
+ "path" : "/cluster/notifications/matchers/{name}",
+ "text" : "{name}"
}
],
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "List rules.",
+ "description" : "Returns a list of all matchers",
"method" : "GET",
- "name" : "get_rules",
+ "name" : "get_matchers",
"parameters" : {
"additionalProperties" : 0
},
"permissions" : {
"check" : [
- "perm",
- "/",
+ "or",
[
- "Sys.Audit"
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Modify"
+ ]
+ ],
+ [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Audit"
+ ]
+ ],
+ [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Use"
+ ]
]
]
},
- "proxyto" : null,
+ "protected" : 1,
"returns" : {
"items" : {
"properties" : {
- "pos" : {
- "type" : "integer"
+ "comment" : {
+ "description" : "Comment",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "disable" : {
+ "default" : 0,
+ "description" : "Disable this matcher",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "invert-match" : {
+ "description" : "Invert match of the whole matcher",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "match-calendar" : {
+ "description" : "Match notification timestamp",
+ "items" : {
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
+ "match-field" : {
+ "description" : "Metadata fields to match (regex or exact match). Must be in the form (regex|exact):<field>=<value>",
+ "items" : {
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
+ "match-severity" : {
+ "description" : "Notification severities to match",
+ "items" : {
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
+ "mode" : {
+ "default" : "all",
+ "description" : "Choose between 'all' and 'any' for when multiple properties are specified",
+ "enum" : [
+ "all",
+ "any"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "Name of the matcher.",
+ "format" : "pve-configid",
+ "type" : "string"
+ },
+ "origin" : {
+ "description" : "Show if this entry was created by a user or was built-in",
+ "enum" : [
+ "user-created",
+ "builtin",
+ "modified-builtin"
+ ],
+ "type" : "string"
+ },
+ "target" : {
+ "description" : "Targets to notify on match",
+ "items" : {
+ "format" : "pve-configid",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array"
}
},
"type" : "object"
},
"links" : [
{
- "href" : "{pos}",
+ "href" : "{name}",
"rel" : "child"
}
],
},
"POST" : {
"allowtoken" : 1,
- "description" : "Create new rule.",
+ "description" : "Create a new matcher",
"method" : "POST",
- "name" : "create_rule",
+ "name" : "create_matcher",
"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.",
+ "description" : "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,
+ "disable" : {
+ "default" : 0,
+ "description" : "Disable this matcher",
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "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,
+ "invert-match" : {
+ "description" : "Invert match of the whole matcher",
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "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",
+ "match-calendar" : {
+ "description" : "Match notification timestamp",
+ "items" : {
+ "type" : "string"
+ },
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "type" : "array",
+ "typetext" : "<array>"
},
- "enable" : {
+ "match-field" : {
+ "description" : "Metadata fields to match (regex or exact match). Must be in the form (regex|exact):<field>=<value>",
+ "items" : {
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array",
+ "typetext" : "<array>"
+ },
+ "match-severity" : {
+ "description" : "Notification severities to match",
+ "items" : {
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array",
+ "typetext" : "<array>"
+ },
+ "mode" : {
+ "default" : "all",
+ "description" : "Choose between 'all' and 'any' for when multiple properties are specified",
+ "enum" : [
+ "all",
+ "any"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "Name of the matcher.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "target" : {
+ "description" : "Targets to notify on match",
+ "items" : {
+ "format" : "pve-configid",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array",
+ "typetext" : "<array>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/mapping/notifications",
+ [
+ "Mapping.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/notifications/matchers",
+ "text" : "matchers"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Index for notification-related API endpoints.",
+ "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/notifications",
+ "text" : "notifications"
+ },
+ {
+ "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",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "description" : "Cluster Join API version, currently 1",
+ "minimum" : 0,
+ "type" : "integer"
+ }
+ }
+ },
+ "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.Audit"
+ ]
+ ]
+ },
+ "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" : {
+ "node" : {
+ "default" : "current connected node",
+ "description" : "The node for which the joinee gets the nodeinfo. ",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "config_digest" : {
+ "type" : "string"
+ },
+ "nodelist" : {
+ "items" : {
+ "additionalProperties" : 1,
+ "properties" : {
+ "name" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "nodeid" : {
+ "description" : "Node id for this node.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "pve_addr" : {
+ "format" : "ip",
+ "type" : "string"
+ },
+ "pve_fp" : {
+ "description" : "Certificate SHA 256 fingerprint.",
+ "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
+ "type" : "string"
+ },
+ "quorum_votes" : {
+ "minimum" : 0,
+ "type" : "integer"
+ },
+ "ring0_addr" : {
+ "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"
+ },
+ "preferred_node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "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"
+ },
+ "force" : {
+ "description" : "Do not throw error if node already exists.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "hostname" : {
+ "description" : "Hostname (or IP) of an existing cluster member.",
+ "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"
+ },
+ "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>]"
+ },
+ "nodeid" : {
+ "description" : "Node id for this node.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "password" : {
+ "description" : "Superuser (root) password of peer node.",
+ "maxLength" : 128,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "votes" : {
+ "description" : "Number of votes for this node",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ }
+ }
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/config/join",
+ "text" : "join"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get corosync totem protocol settings.",
+ "method" : "GET",
+ "name" : "totem",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/config/totem",
+ "text" : "totem"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get QDevice status",
+ "method" : "GET",
+ "name" : "status",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "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"
+ },
+ "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>]"
+ },
+ "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" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ }
+ }
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/config",
+ "text" : "config"
+ },
+ {
+ "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 a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "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.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 a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
+ "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' or 'icmpv6'/'ipv6-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"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/firewall/groups/{group}/{pos}",
+ "text" : "{pos}"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete security group.",
+ "method" : "DELETE",
+ "name" : "delete_security_group",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
+ "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 rules.",
+ "method" : "GET",
+ "name" : "get_rules",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.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 a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
+ "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' or 'icmpv6'/'ipv6-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>"
+ },
+ "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"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/firewall/groups/{group}",
+ "text" : "{group}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List security groups.",
+ "method" : "GET",
+ "name" : "list_security_groups",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{group}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create new security group.",
+ "method" : "POST",
+ "name" : "create_security_group",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "rename" : {
+ "description" : "Rename/update an existing security group. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing group.",
+ "maxLength" : 18,
+ "minLength" : 2,
+ "optional" : 1,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/firewall/groups",
+ "text" : "groups"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete rule.",
+ "method" : "DELETE",
+ "name" : "delete_rule",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : null,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "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)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "proxyto" : null,
+ "returns" : {
+ "properties" : {
+ "action" : {
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dest" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dport" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "enable" : {
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "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 a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
+ "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' or 'icmpv6'/'ipv6-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"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/firewall/rules/{pos}",
+ "text" : "{pos}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List rules.",
+ "method" : "GET",
+ "name" : "get_rules",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.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 a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
+ "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,
"typetext" : "<string>"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"type" : "string"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 0,
"type" : "string"
},
"type" : "string"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 0,
"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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"type" : "string"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 0,
"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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"ref" : {
"type" : "string"
},
+ "scope" : {
+ "type" : "string"
+ },
"type" : {
"enum" : [
"alias",
"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.",
+ "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
"items" : {
"type" : "string"
},
"type" : "array",
"typetext" : "<array>"
},
+ "fleecing" : {
+ "description" : "Options for backup fleecing (VM only).",
+ "format" : "backup-fleecing",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[enabled=]<1|0>] [,storage=<storage ID>]"
+ },
"id" : {
"description" : "The job ID.",
"maxLength" : 50,
},
"mailnotification" : {
"default" : "always",
- "description" : "Specify when to send an email",
+ "description" : "Deprecated: use notification targets/matchers instead. Specify when to send a notification mail",
"enum" : [
"always",
"failure"
"type" : "string"
},
"mailto" : {
- "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
+ "description" : "Deprecated: Use notification targets/matchers instead. Comma-separated list of email addresses or users that should receive email notifications.",
"format" : "email-or-username-list",
"optional" : 1,
"type" : "string",
"type" : "string",
"typetext" : "<string>"
},
+ "notification-mode" : {
+ "default" : "auto",
+ "description" : "Determine which notification system to use. If set to 'legacy-sendmail', vzdump will consider the mailto/mailnotification parameters and send emails to the specified address(es) via the 'sendmail' command. If set to 'notification-system', a notification will be sent via PVE's notification system, and the mailto and mailnotification will be ignored. If set to 'auto' (default setting), an email will be sent if mailto is set, and the notification system will be used if not.",
+ "enum" : [
+ "auto",
+ "legacy-sendmail",
+ "notification-system"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "notification-policy" : {
+ "default" : "always",
+ "description" : "Deprecated: Do not use",
+ "enum" : [
+ "always",
+ "failure",
+ "never"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "notification-target" : {
+ "description" : "Deprecated: Do not use",
+ "format" : "pve-configid",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"performance" : {
"description" : "Other performance-related settings.",
"format" : "backup-performance",
"optional" : 1,
"type" : "string",
- "typetext" : "[max-workers=<integer>]"
+ "typetext" : "[max-workers=<integer>] [,pbs-entries-max=<integer>]"
},
"pigz" : {
"default" : 0,
"storage" : {
"description" : "Store resulting file to this storage.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"tmpdir" : {
"description" : "Store temporary files to specified directory.",
},
"zstd" : {
"default" : 1,
- "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
+ "description" : "Zstd threads. N=0 uses half of the available cores, if N is set to a value bigger than 0, N is used as thread count.",
"optional" : 1,
"type" : "integer",
"typetext" : "<integer>"
"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.",
+ "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
"items" : {
"type" : "string"
},
"type" : "array",
"typetext" : "<array>"
},
+ "fleecing" : {
+ "description" : "Options for backup fleecing (VM only).",
+ "format" : "backup-fleecing",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[enabled=]<1|0>] [,storage=<storage ID>]"
+ },
"id" : {
"description" : "Job ID (will be autogenerated).",
"format" : "pve-configid",
},
"mailnotification" : {
"default" : "always",
- "description" : "Specify when to send an email",
+ "description" : "Deprecated: use notification targets/matchers instead. Specify when to send a notification mail",
"enum" : [
"always",
"failure"
"type" : "string"
},
"mailto" : {
- "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
+ "description" : "Deprecated: Use notification targets/matchers instead. Comma-separated list of email addresses or users that should receive email notifications.",
"format" : "email-or-username-list",
"optional" : 1,
"type" : "string",
"type" : "string",
"typetext" : "<string>"
},
+ "notification-mode" : {
+ "default" : "auto",
+ "description" : "Determine which notification system to use. If set to 'legacy-sendmail', vzdump will consider the mailto/mailnotification parameters and send emails to the specified address(es) via the 'sendmail' command. If set to 'notification-system', a notification will be sent via PVE's notification system, and the mailto and mailnotification will be ignored. If set to 'auto' (default setting), an email will be sent if mailto is set, and the notification system will be used if not.",
+ "enum" : [
+ "auto",
+ "legacy-sendmail",
+ "notification-system"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "notification-policy" : {
+ "default" : "always",
+ "description" : "Deprecated: Do not use",
+ "enum" : [
+ "always",
+ "failure",
+ "never"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "notification-target" : {
+ "description" : "Deprecated: Do not use",
+ "format" : "pve-configid",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"performance" : {
"description" : "Other performance-related settings.",
"format" : "backup-performance",
"optional" : 1,
"type" : "string",
- "typetext" : "[max-workers=<integer>]"
+ "typetext" : "[max-workers=<integer>] [,pbs-entries-max=<integer>]"
},
"pigz" : {
"default" : 0,
"storage" : {
"description" : "Store resulting file to this storage.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"tmpdir" : {
"description" : "Store temporary files to specified directory.",
},
"zstd" : {
"default" : 1,
- "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
+ "description" : "Zstd threads. N=0 uses half of the available cores, if N is set to a value bigger than 0, N is used as thread count.",
"optional" : 1,
"type" : "integer",
"typetext" : "<integer>"
"typetext" : "<string>"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"ad",
"ali",
"anx",
+ "artfiles",
"arvan",
"aurora",
"autodns",
"aws",
"azion",
"azure",
+ "bookmyname",
"bunny",
"cf",
"clouddns",
"desec",
"df",
"dgon",
+ "dnsexit",
"dnshome",
"dnsimple",
"dnsservices",
"servercow",
"simply",
"tele3",
+ "tencent",
"transip",
"udr",
"ultra",
"typetext" : "<string>"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"ad",
"ali",
"anx",
+ "artfiles",
"arvan",
"aurora",
"autodns",
"aws",
"azion",
"azure",
+ "bookmyname",
"bunny",
"cf",
"clouddns",
"desec",
"df",
"dgon",
+ "dnsexit",
"dnshome",
"dnsimple",
"dnsservices",
"servercow",
"simply",
"tele3",
+ "tencent",
"transip",
"udr",
"ultra",
"pattern" : "^https?://.*",
"type" : "string"
},
+ "eab-hmac-key" : {
+ "description" : "HMAC key for External Account Binding.",
+ "optional" : 1,
+ "requires" : "eab-kid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "eab-kid" : {
+ "description" : "Key Identifier for External Account Binding.",
+ "optional" : 1,
+ "requires" : "eab-hmac-key",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"name" : {
"default" : "default",
"description" : "ACME account config file name.",
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "Retrieve ACME TermsOfService URL from CA.",
+ "description" : "Retrieve ACME TermsOfService URL from CA. Deprecated, please use /cluster/acme/meta.",
"method" : "GET",
"name" : "get_tos",
"parameters" : {
"path" : "/cluster/acme/tos",
"text" : "tos"
},
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Retrieve ACME Directory Meta Information",
+ "method" : "GET",
+ "name" : "get_meta",
+ "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" : {
+ "check" : [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "additionalProperties" : 1,
+ "properties" : {
+ "caaIdentities" : {
+ "description" : "Hostnames referring to the ACME servers.",
+ "items" : {
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
+ "externalAccountRequired" : {
+ "description" : "EAB Required",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "termsOfService" : {
+ "description" : "ACME TermsOfService URL.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "website" : {
+ "description" : "URL to more information about the ACME server.",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/acme/meta",
+ "text" : "meta"
+ },
{
"info" : {
"GET" : {
"typetext" : "<string>"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"type" : "string"
},
"iommugroup" : {
- "description" : "The IOMMU group in which the device is to be expected in.Used for detecting hardware changes.",
+ "description" : "The IOMMU group in which the device is to be expected in. Used for detecting hardware changes.",
"optional" : 1,
"type" : "integer"
},
"typetext" : "<array>"
},
"mdev" : {
+ "default" : 0,
+ "description" : "Marks the device(s) as being capable of providing mediated devices.",
"optional" : 1,
"type" : "boolean",
"typetext" : "<boolean>"
"type" : "string"
},
"iommugroup" : {
- "description" : "The IOMMU group in which the device is to be expected in.Used for detecting hardware changes.",
+ "description" : "The IOMMU group in which the device is to be expected in. Used for detecting hardware changes.",
"optional" : 1,
"type" : "integer"
},
"typetext" : "<array>"
},
"mdev" : {
+ "default" : 0,
+ "description" : "Marks the device(s) as being capable of providing mediated devices.",
"optional" : 1,
"type" : "boolean",
"typetext" : "<boolean>"
"typetext" : "<string>"
},
"description" : {
- "description" : "Description of the logical PCI device.",
+ "description" : "Description of the logical USB device.",
"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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
"id" : {
- "description" : "The ID of the logical PCI mapping.",
+ "description" : "The ID of the logical USB mapping.",
"format" : "pve-configid",
"type" : "string",
"typetext" : "<string>"
"additionalProperties" : 0,
"properties" : {
"description" : {
- "description" : "Description of the logical PCI device.",
+ "description" : "Description of the logical USB device.",
"maxLength" : 4096,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
"id" : {
- "description" : "The ID of the logical PCI mapping.",
+ "description" : "The ID of the logical USB mapping.",
"format" : "pve-configid",
"type" : "string",
"typetext" : "<string>"
}
},
"permissions" : {
- "check" : [
- "perm",
- "/sdn/vnets/{vnet}/subnets",
- [
- "SDN.Allocate"
- ]
- ]
+ "description" : "Require 'SDN.Allocate' permission on '/sdn/zones/<zone>/<vnet>'",
+ "user" : "all"
},
"protected" : 1,
"returns" : {
}
},
"permissions" : {
- "check" : [
- "perm",
- "/sdn/vnets/{vnet}/subnets/{subnet}",
- [
- "SDN.Allocate"
- ]
- ]
+ "description" : "Require 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>/<vnet>'",
+ "user" : "all"
},
"returns" : {
"type" : "object"
"type" : "string",
"typetext" : "<string>"
},
+ "dhcp-dns-server" : {
+ "description" : "IP address for the DNS server",
+ "format" : "ip",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dhcp-range" : {
+ "description" : "A list of DHCP ranges for this subnet",
+ "items" : {
+ "format" : "pve-sdn-dhcp-range",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array",
+ "typetext" : "<array>"
+ },
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"type" : "object"
},
"permissions" : {
- "check" : [
- "perm",
- "/sdn/vnets/{vnet}/subnets",
- [
- "SDN.Allocate"
- ]
- ]
+ "description" : "Require 'SDN.Allocate' permission on '/sdn/zones/<zone>/<vnet>'",
+ "user" : "all"
},
"protected" : 1,
"returns" : {
}
},
"permissions" : {
- "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/subnets/<subnet>'",
+ "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>/<vnet>'",
"user" : "all"
},
"returns" : {
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "dhcp-dns-server" : {
+ "description" : "IP address for the DNS server",
+ "format" : "ip",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dhcp-range" : {
+ "description" : "A list of DHCP ranges for this subnet",
+ "items" : {
+ "format" : "pve-sdn-dhcp-range",
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array",
+ "typetext" : "<array>"
+ },
"dnszoneprefix" : {
"description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
"format" : "dns-name",
},
"type" : "object"
},
+ "permissions" : {
+ "description" : "Require 'SDN.Allocate' permission on '/sdn/zones/<zone>/<vnet>'",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/sdn/vnets/{vnet}/subnets",
+ "text" : "subnets"
+ },
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete IP Mappings in a VNet",
+ "method" : "DELETE",
+ "name" : "ipdelete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "ip" : {
+ "description" : "The IP address to delete",
+ "format" : "ip",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "mac" : {
+ "description" : "Unicast MAC address.",
+ "format" : "mac-addr",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<XX:XX:XX:XX:XX:XX>",
+ "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
+ },
+ "vnet" : {
+ "description" : "The SDN vnet object identifier.",
+ "format" : "pve-sdn-vnet-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "zone" : {
+ "description" : "The SDN zone object identifier.",
+ "format" : "pve-sdn-zone-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
"permissions" : {
"check" : [
"perm",
- "/sdn/vnets/{vnet}/subnets",
+ "/sdn/zones/{zone}/{vnet}",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create IP Mapping in a VNet",
+ "method" : "POST",
+ "name" : "ipcreate",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "ip" : {
+ "description" : "The IP address to associate with the given MAC address",
+ "format" : "ip",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "mac" : {
+ "description" : "Unicast MAC address.",
+ "format" : "mac-addr",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<XX:XX:XX:XX:XX:XX>",
+ "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
+ },
+ "vnet" : {
+ "description" : "The SDN vnet object identifier.",
+ "format" : "pve-sdn-vnet-id",
+ "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}/{vnet}",
+ [
+ "SDN.Allocate"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update IP Mapping in a VNet",
+ "method" : "PUT",
+ "name" : "ipupdate",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "ip" : {
+ "description" : "The IP address to associate with the given MAC address",
+ "format" : "ip",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "mac" : {
+ "description" : "Unicast MAC address.",
+ "format" : "mac-addr",
+ "format_description" : "XX:XX:XX:XX:XX:XX",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<XX:XX:XX:XX:XX:XX>",
+ "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
+ },
+ "vmid" : {
+ "description" : "The (unique) ID of the VM.",
+ "format" : "pve-vmid",
+ "maximum" : 999999999,
+ "minimum" : 100,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (100 - 999999999)"
+ },
+ "vnet" : {
+ "description" : "The SDN vnet object identifier.",
+ "format" : "pve-sdn-vnet-id",
+ "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}/{vnet}",
[
"SDN.Allocate"
]
}
}
},
- "leaf" : 0,
- "path" : "/cluster/sdn/vnets/{vnet}/subnets",
- "text" : "subnets"
+ "leaf" : 1,
+ "path" : "/cluster/sdn/vnets/{vnet}/ips",
+ "text" : "ips"
}
],
"info" : {
}
},
"permissions" : {
- "check" : [
- "perm",
- "/sdn/vnets",
- [
- "SDN.Allocate"
- ]
- ]
+ "description" : "Require 'SDN.Allocate' permission on '/sdn/zones/<zone>/<vnet>'",
+ "user" : "all"
},
"protected" : 1,
"returns" : {
}
},
"permissions" : {
- "check" : [
- "perm",
- "/sdn/vnets/{vnet}",
- [
- "SDN.Allocate"
- ]
- ]
+ "description" : "Require 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>/<vnet>'",
+ "user" : "all"
},
"returns" : {
"type" : "object"
"typetext" : "<string>"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"type" : "object"
},
"permissions" : {
- "check" : [
- "perm",
- "/sdn/vnets",
- [
- "SDN.Allocate"
- ]
- ]
+ "description" : "Require 'SDN.Allocate' permission on '/sdn/zones/<zone>/<vnet>'",
+ "user" : "all"
},
"protected" : 1,
"returns" : {
}
},
"permissions" : {
- "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/vnets/<vnet>'",
+ "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>/<vnet>'",
"user" : "all"
},
"returns" : {
"permissions" : {
"check" : [
"perm",
- "/sdn/vnets",
+ "/sdn/zones/{zone}",
[
"SDN.Allocate"
]
"permissions" : {
"check" : [
"perm",
- "/sdn/zones",
+ "/sdn/zones/{zone}",
[
"SDN.Allocate"
]
"type" : "string",
"typetext" : "<string>"
},
+ "dhcp" : {
+ "description" : "Type of the DHCP backend for this zone",
+ "enum" : [
+ "dnsmasq"
+ ],
+ "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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"permissions" : {
"check" : [
"perm",
- "/sdn/zones",
+ "/sdn/zones/{zone}",
[
"SDN.Allocate"
]
"returns" : {
"items" : {
"properties" : {
+ "dhcp" : {
+ "optional" : 1,
+ "type" : "string"
+ },
"dns" : {
"optional" : 1,
"type" : "string"
"type" : "string"
},
"pending" : {
- "optional" : 1
+ "optional" : 1,
+ "type" : "boolean"
},
"reversedns" : {
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
+ "dhcp" : {
+ "description" : "Type of the DHCP backend for this zone",
+ "enum" : [
+ "dnsmasq"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
"disable-arp-nd-suppression" : {
"description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
"optional" : 1,
"typetext" : "<string>"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"type" : "integer",
"typetext" : "<integer>"
},
+ "isis-domain" : {
+ "description" : "ISIS domain.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "isis-ifaces" : {
+ "description" : "ISIS interface.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "isis-net" : {
+ "description" : "ISIS network entity title.",
+ "format" : "pve-sdn-isis-net",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"loopback" : {
"description" : "source loopback interface.",
"optional" : 1,
"enum" : [
"bgp",
"evpn",
- "faucet"
+ "faucet",
+ "isis"
],
"optional" : 1,
"type" : "string"
"type" : "string"
},
"pending" : {
- "optional" : 1
+ "optional" : 1,
+ "type" : "boolean"
},
"state" : {
"optional" : 1,
"type" : "integer",
"typetext" : "<integer>"
},
+ "isis-domain" : {
+ "description" : "ISIS domain.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "isis-ifaces" : {
+ "description" : "ISIS interface.",
+ "format" : "pve-iface-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "isis-net" : {
+ "description" : "ISIS network entity title.",
+ "format" : "pve-sdn-isis-net",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"loopback" : {
"description" : "source loopback interface.",
"optional" : 1,
"enum" : [
"bgp",
"evpn",
- "faucet"
+ "faucet",
+ "isis"
],
"format" : "pve-configid",
"type" : "string"
{
"children" : [
{
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List PVE IPAM Entries",
+ "method" : "GET",
+ "name" : "ipamindex",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "ipam" : {
+ "description" : "The SDN ipam object identifier.",
+ "format" : "pve-sdn-ipam-id",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>/<vnet>'",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/sdn/ipams/{ipam}/status",
+ "text" : "status"
+ }
+ ],
"info" : {
"DELETE" : {
"allowtoken" : 1,
"typetext" : "<string>"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
}
}
},
- "leaf" : 1,
+ "leaf" : 0,
"path" : "/cluster/sdn/ipams/{ipam}",
"text" : "{ipam}"
}
"typetext" : "<string>"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"permissions" : {
"check" : [
"perm",
- "/",
+ "/sdn",
[
"SDN.Audit"
]
"storage" : {
"description" : "The storage identifier (when type == storage).",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"type" : "string"
},
},
"vmid" : {
"description" : "The numerical vmid (when type in qemu,lxc).",
- "minimum" : 1,
+ "format" : "pve-vmid",
+ "maximum" : 999999999,
+ "minimum" : 100,
"optional" : 1,
"type" : "integer"
}
"language" : {
"description" : "Default GUI language.",
"enum" : [
+ "ar",
"ca",
"da",
"de",
"eu",
"fa",
"fr",
+ "hr",
"he",
"it",
"ja",
+ "ka",
+ "kr",
"nb",
+ "nl",
"nn",
"pl",
"pt_BR",
"sl",
"sv",
"tr",
+ "ukr",
"zh_CN",
"zh_TW"
],
"type" : "string"
},
"mac_prefix" : {
- "description" : "Prefix for autogenerated MAC addresses.",
+ "default" : "BC:24:11",
+ "description" : "Prefix for the auto-generated MAC addresses of virtual guests. The default 'BC:24:11' is the OUI assigned by the IEEE to Proxmox Server Solutions GmbH for a 24-bit large MAC block. You're allowed to use this in local networks, i.e., those not directly reachable by the public (e.g., in a LAN or behind NAT).",
"format" : "mac-prefix",
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<string>",
+ "verbose_description" : "Prefix for the auto-generated MAC addresses of virtual guests. The default `BC:24:11` is the Organizationally Unique Identifier (OUI) assigned by the IEEE to Proxmox Server Solutions GmbH for a MAC Address Block Large (MA-L). You're allowed to use this in local networks, i.e., those not directly reachable by the public (e.g., in a LAN or NAT/Masquerading).\n \nNote that when you run multiple cluster that (partially) share the networks of their virtual guests, it's highly recommended that you extend the default MAC prefix, or generate a custom (valid) one, to reduce the chance of MAC collisions. For example, add a separate extra hexadecimal to the Proxmox OUI for each cluster, like `BC:24:11:0` for the first, `BC:24:11:1` for the second, and so on.\n Alternatively, you can also separate the networks of the guests logically, e.g., by using VLANs.\n\nFor publicly accessible guests it's recommended that you get your own https://standards.ieee.org/products-programs/regauth/[OUI from the IEEE] registered or coordinate with your, or your hosting providers, network admins."
},
"max_workers" : {
"description" : "Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager.",
"notify" : {
"description" : "Cluster-wide notification settings.",
"format" : {
+ "fencing" : {
+ "description" : "UNUSED - Use datacenter notification settings instead.",
+ "enum" : [
+ "always",
+ "never"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
"package-updates" : {
"default" : "auto",
- "description" : "Control when the daily update job should send out notification mails.",
+ "description" : "DEPRECATED: Use datacenter notification settings instead. Control when the daily update job should send out notifications.",
"enum" : [
"auto",
"always",
"never"
],
+ "optional" : 1,
"type" : "string",
- "verbose_description" : "Control how often the daily update job should send out notification mails:\n* 'auto' daily for systems with a valid subscription, as those are assumed to be production-ready and thus should know about pending updates.\n* 'always' every update, if there are new pending updates.\n* 'never' never send a notification for new pending updates.\n"
+ "verbose_description" : "DEPRECATED: Use datacenter notification settings instead.\nControl how often the daily update job should send out notifications:\n* 'auto' daily for systems with a valid subscription, as those are assumed to be production-ready and thus should know about pending updates.\n* 'always' every update, if there are new pending updates.\n* 'never' never send a notification for new pending updates.\n"
+ },
+ "replication" : {
+ "description" : "UNUSED - Use datacenter notification settings instead.",
+ "enum" : [
+ "always",
+ "never"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "target-fencing" : {
+ "description" : "UNUSED - Use datacenter notification settings instead.",
+ "format_description" : "TARGET",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "target-package-updates" : {
+ "description" : "UNUSED - Use datacenter notification settings instead.",
+ "format_description" : "TARGET",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "target-replication" : {
+ "description" : "UNUSED - Use datacenter notification settings instead.",
+ "format_description" : "TARGET",
+ "optional" : 1,
+ "type" : "string"
}
},
"optional" : 1,
"type" : "string",
- "typetext" : "package-updates=<auto|always|never>"
+ "typetext" : "[fencing=<always|never>] [,package-updates=<auto|always|never>] [,replication=<always|never>] [,target-fencing=<TARGET>] [,target-package-updates=<TARGET>] [,target-replication=<TARGET>]"
},
"registered-tags" : {
"description" : "A list of tags that require a `Sys.Modify` on '/' to set and delete. Tags set here that are also in 'user-tag-access' also require `Sys.Modify`.",
],
"optional" : 1,
"type" : "string",
- "verbose_description" : "Controls which tags can be set or deleted on resources a user controls (such as guests). Users with the `Sys.Modify` privilege on `/` are always unrestricted. * 'none' no tags are usable. * 'list' tags from 'user-allow-list' are usable. * 'existing' like list, but already existing tags of resources are also usable.* 'free' no tag restrictions."
+ "verbose_description" : "Controls which tags can be set or deleted on resources a user controls (such as guests). Users with the `Sys.Modify` privilege on `/` are alwaysunrestricted.\n* 'none' no tags are usable.\n* 'list' tags from 'user-allow-list' are usable.\n* 'existing' like list, but already existing tags of resources are also usable.\n* 'free' no tag restrictions.\n"
},
"user-allow-list" : {
"description" : "List of tags users are allowed to set and delete (semicolon separated) for 'user-allow' values 'list' and 'existing'.",
"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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"type" : "string"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 0,
"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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"type" : "string"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 0,
"type" : "string"
},
"type" : "string"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 0,
"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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"typetext" : "<boolean>"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"name" : {
"type" : "string"
},
+ "ref" : {
+ "type" : "string"
+ },
+ "scope" : {
+ "type" : "string"
+ },
"type" : {
"enum" : [
"alias",
"type" : "string"
},
"ciupgrade" : {
+ "default" : 1,
"description" : "cloud-init: do an automatic package upgrade after the first boot.",
"optional" : 1,
"type" : "boolean"
"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. Ignored for VMs with arch=aarc64 (ARM).",
+ "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. Ignored for VMs with arch=aarch64 (ARM).",
"enum" : [
"2m",
"4m"
"type" : "string"
},
"machine" : {
- "description" : "Specifies the QEMU machine type.",
- "maxLength" : 40,
+ "description" : "Specify the QEMU machine.",
+ "format" : {
+ "type" : {
+ "default_key" : 1,
+ "description" : "Specifies the QEMU machine type.",
+ "format_description" : "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"
+ },
+ "viommu" : {
+ "description" : "Enable and set guest vIOMMU variant (Intel vIOMMU needs q35 to be set as machine type).",
+ "enum" : [
+ "intel",
+ "virtio"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
"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 MiB. This is the maximum available memory when you use the balloon device.",
- "minimum" : 16,
+ "description" : "Memory properties.",
+ "format" : {
+ "current" : {
+ "default" : 512,
+ "default_key" : 1,
+ "description" : "Current amount of online RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
+ "minimum" : 16,
+ "type" : "integer"
+ }
+ },
"optional" : 1,
- "type" : "integer"
+ "type" : "string"
},
"migrate_downtime" : {
"default" : 0.1,
],
"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 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
+ "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022/2025\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
},
"parallel[n]" : {
"description" : "Map host parallel devices (n is 0 to 2).",
"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"
- ],
+ "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"
+ },
+ "product" : {
+ "description" : "The drive's product name, up to 16 bytes long.",
+ "format_description" : "product",
"optional" : 1,
+ "pattern" : "[A-Za-z0-9\\-_\\s]{,16}",
"type" : "string"
},
"queues" : {
"optional" : 1,
"type" : "string"
},
+ "vendor" : {
+ "description" : "The drive's vendor name, up to 8 bytes long.",
+ "format_description" : "vendor",
+ "optional" : 1,
+ "pattern" : "[A-Za-z0-9\\-_\\s]{,8}",
+ "type" : "string"
+ },
"volume" : {
"alias" : "file"
},
"vga" : {
"description" : "Configure the VGA hardware.",
"format" : {
+ "clipboard" : {
+ "description" : "Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added. Migration with VNC clipboard is not yet supported!",
+ "enum" : [
+ "vnc"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
"memory" : {
"description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
"maximum" : 512,
"vmstatestorage" : {
"description" : "Default storage for VM state volumes/files.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"type" : "string"
},
"type" : "string"
},
"ciupgrade" : {
+ "default" : 1,
"description" : "cloud-init: do an automatic package upgrade after the first boot.",
"optional" : 1,
"type" : "boolean",
"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. Ignored for VMs with arch=aarc64 (ARM).",
+ "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. Ignored for VMs with arch=aarch64 (ARM).",
"enum" : [
"2m",
"4m"
"type" : "string"
},
"machine" : {
- "description" : "Specifies the QEMU machine type.",
- "maxLength" : 40,
+ "description" : "Specify the QEMU machine.",
+ "format" : {
+ "type" : {
+ "default_key" : 1,
+ "description" : "Specifies the QEMU machine type.",
+ "format_description" : "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"
+ },
+ "viommu" : {
+ "description" : "Enable and set guest vIOMMU variant (Intel vIOMMU needs q35 to be set as machine type).",
+ "enum" : [
+ "intel",
+ "virtio"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
"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"
+ "type" : "string",
+ "typetext" : "[[type=]<machine type>] [,viommu=<intel|virtio>]"
},
"memory" : {
- "default" : 512,
- "description" : "Amount of RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
- "minimum" : 16,
+ "description" : "Memory properties.",
+ "format" : {
+ "current" : {
+ "default" : 512,
+ "default_key" : 1,
+ "description" : "Current amount of online RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
+ "minimum" : 16,
+ "type" : "integer"
+ }
+ },
"optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (16 - N)"
+ "type" : "string",
+ "typetext" : "[current=]<integer>"
},
"migrate_downtime" : {
"default" : 0.1,
],
"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 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
+ "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022/2025\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
},
"parallel[n]" : {
"description" : "Map host parallel devices (n is 0 to 2).",
"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"
- ],
+ "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"
+ },
+ "product" : {
+ "description" : "The drive's product name, up to 16 bytes long.",
+ "format_description" : "product",
"optional" : 1,
+ "pattern" : "[A-Za-z0-9\\-_\\s]{,16}",
"type" : "string"
},
"queues" : {
"optional" : 1,
"type" : "string"
},
+ "vendor" : {
+ "description" : "The drive's vendor name, up to 8 bytes long.",
+ "format_description" : "vendor",
+ "optional" : 1,
+ "pattern" : "[A-Za-z0-9\\-_\\s]{,8}",
+ "type" : "string"
+ },
"volume" : {
"alias" : "file"
},
},
"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>]"
+ "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>] [,product=<product>] [,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>] [,vendor=<vendor>] [,werror=<enum>] [,wwn=<wwn>]"
},
"scsihw" : {
"default" : "lsi",
"vga" : {
"description" : "Configure the VGA hardware.",
"format" : {
+ "clipboard" : {
+ "description" : "Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added. Migration with VNC clipboard is not yet supported!",
+ "enum" : [
+ "vnc"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
"memory" : {
"description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
"maximum" : 512,
},
"optional" : 1,
"type" : "string",
- "typetext" : "[[type=]<enum>] [,memory=<integer>]",
+ "typetext" : "[[type=]<enum>] [,clipboard=<vnc>] [,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]" : {
"vmstatestorage" : {
"description" : "Default storage for VM state volumes/files.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"watchdog" : {
"description" : "Create a virtual hardware watchdog device.",
"type" : "string"
},
"ciupgrade" : {
+ "default" : 1,
"description" : "cloud-init: do an automatic package upgrade after the first boot.",
"optional" : 1,
"type" : "boolean",
"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. Ignored for VMs with arch=aarc64 (ARM).",
+ "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. Ignored for VMs with arch=aarch64 (ARM).",
"enum" : [
"2m",
"4m"
"type" : "string"
},
"machine" : {
- "description" : "Specifies the QEMU machine type.",
- "maxLength" : 40,
+ "description" : "Specify the QEMU machine.",
+ "format" : {
+ "type" : {
+ "default_key" : 1,
+ "description" : "Specifies the QEMU machine type.",
+ "format_description" : "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"
+ },
+ "viommu" : {
+ "description" : "Enable and set guest vIOMMU variant (Intel vIOMMU needs q35 to be set as machine type).",
+ "enum" : [
+ "intel",
+ "virtio"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
"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"
+ "type" : "string",
+ "typetext" : "[[type=]<machine type>] [,viommu=<intel|virtio>]"
},
"memory" : {
- "default" : 512,
- "description" : "Amount of RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
- "minimum" : 16,
+ "description" : "Memory properties.",
+ "format" : {
+ "current" : {
+ "default" : 512,
+ "default_key" : 1,
+ "description" : "Current amount of online RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
+ "minimum" : 16,
+ "type" : "integer"
+ }
+ },
"optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (16 - N)"
+ "type" : "string",
+ "typetext" : "[current=]<integer>"
},
"migrate_downtime" : {
"default" : 0.1,
],
"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 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
+ "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022/2025\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
},
"parallel[n]" : {
"description" : "Map host parallel devices (n is 0 to 2).",
"optional" : 1,
"type" : "string"
},
+ "product" : {
+ "description" : "The drive's product name, up to 16 bytes long.",
+ "format_description" : "product",
+ "optional" : 1,
+ "pattern" : "[A-Za-z0-9\\-_\\s]{,16}",
+ "type" : "string"
+ },
"queues" : {
"description" : "Number of queues.",
"minimum" : 2,
"optional" : 1,
"type" : "string"
},
+ "vendor" : {
+ "description" : "The drive's vendor name, up to 8 bytes long.",
+ "format_description" : "vendor",
+ "optional" : 1,
+ "pattern" : "[A-Za-z0-9\\-_\\s]{,8}",
+ "type" : "string"
+ },
"volume" : {
"alias" : "file"
},
},
"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>]"
+ "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>] [,product=<product>] [,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>] [,vendor=<vendor>] [,werror=<enum>] [,wwn=<wwn>]"
},
"scsihw" : {
"default" : "lsi",
"vga" : {
"description" : "Configure the VGA hardware.",
"format" : {
+ "clipboard" : {
+ "description" : "Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added. Migration with VNC clipboard is not yet supported!",
+ "enum" : [
+ "vnc"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
"memory" : {
"description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
"maximum" : 512,
},
"optional" : 1,
"type" : "string",
- "typetext" : "[[type=]<enum>] [,memory=<integer>]",
+ "typetext" : "[[type=]<enum>] [,clipboard=<vnc>] [,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]" : {
"vmstatestorage" : {
"description" : "Default storage for VM state volumes/files.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"watchdog" : {
"description" : "Create a virtual hardware watchdog device.",
"check" : [
"perm",
"/vms/{vmid}",
- "VM.Config.Cloudinit"
+ [
+ "VM.Config.Cloudinit"
+ ]
]
},
"protected" : 1,
"typetext" : "<integer> (100 - 999999999)"
},
"websocket" : {
- "description" : "starts websockify instead of vncproxy",
+ "description" : "Prepare for websocket upgrade (only required when using serial terminal, otherwise upgrade is always possible).",
"optional" : 1,
"type" : "boolean",
"typetext" : "<boolean>"
"optional" : 1,
"type" : "boolean"
},
+ "clipboard" : {
+ "description" : "Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added.",
+ "enum" : [
+ "vnc"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
"cpus" : {
"description" : "Maximum usable CPUs.",
"optional" : 1,
"typetext" : "<string>"
},
"machine" : {
- "description" : "Specifies the QEMU machine type.",
- "maxLength" : 40,
+ "description" : "Specify the QEMU machine.",
+ "format" : {
+ "type" : {
+ "default_key" : 1,
+ "description" : "Specifies the QEMU machine type.",
+ "format_description" : "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"
+ },
+ "viommu" : {
+ "description" : "Enable and set guest vIOMMU variant (Intel vIOMMU needs q35 to be set as machine type).",
+ "enum" : [
+ "intel",
+ "virtio"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
"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"
+ "type" : "string",
+ "typetext" : "[[type=]<machine type>] [,viommu=<intel|virtio>]"
},
"migratedfrom" : {
"description" : "The cluster node name.",
"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",
+ "description" : "Stop virtual machine. The qemu process will exit immediately. This is akin to pulling the power plug of a running computer and may damage the VM data.",
"method" : "POST",
"name" : "vm_stop",
"parameters" : {
"type" : "string",
"typetext" : "<string>"
},
+ "overrule-shutdown" : {
+ "default" : 0,
+ "description" : "Try to abort active 'qmshutdown' tasks before stopping.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"skiplock" : {
"description" : "Ignore locks - only root is allowed to use this option.",
"optional" : 1,
"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.",
+ "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" : {
"statestorage" : {
"description" : "The storage for the VM state",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"requires" : "todisk",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"todisk" : {
"default" : 0,
"storage" : {
"description" : "Target storage for full clone.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"target" : {
"description" : "Target node. Only allowed if the original VM is on shared storage.",
"storage" : {
"description" : "Target storage.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"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.",
"description" : "Remote target endpoint",
"format" : "proxmox-remote",
"type" : "string",
- "typetext" : "apitoken=<A full Proxmox API token including the secret value.> ,host=<Remote Proxmox hostname or IP> [,fingerprint=<Remote host's certificate fingerprint, if not trusted by system store.>] [,port=<integer>]"
+ "typetext" : "apitoken=<PVEAPIToken=user@realm!token=SECRET> ,host=<ADDRESS> [,fingerprint=<FINGERPRINT>] [,port=<PORT>]"
},
"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.",
"type" : "string"
},
"ciupgrade" : {
+ "default" : 1,
"description" : "cloud-init: do an automatic package upgrade after the first boot.",
"optional" : 1,
"type" : "boolean",
"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. Ignored for VMs with arch=aarc64 (ARM).",
+ "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. Ignored for VMs with arch=aarch64 (ARM).",
"enum" : [
"2m",
"4m"
"typetext" : "<boolean>"
},
"live-restore" : {
- "description" : "Start the VM immediately from the backup and restore in background. PBS only.",
+ "description" : "Start the VM immediately while importing or restoring in the background.",
"optional" : 1,
- "requires" : "archive",
"type" : "boolean",
"typetext" : "<boolean>"
},
"type" : "string"
},
"machine" : {
- "description" : "Specifies the QEMU machine type.",
- "maxLength" : 40,
+ "description" : "Specify the QEMU machine.",
+ "format" : {
+ "type" : {
+ "default_key" : 1,
+ "description" : "Specifies the QEMU machine type.",
+ "format_description" : "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"
+ },
+ "viommu" : {
+ "description" : "Enable and set guest vIOMMU variant (Intel vIOMMU needs q35 to be set as machine type).",
+ "enum" : [
+ "intel",
+ "virtio"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
"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"
+ "type" : "string",
+ "typetext" : "[[type=]<machine type>] [,viommu=<intel|virtio>]"
},
"memory" : {
- "default" : 512,
- "description" : "Amount of RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
- "minimum" : 16,
+ "description" : "Memory properties.",
+ "format" : {
+ "current" : {
+ "default" : 512,
+ "default_key" : 1,
+ "description" : "Current amount of online RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
+ "minimum" : 16,
+ "type" : "integer"
+ }
+ },
"optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (16 - N)"
+ "type" : "string",
+ "typetext" : "[current=]<integer>"
},
"migrate_downtime" : {
"default" : 0.1,
],
"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 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
+ "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022/2025\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
},
"parallel[n]" : {
"description" : "Map host parallel devices (n is 0 to 2).",
"optional" : 1,
"type" : "string"
},
+ "product" : {
+ "description" : "The drive's product name, up to 16 bytes long.",
+ "format_description" : "product",
+ "optional" : 1,
+ "pattern" : "[A-Za-z0-9\\-_\\s]{,16}",
+ "type" : "string"
+ },
"queues" : {
"description" : "Number of queues.",
"minimum" : 2,
"optional" : 1,
"type" : "string"
},
+ "vendor" : {
+ "description" : "The drive's vendor name, up to 8 bytes long.",
+ "format_description" : "vendor",
+ "optional" : 1,
+ "pattern" : "[A-Za-z0-9\\-_\\s]{,8}",
+ "type" : "string"
+ },
"volume" : {
"alias" : "file"
},
},
"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>]"
+ "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>] [,product=<product>] [,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>] [,vendor=<vendor>] [,werror=<enum>] [,wwn=<wwn>]"
},
"scsihw" : {
"default" : "lsi",
"storage" : {
"description" : "Default storage.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"tablet" : {
"default" : 1,
"vga" : {
"description" : "Configure the VGA hardware.",
"format" : {
+ "clipboard" : {
+ "description" : "Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added. Migration with VNC clipboard is not yet supported!",
+ "enum" : [
+ "vnc"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
"memory" : {
"description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
"maximum" : 512,
},
"optional" : 1,
"type" : "string",
- "typetext" : "[[type=]<enum>] [,memory=<integer>]",
+ "typetext" : "[[type=]<enum>] [,clipboard=<vnc>] [,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]" : {
"vmstatestorage" : {
"description" : "Default storage for VM state volumes/files.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"watchdog" : {
"description" : "Create a virtual hardware watchdog device.",
"optional" : 1,
"type" : "string"
},
+ "dev[n]" : {
+ "description" : "Device to pass through to the container",
+ "format" : {
+ "gid" : {
+ "description" : "Group ID to be assigned to the device node",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "mode" : {
+ "description" : "Access mode to be set on the device node",
+ "format_description" : "Octal access mode",
+ "optional" : 1,
+ "pattern" : "0[0-7]{3}",
+ "type" : "string"
+ },
+ "path" : {
+ "default_key" : 1,
+ "description" : "Device to pass through to the container",
+ "format" : "pve-lxc-dev-string",
+ "format_description" : "Path",
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "Path to the device to pass through to the container"
+ },
+ "uid" : {
+ "description" : "User ID to be assigned to the device node",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
"digest" : {
"description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
"type" : "string"
"type" : "string",
"typetext" : "<string>"
},
+ "dev[n]" : {
+ "description" : "Device to pass through to the container",
+ "format" : {
+ "gid" : {
+ "description" : "Group ID to be assigned to the device node",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "mode" : {
+ "description" : "Access mode to be set on the device node",
+ "format_description" : "Octal access mode",
+ "optional" : 1,
+ "pattern" : "0[0-7]{3}",
+ "type" : "string"
+ },
+ "path" : {
+ "default_key" : 1,
+ "description" : "Device to pass through to the container",
+ "format" : "pve-lxc-dev-string",
+ "format_description" : "Path",
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "Path to the device to pass through to the container"
+ },
+ "uid" : {
+ "description" : "User ID to be assigned to the device node",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[path=]<Path>] [,gid=<integer>] [,mode=<Octal access mode>] [,uid=<integer>]"
+ },
"digest" : {
"description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
"maxLength" : 40,
"type" : "string",
"typetext" : "<string>"
},
+ "overrule-shutdown" : {
+ "default" : 0,
+ "description" : "Try to abort active 'vzshutdown' tasks before stopping.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"skiplock" : {
"description" : "Ignore locks - only root is allowed to use this option.",
"optional" : 1,
"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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"type" : "string"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 0,
"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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"type" : "string"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 0,
"type" : "string"
},
"type" : "string"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 0,
"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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"typetext" : "<boolean>"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"name" : {
"type" : "string"
},
+ "ref" : {
+ "type" : "string"
+ },
+ "scope" : {
+ "type" : "string"
+ },
"type" : {
"enum" : [
"alias",
"description" : "Remote target endpoint",
"format" : "proxmox-remote",
"type" : "string",
- "typetext" : "apitoken=<A full Proxmox API token including the secret value.> ,host=<Remote Proxmox hostname or IP> [,fingerprint=<Remote host's certificate fingerprint, if not trusted by system store.>] [,port=<integer>]"
+ "typetext" : "apitoken=<PVEAPIToken=user@realm!token=SECRET> ,host=<ADDRESS> [,fingerprint=<FINGERPRINT>] [,port=<PORT>]"
},
"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.",
"storage" : {
"description" : "Target storage for full clone.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"target" : {
"description" : "Target node. Only allowed if the original VM is on shared storage.",
"storage" : {
"description" : "Target Storage.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"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.",
"path" : "/nodes/{node}/lxc/{vmid}/pending",
"text" : "pending"
},
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get IP addresses of the specified container interface.",
+ "method" : "GET",
+ "name" : "ip",
+ "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",
+ "maximum" : 999999999,
+ "minimum" : 100,
+ "type" : "integer",
+ "typetext" : "<integer> (100 - 999999999)"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/vms/{vmid}",
+ [
+ "VM.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "hwaddr" : {
+ "description" : "The MAC address of the interface",
+ "optional" : 0,
+ "type" : "string"
+ },
+ "inet" : {
+ "description" : "The IPv4 address of the interface",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "inet6" : {
+ "description" : "The IPv6 address of the interface",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "The name of the interface",
+ "optional" : 0,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/lxc/{vmid}/interfaces",
+ "text" : "interfaces"
+ },
{
"info" : {
"POST" : {
"type" : "string",
"typetext" : "<string>"
},
+ "dev[n]" : {
+ "description" : "Device to pass through to the container",
+ "format" : {
+ "gid" : {
+ "description" : "Group ID to be assigned to the device node",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "mode" : {
+ "description" : "Access mode to be set on the device node",
+ "format_description" : "Octal access mode",
+ "optional" : 1,
+ "pattern" : "0[0-7]{3}",
+ "type" : "string"
+ },
+ "path" : {
+ "default_key" : 1,
+ "description" : "Device to pass through to the container",
+ "format" : "pve-lxc-dev-string",
+ "format_description" : "Path",
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "Path to the device to pass through to the container"
+ },
+ "uid" : {
+ "description" : "User ID to be assigned to the device node",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[path=]<Path>] [,gid=<integer>] [,mode=<Octal access mode>] [,uid=<integer>]"
+ },
"features" : {
"description" : "Allow containers access to advanced features.",
"format" : {
"default" : "local",
"description" : "Default Storage.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"swap" : {
"default" : 512,
"leaf" : 1,
"path" : "/nodes/{node}/ceph/cfg/db",
"text" : "db"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get configured values from either the config file or config DB.",
+ "method" : "GET",
+ "name" : "value",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "config-keys" : {
+ "description" : "List of <section>:<config key> items.",
+ "pattern" : "(?^:^(:?(?^i:[0-9a-z\\-_\\.]+:[0-9a-zA-Z\\-_]+))(:?[;, ](?^i:[0-9a-z\\-_\\.]+:[0-9a-zA-Z\\-_]+))*$)",
+ "type" : "string",
+ "typetext" : "<section>:<config key>[;<section>:<config key>]"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "description" : "Contains {section}->{key} children with the values",
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/cfg/value",
+ "text" : "value"
}
],
"info" : {
"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."
+ "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."
},
"dev" : {
"description" : "Block device name.",
"type" : "string",
"typetext" : "<string>"
},
+ "osds-per-device" : {
+ "description" : "OSD services per physical device. Only useful for fast NVMe devices\"\n\t\t .\" to utilize their performance better.",
+ "minimum" : "1",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
"wal_dev" : {
"description" : "Block device name for block.wal.",
"optional" : 1,
"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."
+ "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."
}
}
},
"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>"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "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>"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "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",
- "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"
- }
- },
- "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>"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "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>"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "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"
- }
- },
- "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.",
+ "description" : "Destroy Ceph Metadata Server",
"method" : "DELETE",
- "name" : "destroymon",
+ "name" : "destroymds",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "monid" : {
- "description" : "Monitor ID",
+ "name" : {
+ "description" : "The name (ID) of the mds",
"pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
"type" : "string"
},
},
"POST" : {
"allowtoken" : 1,
- "description" : "Create Ceph Monitor and Manager",
+ "description" : "Create Ceph Metadata Server (MDS)",
"method" : "POST",
- "name" : "createmon",
+ "name" : "createmds",
"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",
+ "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" : "string",
- "typetext" : "<string>"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "monid" : {
- "description" : "The ID for the monitor, when omitted the same as the nodename",
+ "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])?",
}
},
"leaf" : 1,
- "path" : "/nodes/{node}/ceph/mon/{monid}",
- "text" : "{monid}"
+ "path" : "/nodes/{node}/ceph/mds/{name}",
+ "text" : "{name}"
}
],
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "Get Ceph monitor list.",
+ "description" : "MDS directory index.",
"method" : "GET",
- "name" : "listmon",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"optional" : 1,
"type" : "string"
},
- "ceph_version" : {
- "optional" : 1,
- "type" : "string"
- },
- "ceph_version_short" : {
- "optional" : 1,
- "type" : "string"
- },
- "direxists" : {
- "optional" : 1,
- "type" : "string"
- },
"host" : {
"optional" : 1,
- "type" : "boolean"
- },
- "name" : {
"type" : "string"
},
- "quorum" : {
- "optional" : 1,
- "type" : "boolean"
+ "name" : {
+ "description" : "The name (ID) for the MDS"
},
"rank" : {
"optional" : 1,
"type" : "integer"
},
- "service" : {
+ "standby_replay" : {
+ "description" : "If true, the standby MDS is polling the active MDS for faster recovery (hot standby).",
"optional" : 1,
- "type" : "integer"
+ "type" : "boolean"
},
"state" : {
- "optional" : 1,
+ "description" : "State of the MDS",
"type" : "string"
}
},
}
},
"leaf" : 0,
- "path" : "/nodes/{node}/ceph/mon",
- "text" : "mon"
+ "path" : "/nodes/{node}/ceph/mds",
+ "text" : "mds"
},
{
"children" : [
{
"info" : {
- "POST" : {
+ "DELETE" : {
"allowtoken" : 1,
- "description" : "Create a Ceph filesystem",
- "method" : "POST",
- "name" : "createfs",
+ "description" : "Destroy Ceph Manager.",
+ "method" : "DELETE",
+ "name" : "destroymgr",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "add-storage" : {
- "default" : 0,
- "description" : "Configure the created CephFS as storage for this cluster.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "id" : {
+ "description" : "The ID of the manager",
+ "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
+ "type" : "string"
},
- "name" : {
- "default" : "cephfs",
- "description" : "The ceph filesystem name.",
- "optional" : 1,
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
"type" : "string",
"typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ },
+ "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>"
- },
- "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)"
}
}
},
}
},
"leaf" : 1,
- "path" : "/nodes/{node}/ceph/fs/{name}",
- "text" : "{name}"
+ "path" : "/nodes/{node}/ceph/mgr/{id}",
+ "text" : "{id}"
}
],
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "Directory index.",
+ "description" : "MGR directory index.",
"method" : "GET",
"name" : "index",
"parameters" : {
"returns" : {
"items" : {
"properties" : {
- "data_pool" : {
- "description" : "The name of the data pool.",
+ "addr" : {
+ "optional" : 1,
"type" : "string"
},
- "metadata_pool" : {
- "description" : "The name of the metadata pool.",
+ "host" : {
+ "optional" : 1,
"type" : "string"
},
"name" : {
- "description" : "The ceph filesystem name.",
+ "description" : "The name (ID) for the MGR"
+ },
+ "state" : {
+ "description" : "State of the MGR",
"type" : "string"
}
},
}
},
"leaf" : 0,
- "path" : "/nodes/{node}/ceph/fs",
- "text" : "fs"
+ "path" : "/nodes/{node}/ceph/mgr",
+ "text" : "mgr"
},
{
"children" : [
{
- "children" : [
- {
- "info" : {
- "GET" : {
- "allowtoken" : 1,
- "description" : "Show the current pool status.",
- "method" : "GET",
- "name" : "getpool",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "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>"
- },
- "verbose" : {
- "default" : 0,
- "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"
- },
- "application_list" : {
- "optional" : 1,
- "title" : "Application",
- "type" : "array"
- },
- "autoscale_status" : {
- "optional" : 1,
- "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"
- },
- "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"
- },
- "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" : [
- "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"
- },
- "pg_num_min" : {
- "description" : "Minimal number of placement groups.",
- "maximum" : 32768,
- "optional" : 1,
- "title" : "min. PG Num",
- "type" : "integer"
- },
- "pgp_num" : {
- "title" : "PGP num",
- "type" : "integer"
- },
- "size" : {
- "default" : 3,
- "description" : "Number of replicas per object",
- "maximum" : 7,
- "minimum" : 1,
- "optional" : 1,
- "title" : "Size",
- "type" : "integer"
- },
- "statistics" : {
- "optional" : 1,
- "title" : "Statistics",
- "type" : "object"
- },
- "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"
- },
- "use_gmt_hitset" : {
- "title" : "use_gmt_hitset",
- "type" : "boolean"
- },
- "write_fadvise_dontneed" : {
- "title" : "write_fadvise_dontneed",
- "type" : "boolean"
- }
- },
- "type" : "object"
- }
- }
- },
- "leaf" : 1,
- "path" : "/nodes/{node}/ceph/pool/{name}/status",
- "text" : "status"
- }
- ],
"info" : {
"DELETE" : {
"allowtoken" : 1,
- "description" : "Destroy pool",
+ "description" : "Destroy Ceph Monitor and Manager.",
"method" : "DELETE",
- "name" : "destroypool",
+ "name" : "destroymon",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "force" : {
- "default" : 0,
- "description" : "If true, destroys pool even if in use",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "name" : {
- "description" : "The name of the pool. It must be unique.",
- "type" : "string",
- "typetext" : "<string>"
+ "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>"
- },
- "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,
- "type" : "boolean",
- "typetext" : "<boolean>"
}
}
},
"type" : "string"
}
},
- "GET" : {
- "allowtoken" : 1,
- "description" : "Pool index.",
- "method" : "GET",
- "name" : "poolindex",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "name" : {
- "description" : "The name of the pool.",
- "type" : "string",
- "typetext" : "<string>"
- },
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
- ]
- },
- "returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ],
- "type" : "array"
- }
- },
- "PUT" : {
+ "POST" : {
"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,
- "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>"
- },
- "min_size" : {
- "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" : {
- "description" : "The automatic PG scaling mode of the pool.",
- "enum" : [
- "on",
- "off",
- "warn"
- ],
- "optional" : 1,
- "title" : "PG Autoscale Mode",
- "type" : "string"
- },
- "pg_num" : {
- "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" : {
- "description" : "Number of replicas per object",
- "maximum" : 7,
- "minimum" : 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,
- "title" : "Size",
- "type" : "integer",
- "typetext" : "<integer> (1 - 7)"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "target_size" : {
- "description" : "The estimated target size of the pool for the PG autoscaler.",
+ "monid" : {
+ "description" : "The ID for the monitor, when omitted the same as the nodename",
+ "maxLength" : 200,
"optional" : 1,
- "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
- "title" : "PG Autoscale Target Size",
+ "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
"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>"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
}
}
},
- "leaf" : 0,
- "path" : "/nodes/{node}/ceph/pool/{name}",
- "text" : "{name}"
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/mon/{monid}",
+ "text" : "{monid}"
}
],
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "List all pools and their settings (which are settable by the POST/PUT endpoints).",
+ "description" : "Get Ceph monitor list.",
"method" : "GET",
- "name" : "lspools",
+ "name" : "listmon",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"returns" : {
"items" : {
"properties" : {
- "application_metadata" : {
+ "addr" : {
"optional" : 1,
- "title" : "Associated Applications",
- "type" : "object"
+ "type" : "string"
},
- "autoscale_status" : {
+ "ceph_version" : {
"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" : {
+ "ceph_version_short" : {
"optional" : 1,
- "title" : "PG Autoscale Mode",
"type" : "string"
},
- "pg_num" : {
- "title" : "PG Num",
- "type" : "integer"
- },
- "pg_num_final" : {
+ "direxists" : {
"optional" : 1,
- "title" : "Optimal PG Num",
- "type" : "integer"
+ "type" : "string"
},
- "pg_num_min" : {
+ "host" : {
"optional" : 1,
- "title" : "min. PG Num",
- "type" : "integer"
- },
- "pool" : {
- "title" : "ID",
- "type" : "integer"
+ "type" : "boolean"
},
- "pool_name" : {
- "title" : "Name",
+ "name" : {
"type" : "string"
},
- "size" : {
- "title" : "Size",
- "type" : "integer"
+ "quorum" : {
+ "optional" : 1,
+ "type" : "boolean"
},
- "target_size" : {
+ "rank" : {
"optional" : 1,
- "title" : "PG Autoscale Target Size",
"type" : "integer"
},
- "target_size_ratio" : {
+ "service" : {
"optional" : 1,
- "title" : "PG Autoscale Target Ratio",
- "type" : "number"
+ "type" : "integer"
},
- "type" : {
- "enum" : [
- "replicated",
- "erasure",
- "unknown"
- ],
- "title" : "Type",
+ "state" : {
+ "optional" : 1,
"type" : "string"
}
},
},
"links" : [
{
- "href" : "{pool_name}",
+ "href" : "{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",
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/mon",
+ "text" : "mon"
+ },
+ {
+ "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" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "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",
+ "name" : {
+ "default" : "cephfs",
+ "description" : "The ceph filesystem name.",
"optional" : 1,
- "type" : "string"
- },
- "k" : {
- "description" : "Number of data chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
- "minimum" : 2,
- "type" : "integer"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "m" : {
- "description" : "Number of coding chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
- "minimum" : 1,
- "type" : "integer"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "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",
+ "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" : "string"
+ "type" : "integer",
+ "typetext" : "<integer> (8 - 32768)"
}
- },
- "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>"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/fs/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "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"
+ }
},
- "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"
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/fs",
+ "text" : "fs"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Show the current pool status.",
+ "method" : "GET",
+ "name" : "getpool",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "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>"
+ },
+ "verbose" : {
+ "default" : 0,
+ "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"
+ },
+ "application_list" : {
+ "optional" : 1,
+ "title" : "Application",
+ "type" : "array"
+ },
+ "autoscale_status" : {
+ "optional" : 1,
+ "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"
+ },
+ "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"
+ },
+ "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" : [
+ "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"
+ },
+ "pg_num_min" : {
+ "description" : "Minimal number of placement groups.",
+ "maximum" : 32768,
+ "optional" : 1,
+ "title" : "min. PG Num",
+ "type" : "integer"
+ },
+ "pgp_num" : {
+ "title" : "PGP num",
+ "type" : "integer"
+ },
+ "size" : {
+ "default" : 3,
+ "description" : "Number of replicas per object",
+ "maximum" : 7,
+ "minimum" : 1,
+ "optional" : 1,
+ "title" : "Size",
+ "type" : "integer"
+ },
+ "statistics" : {
+ "optional" : 1,
+ "title" : "Statistics",
+ "type" : "object"
+ },
+ "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"
+ },
+ "use_gmt_hitset" : {
+ "title" : "use_gmt_hitset",
+ "type" : "boolean"
+ },
+ "write_fadvise_dontneed" : {
+ "title" : "write_fadvise_dontneed",
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ }
+ }
},
- "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>"
- }
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/pool/{name}/status",
+ "text" : "status"
}
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
- "type" : "string"
- }
- }
- },
- "leaf" : 0,
- "path" : "/nodes/{node}/ceph/pool",
- "text" : "pool"
- },
- {
- "children" : [
- {
+ ],
"info" : {
"DELETE" : {
"allowtoken" : 1,
- "description" : "Destroy pool. Deprecated, please use `/nodes/{node}/ceph/pool/{name}`.",
+ "description" : "Destroy pool",
"method" : "DELETE",
"name" : "destroypool",
"parameters" : {
},
"GET" : {
"allowtoken" : 1,
- "description" : "List pool settings. Deprecated, please use `/nodes/{node}/ceph/pool/{pool}/status`.",
+ "description" : "Pool index.",
"method" : "GET",
- "name" : "getpool",
+ "name" : "poolindex",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"name" : {
- "description" : "The name of the pool. It must be unique.",
+ "description" : "The name of the pool.",
"type" : "string",
"typetext" : "<string>"
},
"format" : "pve-node",
"type" : "string",
"typetext" : "<string>"
- },
- "verbose" : {
- "default" : 0,
- "description" : "If enabled, will display additional data(eg. statistics).",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
}
}
},
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"
- },
- "application_list" : {
- "optional" : 1,
- "title" : "Application",
- "type" : "array"
- },
- "autoscale_status" : {
- "optional" : 1,
- "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"
- },
- "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"
- },
- "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" : [
- "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"
- },
- "pg_num_min" : {
- "description" : "Minimal number of placement groups.",
- "maximum" : 32768,
- "optional" : 1,
- "title" : "min. PG Num",
- "type" : "integer"
- },
- "pgp_num" : {
- "title" : "PGP num",
- "type" : "integer"
- },
- "size" : {
- "default" : 3,
- "description" : "Number of replicas per object",
- "maximum" : 7,
- "minimum" : 1,
- "optional" : 1,
- "title" : "Size",
- "type" : "integer"
- },
- "statistics" : {
- "optional" : 1,
- "title" : "Statistics",
- "type" : "object"
- },
- "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"
- },
- "use_gmt_hitset" : {
- "title" : "use_gmt_hitset",
- "type" : "boolean"
- },
- "write_fadvise_dontneed" : {
- "title" : "write_fadvise_dontneed",
- "type" : "boolean"
- }
+ "items" : {
+ "properties" : {},
+ "type" : "object"
},
- "type" : "object"
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
},
"PUT" : {
"allowtoken" : 1,
- "description" : "Change POOL settings. Deprecated, please use `/nodes/{node}/ceph/pool/{name}`.",
+ "description" : "Change POOL settings",
"method" : "PUT",
"name" : "setpool",
"parameters" : {
}
}
},
- "leaf" : 1,
- "path" : "/nodes/{node}/ceph/pools/{name}",
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/pool/{name}",
"text" : "{name}"
}
],
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "List all pools. Deprecated, please use `/nodes/{node}/ceph/pool`.",
+ "description" : "List all pools and their settings (which are settable by the POST/PUT endpoints).",
"method" : "GET",
"name" : "lspools",
"parameters" : {
1
]
},
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
- "items" : {
- "properties" : {
- "application_metadata" : {
- "optional" : 1,
- "title" : "Associated Applications",
- "type" : "object"
- },
- "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. Deprecated, please use `/nodes/{node}/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,
- "type" : "string"
- },
- "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,
- "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,
- "type" : "string"
- }
- },
- "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 the Ceph configuration file. Deprecated, please use `/nodes/{node}/ceph/cfg/raw.",
- "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
- ]
- },
+ "protected" : 1,
"proxyto" : "node",
"returns" : {
- "type" : "string"
+ "items" : {
+ "properties" : {
+ "application_metadata" : {
+ "optional" : 1,
+ "title" : "Associated Applications",
+ "type" : "object"
+ },
+ "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"
}
- }
- },
- "leaf" : 1,
- "path" : "/nodes/{node}/ceph/config",
- "text" : "config"
- },
- {
- "info" : {
- "GET" : {
+ },
+ "POST" : {
"allowtoken" : 1,
- "description" : "Get the Ceph configuration database. Deprecated, please use `/nodes/{node}/ceph/cfg/db.",
- "method" : "GET",
- "name" : "configdb",
+ "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,
+ "type" : "string"
+ },
+ "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,
+ "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,
+ "type" : "string"
+ }
+ },
+ "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>"
}
}
},
"perm",
"/",
[
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
+ "Sys.Modify"
+ ]
]
},
"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"
+ "type" : "string"
}
}
},
- "leaf" : 1,
- "path" : "/nodes/{node}/ceph/configdb",
- "text" : "configdb"
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/pool",
+ "text" : "pool"
},
{
"info" : {
},
"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.",
+ "description" : "Placement group bits, used to specify the default number of placement groups.\n\nDepreacted. This setting was deprecated in recent Ceph versions.",
"maximum" : 14,
"minimum" : 6,
"optional" : 1,
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
}
}
},
"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.",
+ "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
"items" : {
"type" : "string"
},
"optional" : 1,
"type" : "array"
},
+ "fleecing" : {
+ "description" : "Options for backup fleecing (VM only).",
+ "format" : "backup-fleecing",
+ "optional" : 1,
+ "type" : "string"
+ },
"ionice" : {
"default" : 7,
"description" : "Set IO priority when using the BFQ scheduler. For snapshot and suspend mode backups of VMs, this only affects the compressor. A value of 8 means the idle priority is used, otherwise the best-effort priority is used with the specified value.",
},
"mailnotification" : {
"default" : "always",
- "description" : "Specify when to send an email",
+ "description" : "Deprecated: use notification targets/matchers instead. Specify when to send a notification mail",
"enum" : [
"always",
"failure"
"type" : "string"
},
"mailto" : {
- "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
+ "description" : "Deprecated: Use notification targets/matchers instead. Comma-separated list of email addresses or users that should receive email notifications.",
"format" : "email-or-username-list",
"optional" : 1,
"type" : "string"
"requires" : "storage",
"type" : "string"
},
+ "notification-mode" : {
+ "default" : "auto",
+ "description" : "Determine which notification system to use. If set to 'legacy-sendmail', vzdump will consider the mailto/mailnotification parameters and send emails to the specified address(es) via the 'sendmail' command. If set to 'notification-system', a notification will be sent via PVE's notification system, and the mailto and mailnotification will be ignored. If set to 'auto' (default setting), an email will be sent if mailto is set, and the notification system will be used if not.",
+ "enum" : [
+ "auto",
+ "legacy-sendmail",
+ "notification-system"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "notification-policy" : {
+ "default" : "always",
+ "description" : "Deprecated: Do not use",
+ "enum" : [
+ "always",
+ "failure",
+ "never"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "notification-target" : {
+ "description" : "Deprecated: Do not use",
+ "format" : "pve-configid",
+ "optional" : 1,
+ "type" : "string"
+ },
"performance" : {
"description" : "Other performance-related settings.",
"format" : "backup-performance",
"storage" : {
"description" : "Store resulting file to this storage.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"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.",
+ "description" : "Zstd threads. N=0 uses half of the available cores, if N is set to a value bigger than 0, N is used as thread count.",
"optional" : 1,
"type" : "integer"
}
"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.",
+ "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
"items" : {
"type" : "string"
},
"type" : "array",
"typetext" : "<array>"
},
+ "fleecing" : {
+ "description" : "Options for backup fleecing (VM only).",
+ "format" : "backup-fleecing",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[[enabled=]<1|0>] [,storage=<storage ID>]"
+ },
"ionice" : {
"default" : 7,
"description" : "Set IO priority when using the BFQ scheduler. For snapshot and suspend mode backups of VMs, this only affects the compressor. A value of 8 means the idle priority is used, otherwise the best-effort priority is used with the specified value.",
},
"mailnotification" : {
"default" : "always",
- "description" : "Specify when to send an email",
+ "description" : "Deprecated: use notification targets/matchers instead. Specify when to send a notification mail",
"enum" : [
"always",
"failure"
"type" : "string"
},
"mailto" : {
- "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
+ "description" : "Deprecated: Use notification targets/matchers instead. Comma-separated list of email addresses or users that should receive email notifications.",
"format" : "email-or-username-list",
"optional" : 1,
"type" : "string",
"type" : "string",
"typetext" : "<string>"
},
+ "notification-mode" : {
+ "default" : "auto",
+ "description" : "Determine which notification system to use. If set to 'legacy-sendmail', vzdump will consider the mailto/mailnotification parameters and send emails to the specified address(es) via the 'sendmail' command. If set to 'notification-system', a notification will be sent via PVE's notification system, and the mailto and mailnotification will be ignored. If set to 'auto' (default setting), an email will be sent if mailto is set, and the notification system will be used if not.",
+ "enum" : [
+ "auto",
+ "legacy-sendmail",
+ "notification-system"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "notification-policy" : {
+ "default" : "always",
+ "description" : "Deprecated: Do not use",
+ "enum" : [
+ "always",
+ "failure",
+ "never"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "notification-target" : {
+ "description" : "Deprecated: Do not use",
+ "format" : "pve-configid",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"performance" : {
"description" : "Other performance-related settings.",
"format" : "backup-performance",
"optional" : 1,
"type" : "string",
- "typetext" : "[max-workers=<integer>]"
+ "typetext" : "[max-workers=<integer>] [,pbs-entries-max=<integer>]"
},
"pigz" : {
"default" : 0,
"storage" : {
"description" : "Store resulting file to this storage.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"tmpdir" : {
"description" : "Store temporary files to specified directory.",
},
"zstd" : {
"default" : 1,
- "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
+ "description" : "Zstd threads. N=0 uses half of the available cores, if N is set to a value bigger than 0, N is used 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 'tmpdir', 'dumpdir' and 'script' parameters are restricted to the 'root@pam' user. The 'maxfiles' and 'prune-backups' settings require 'Datastore.Allocate' on the backup storage. The 'bwlimit', 'performance' and 'ionice' parameters require 'Sys.Modify' on '/'.",
+ "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage (and fleecing storage when fleecing is used). The 'tmpdir', 'dumpdir' and 'script' parameters are restricted to the 'root@pam' user. The 'maxfiles' and 'prune-backups' settings require 'Datastore.Allocate' on the backup storage. The 'bwlimit', 'performance' and 'ionice' parameters require 'Sys.Modify' on '/'.",
"user" : "all"
},
"protected" : 1,
"key" : {
"description" : "Proxmox VE subscription key",
"maxLength" : 32,
- "pattern" : "pve([1248])([cbsp])-[0-9a-f]{10}",
+ "pattern" : "\\s*pve([1248])([cbsp])-[0-9a-f]{10}\\s*",
"type" : "string"
},
"node" : {
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"type" : {
"description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"type" : {
"description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"volume" : {
"description" : "Volume identifier",
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"volume" : {
"description" : "Volume identifier",
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"target" : {
"description" : "Target volume identifier",
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"volume" : {
"description" : "Volume identifier",
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"vmid" : {
"description" : "Only list images for this VM",
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"vmid" : {
"description" : "Specify owner VM",
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"volume" : {
"description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
+ },
+ "tar" : {
+ "default" : 0,
+ "description" : "Download dirs as 'tar.zst' instead of 'zip'.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
"volume" : {
"description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
}
}
},
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"timeframe" : {
"description" : "Specify the time frame you are interested in.",
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"timeframe" : {
"description" : "Specify the time frame you are interested in.",
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"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.",
"requires" : "checksum",
"type" : "string"
},
+ "compression" : {
+ "description" : "Decompress the downloaded file using the specified compression algorithm.",
+ "enum" : null,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"content" : {
"description" : "Content type.",
"enum" : [
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"url" : {
"description" : "The URL to download the file from.",
]
],
[
- "perm",
- "/",
+ "or",
+ [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Sys.Modify"
+ ]
+ ],
[
- "Sys.Audit",
- "Sys.Modify"
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.AccessNetwork"
+ ]
]
]
- ]
+ ],
+ "description" : "Requires allocation access on the storage and as this allows one to probe the (local!) host network indirectly it also requires one of Sys.Modify on / (for backwards compatibility) or the newer Sys.AccessNetwork privilege on the node."
},
"protected" : 1,
"proxyto" : "node",
"leaf" : 1,
"path" : "/nodes/{node}/storage/{storage}/download-url",
"text" : "download-url"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get the base parameters for creating a guest which imports data from a foreign importable guest, like an ESXi VM",
+ "method" : "GET",
+ "name" : "get_import_metadata",
+ "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",
+ "format_description" : "storage ID",
+ "type" : "string",
+ "typetext" : "<storage ID>"
+ },
+ "volume" : {
+ "description" : "Volume identifier for the guest archive/entry.",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "You need read access for the volume.",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "additionalProperties" : 0,
+ "description" : "Information about how to import a guest.",
+ "properties" : {
+ "create-args" : {
+ "additionalProperties" : 1,
+ "description" : "Parameters which can be used in a call to create a VM or container.",
+ "type" : "object"
+ },
+ "disks" : {
+ "additionalProperties" : 1,
+ "description" : "Recognised disk volumes as `$bus$id` => `$storeid:$path` map.",
+ "optional" : 1,
+ "type" : "object"
+ },
+ "net" : {
+ "additionalProperties" : 1,
+ "description" : "Recognised network interfaces as `net$id` => { ...params } object.",
+ "optional" : 1,
+ "type" : "object"
+ },
+ "source" : {
+ "description" : "The type of the import-source of this guest volume.",
+ "enum" : [
+ "esxi"
+ ],
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "The type of guest this is going to produce.",
+ "enum" : [
+ "vm"
+ ],
+ "type" : "string"
+ },
+ "warnings" : {
+ "description" : "List of known issues that can affect the import of a guest. Note that lack of warning does not imply that there cannot be any problems.",
+ "items" : {
+ "additionalProperties" : 1,
+ "properties" : {
+ "key" : {
+ "description" : "Related subject (config) key of warning.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "What this warning is about.",
+ "enum" : [
+ "cdrom-image-ignored",
+ "efi-state-lost",
+ "guest-is-running",
+ "nvme-unsupported",
+ "ovmf-with-lsi-unsupported",
+ "serial-port-socket-only"
+ ],
+ "type" : "string"
+ },
+ "value" : {
+ "description" : "Related subject (config) value of warning.",
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "optional" : 1,
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/storage/{storage}/import-metadata",
+ "text" : "import-metadata"
}
],
"info" : {
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
}
}
},
"storage" : {
"description" : "Only list status for specified storage",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"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.",
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string"
},
"total" : {
"name" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"node" : {
"description" : "The cluster node name.",
"name" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"node" : {
"description" : "The cluster node name.",
"name" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"node" : {
"description" : "The cluster node name.",
"volume-group" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
}
}
},
"name" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"node" : {
"description" : "The cluster node name.",
"name" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"node" : {
"description" : "The cluster node name.",
"name" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"node" : {
"description" : "The cluster node name.",
"name" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"node" : {
"description" : "The cluster node name.",
"name" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"node" : {
"description" : "The cluster node name.",
"name" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"node" : {
"description" : "The cluster node name.",
"osdid" : {
"type" : "integer"
},
+ "osdid-list" : {
+ "items" : {
+ "type" : "integer"
+ },
+ "type" : "array"
+ },
"parent" : {
"description" : "For partitions only. The device path of the disk the partition resides on.",
"optional" : 1,
},
"notify" : {
"default" : 0,
- "description" : "Send notification mail about new packages (to email address specified for user 'root@pam').",
+ "description" : "Send notification about new packages.",
"optional" : 1,
"type" : "boolean",
"typetext" : "<boolean>"
"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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"optional" : 1,
"type" : "integer"
},
+ "nftables" : {
+ "default" : 0,
+ "description" : "Enable nftables based firewall (tech preview)",
+ "optional" : 1,
+ "type" : "boolean"
+ },
"nosmurfs" : {
"description" : "Enable SMURFS filter.",
"optional" : 1,
"typetext" : "<string>"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"type" : "integer",
"typetext" : "<integer> (30 - 60)"
},
+ "nftables" : {
+ "default" : 0,
+ "description" : "Enable nftables based firewall (tech preview)",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "integer"
},
"wakeonlan" : {
- "description" : "MAC address for wake on LAN",
- "format" : "mac-addr",
+ "description" : "Node specific wake on LAN settings.",
+ "format" : {
+ "bind-interface" : {
+ "default" : "The interface carrying the default route",
+ "description" : "Bind to this interface when sending wake on LAN packet",
+ "format" : "pve-iface",
+ "format_description" : "bind interface",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "broadcast-address" : {
+ "default" : "255.255.255.255",
+ "description" : "IPv4 broadcast address to use when sending wake on LAN packet",
+ "format" : "ipv4",
+ "format_description" : "IPv4 broadcast address",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "mac" : {
+ "default_key" : 1,
+ "description" : "MAC address for wake on LAN",
+ "format" : "mac-addr",
+ "format_description" : "MAC address",
+ "type" : "string"
+ }
+ },
"optional" : 1,
"type" : "string"
}
"typetext" : "<integer> (0 - 300)"
},
"wakeonlan" : {
- "description" : "MAC address for wake on LAN",
- "format" : "mac-addr",
+ "description" : "Node specific wake on LAN settings.",
+ "format" : {
+ "bind-interface" : {
+ "default" : "The interface carrying the default route",
+ "description" : "Bind to this interface when sending wake on LAN packet",
+ "format" : "pve-iface",
+ "format_description" : "bind interface",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "broadcast-address" : {
+ "default" : "255.255.255.255",
+ "description" : "IPv4 broadcast address to use when sending wake on LAN packet",
+ "format" : "ipv4",
+ "format_description" : "IPv4 broadcast address",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "mac" : {
+ "default_key" : 1,
+ "description" : "MAC address for wake on LAN",
+ "format" : "mac-addr",
+ "format_description" : "MAC address",
+ "type" : "string"
+ }
+ },
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "[mac=]<MAC address> [,bind-interface=<bind interface>] [,broadcast-address=<IPv4 broadcast address>]"
}
}
},
},
"proxyto" : "node",
"returns" : {
+ "additionalProperties" : 1,
+ "properties" : {
+ "boot-info" : {
+ "description" : "Meta-information about the boot mode.",
+ "properties" : {
+ "mode" : {
+ "description" : "Through which firmware the system got booted.",
+ "enum" : [
+ "efi",
+ "legacy-bios"
+ ],
+ "type" : "string"
+ },
+ "secureboot" : {
+ "description" : "System is booted in secure mode, only applicable for the \"efi\" mode.",
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ },
+ "current-kernel" : {
+ "description" : "The uptime of the system in seconds.",
+ "properties" : {
+ "machine" : {
+ "description" : "Hardware (architecture) type",
+ "type" : "string"
+ },
+ "release" : {
+ "description" : "OS kernel release (e.g., \"6.8.0\")",
+ "type" : "string"
+ },
+ "sysname" : {
+ "description" : "OS kernel name (e.g., \"Linux\")",
+ "type" : "string"
+ },
+ "version" : {
+ "description" : "OS kernel version with build info",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
"type" : "object"
}
},
"properties" : {
"cmd" : {
"default" : "login",
- "description" : "Run specific command or default to login.",
+ "description" : "Run specific command or default to login (requires 'root@pam')",
"enum" : [
"upgrade",
"ceph_install",
[
"Sys.Console"
]
- ],
- "description" : "Restricted to users on realm 'pam'"
+ ]
},
"protected" : 1,
"returns" : {
"properties" : {
"cmd" : {
"default" : "login",
- "description" : "Run specific command or default to login.",
+ "description" : "Run specific command or default to login (requires 'root@pam')",
"enum" : [
"upgrade",
"ceph_install",
[
"Sys.Console"
]
- ],
- "description" : "Restricted to users on realm 'pam'"
+ ]
},
"protected" : 1,
"returns" : {
"Sys.Console"
]
],
- "description" : "Restricted to users on realm 'pam'. You also need to pass a valid ticket (vncticket)."
+ "description" : "You also need to pass a valid ticket (vncticket)."
},
"returns" : {
"properties" : {
"properties" : {
"cmd" : {
"default" : "login",
- "description" : "Run specific command or default to login.",
+ "description" : "Run specific command or default to login (requires 'root@pam')",
"enum" : [
"upgrade",
"ceph_install",
[
"Sys.Console"
]
- ],
- "description" : "Restricted to users on realm 'pam'"
+ ]
},
"protected" : 1,
"proxyto" : "node",
"storage" : {
"description" : "The storage where the template will be stored",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"template" : {
"description" : "The template which will downloaded",
},
"permissions" : {
"check" : [
- "perm",
- "/",
+ "or",
[
- "Sys.Audit",
- "Sys.Modify"
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Sys.Modify"
+ ]
+ ],
+ [
+ "perm",
+ "/nodes/{node}",
+ [
+ "Sys.AccessNetwork"
+ ]
]
]
},
"path" : "/nodes/{node}/stopall",
"text" : "stopall"
},
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Suspend all VMs.",
+ "method" : "POST",
+ "name" : "suspendall",
+ "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>"
+ }
+ }
+ },
+ "permissions" : {
+ "description" : "The 'VM.PowerMgmt' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter. Additionally, you need 'VM.Config.Disk' on the '/vms/{vmid}' path and 'Datastore.AllocateSpace' for the configured state-storage(s)",
+ "user" : "all"
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/suspendall",
+ "text" : "suspendall"
+ },
{
"info" : {
"POST" : {
"type" : "string"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "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,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
}
}
},
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
}
}
},
"typetext" : "<string>"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"typetext" : "<boolean>"
},
"nodes" : {
- "description" : "List of cluster node names.",
+ "description" : "List of nodes for which the storage configuration applies.",
"format" : "pve-node-list",
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
"port" : {
- "default" : 8007,
"description" : "For non default port.",
"maximum" : 65535,
"minimum" : 1,
"typetext" : "<string>"
},
"shared" : {
- "description" : "Mark storage as shared.",
+ "description" : "Indicate that this is a single storage with the same contents on all nodes (or all listed in the 'nodes' option). It will not make the contents of a local storage automatically accessible to other nodes, it just marks an already shared storage as such!",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "skip-cert-verification" : {
+ "default" : "false",
+ "description" : "Disable TLS certificate verification, only enable on fully trusted networks!",
"optional" : 1,
"type" : "boolean",
"typetext" : "<boolean>"
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"subdir" : {
"description" : "Subdir to mount.",
"cephfs",
"cifs",
"dir",
+ "esxi",
"glusterfs",
"iscsi",
"iscsidirect",
"cephfs",
"cifs",
"dir",
+ "esxi",
"glusterfs",
"iscsi",
"iscsidirect",
"typetext" : "<boolean>"
},
"nodes" : {
- "description" : "List of cluster node names.",
+ "description" : "List of nodes for which the storage configuration applies.",
"format" : "pve-node-list",
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
"port" : {
- "default" : 8007,
"description" : "For non default port.",
"maximum" : 65535,
"minimum" : 1,
"typetext" : "<string>"
},
"shared" : {
- "description" : "Mark storage as shared.",
+ "description" : "Indicate that this is a single storage with the same contents on all nodes (or all listed in the 'nodes' option). It will not make the contents of a local storage automatically accessible to other nodes, it just marks an already shared storage as such!",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "skip-cert-verification" : {
+ "default" : "false",
+ "description" : "Disable TLS certificate verification, only enable on fully trusted networks!",
"optional" : 1,
"type" : "boolean",
"typetext" : "<boolean>"
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
},
"subdir" : {
"description" : "Subdir to mount.",
"cephfs",
"cifs",
"dir",
+ "esxi",
"glusterfs",
"iscsi",
"iscsidirect",
"cephfs",
"cifs",
"dir",
+ "esxi",
"glusterfs",
"iscsi",
"iscsidirect",
"additionalProperties" : 0,
"properties" : {
"comment" : {
+ "maxLength" : 2048,
"optional" : 1,
"type" : "string"
},
"email" : {
"format" : "email-opt",
+ "maxLength" : 254,
"optional" : 1,
"type" : "string"
},
"type" : "integer"
},
"firstname" : {
+ "maxLength" : 1024,
"optional" : 1,
"type" : "string"
},
"keys" : {
"description" : "Keys for two factor auth (yubico).",
"optional" : 1,
+ "pattern" : "[0-9a-zA-Z!=]{0,4096}",
"type" : "string"
},
"lastname" : {
+ "maxLength" : 1024,
"optional" : 1,
"type" : "string"
},
"typetext" : "<boolean>"
},
"comment" : {
+ "maxLength" : 2048,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
"email" : {
"format" : "email-opt",
+ "maxLength" : 254,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"typetext" : "<integer> (0 - N)"
},
"firstname" : {
+ "maxLength" : 1024,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"keys" : {
"description" : "Keys for two factor auth (yubico).",
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "pattern" : "[0-9a-zA-Z!=]{0,4096}",
+ "type" : "string"
},
"lastname" : {
+ "maxLength" : 1024,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"items" : {
"properties" : {
"comment" : {
+ "maxLength" : 2048,
"optional" : 1,
"type" : "string"
},
"email" : {
"format" : "email-opt",
+ "maxLength" : 254,
"optional" : 1,
"type" : "string"
},
"type" : "integer"
},
"firstname" : {
+ "maxLength" : 1024,
"optional" : 1,
"type" : "string"
},
"keys" : {
"description" : "Keys for two factor auth (yubico).",
"optional" : 1,
+ "pattern" : "[0-9a-zA-Z!=]{0,4096}",
"type" : "string"
},
"lastname" : {
+ "maxLength" : 1024,
"optional" : 1,
"type" : "string"
},
"additionalProperties" : 0,
"properties" : {
"comment" : {
+ "maxLength" : 2048,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
"email" : {
"format" : "email-opt",
+ "maxLength" : 254,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"typetext" : "<integer> (0 - N)"
},
"firstname" : {
+ "maxLength" : 1024,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"keys" : {
"description" : "Keys for two factor auth (yubico).",
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "pattern" : "[0-9a-zA-Z!=]{0,4096}",
+ "type" : "string"
},
"lastname" : {
+ "maxLength" : 1024,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"optional" : 1,
"type" : "boolean"
},
+ "Sys.AccessNetwork" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
"Sys.Audit" : {
"optional" : 1,
"type" : "boolean"
"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>"
+ "pattern" : "^[^\\x00-\\x1F\\x7F <>#\"]*$",
+ "type" : "string"
},
"autocreate" : {
"default" : 0,
"description" : "LDAP base domain name",
"maxLength" : 256,
"optional" : 1,
- "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
"bind_dn" : {
"description" : "LDAP bind domain name",
"maxLength" : 256,
"optional" : 1,
- "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
"capath" : {
"default" : "/etc/ssl/certs",
"type" : "string",
"typetext" : "<string>"
},
+ "check-connection" : {
+ "default" : 0,
+ "description" : "Check bind connection to the server.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"client-id" : {
"description" : "OpenID Client ID",
"maxLength" : 256,
"typetext" : "<string>"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
"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"
+ "type" : "string",
+ "typetext" : "<string>"
},
"group_filter" : {
"description" : "LDAP filter for group sync.",
"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>"
+ "pattern" : "^[^\\x00-\\x1F\\x7F <>#\"]*$",
+ "type" : "string"
},
"autocreate" : {
"default" : 0,
"description" : "LDAP base domain name",
"maxLength" : 256,
"optional" : 1,
- "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
"bind_dn" : {
"description" : "LDAP bind domain name",
"maxLength" : 256,
"optional" : 1,
- "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
},
"capath" : {
"default" : "/etc/ssl/certs",
"type" : "string",
"typetext" : "<string>"
},
+ "check-connection" : {
+ "default" : 0,
+ "description" : "Check bind connection to the server.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"client-id" : {
"description" : "OpenID Client ID",
"maxLength" : 256,
"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"
+ "type" : "string",
+ "typetext" : "<string>"
},
"group_filter" : {
"description" : "LDAP filter for group sync.",
"typetext" : "<string>"
},
"password" : {
- "description" : "The current password.",
+ "description" : "The current password of the user performing the change.",
"maxLength" : 64,
"minLength" : 5,
"optional" : 1,
}
},
"GET" : {
- "allowtoken" : 0,
+ "allowtoken" : 1,
"description" : "Fetch a requested TFA entry if present.",
"method" : "GET",
"name" : "get_tfa_entry",
"typetext" : "<string>"
},
"password" : {
- "description" : "The current password.",
+ "description" : "The current password of the user performing the change.",
"maxLength" : 64,
"minLength" : 5,
"optional" : 1,
],
"info" : {
"GET" : {
- "allowtoken" : 0,
+ "allowtoken" : 1,
"description" : "List TFA configurations of users.",
"method" : "GET",
"name" : "list_user_tfa",
},
"type" : "object"
},
+ "links" : [
+ {
+ "href" : "{id}",
+ "rel" : "child"
+ }
+ ],
"type" : "array"
}
},
"typetext" : "<string>"
},
"password" : {
- "description" : "The current password.",
+ "description" : "The current password of the user performing the change.",
"maxLength" : 64,
"minLength" : 5,
"optional" : 1,
],
"info" : {
"GET" : {
- "allowtoken" : 0,
+ "allowtoken" : 1,
"description" : "List TFA configurations of users.",
"method" : "GET",
"name" : "list_tfa",
},
"type" : "object"
},
+ "links" : [
+ {
+ "href" : "{userid}",
+ "rel" : "child"
+ }
+ ],
"type" : "array"
}
}
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "confirmation-password" : {
+ "description" : "The current password of the user performing the change.",
+ "maxLength" : 64,
+ "minLength" : 5,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"password" : {
"description" : "The new password.",
"maxLength" : 64,
"info" : {
"DELETE" : {
"allowtoken" : 1,
- "description" : "Delete pool.",
+ "description" : "Delete pool (deprecated, no support for nested pools, use 'DELETE /pools/?poolid={poolid}').",
"method" : "DELETE",
- "name" : "delete_pool",
+ "name" : "delete_pool_deprecated",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
},
"GET" : {
"allowtoken" : 1,
- "description" : "Get pool configuration.",
+ "description" : "Get pool configuration (deprecated, no support for nested pools, use 'GET /pools/?poolid={poolid}').",
"method" : "GET",
"name" : "read_pool",
"parameters" : {
},
"PUT" : {
"allowtoken" : 1,
- "description" : "Update pool data.",
+ "description" : "Update pool data (deprecated, no support for nested pools - use 'PUT /pools/?poolid={poolid}' instead).",
"method" : "PUT",
- "name" : "update_pool",
+ "name" : "update_pool_deprecated",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "allow-move" : {
+ "default" : 0,
+ "description" : "Allow adding a guest even if already in another pool. The guest will be removed from its current pool and added to this one.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"comment" : {
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
"delete" : {
- "description" : "Remove vms/storage (instead of adding it).",
+ "default" : 0,
+ "description" : "Remove the passed VMIDs and/or storage IDs instead of adding them.",
"optional" : 1,
"type" : "boolean",
"typetext" : "<boolean>"
"typetext" : "<string>"
},
"storage" : {
- "description" : "List of storage IDs.",
+ "description" : "List of storage IDs to add or remove from this pool.",
"format" : "pve-storage-id-list",
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
"vms" : {
- "description" : "List of virtual machines.",
+ "description" : "List of guest VMIDs to add or remove from this pool.",
"format" : "pve-vmid-list",
"optional" : 1,
"type" : "string",
}
],
"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" : {
"allowtoken" : 1,
- "description" : "Pool index.",
+ "description" : "List pools or get pool configuration.",
"method" : "GET",
"name" : "index",
"parameters" : {
- "additionalProperties" : 0
+ "additionalProperties" : 0,
+ "properties" : {
+ "poolid" : {
+ "format" : "pve-poolid",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "type" : {
+ "enum" : [
+ "qemu",
+ "lxc",
+ "storage"
+ ],
+ "optional" : 1,
+ "requires" : "poolid",
+ "type" : "string"
+ }
+ }
},
"permissions" : {
- "description" : "List all pools where you have Pool.Audit permissions on /pool/<pool>.",
+ "description" : "List all pools where you have Pool.Audit permissions on /pool/<pool>, or the pool specific with {poolid}",
"user" : "all"
},
"returns" : {
"items" : {
"properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "members" : {
+ "items" : {
+ "additionalProperties" : 1,
+ "properties" : {
+ "id" : {
+ "type" : "string"
+ },
+ "node" : {
+ "type" : "string"
+ },
+ "storage" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "enum" : [
+ "qemu",
+ "lxc",
+ "openvz",
+ "storage"
+ ],
+ "type" : "string"
+ },
+ "vmid" : {
+ "optional" : 1,
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
"poolid" : {
"type" : "string"
}
"returns" : {
"type" : "null"
}
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update pool.",
+ "method" : "PUT",
+ "name" : "update_pool",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "allow-move" : {
+ "default" : 0,
+ "description" : "Allow adding a guest even if already in another pool. The guest will be removed from its current pool and added to this one.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "default" : 0,
+ "description" : "Remove the passed VMIDs and/or storage IDs instead of adding them.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "poolid" : {
+ "format" : "pve-poolid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "storage" : {
+ "description" : "List of storage IDs to add or remove from this pool.",
+ "format" : "pve-storage-id-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vms" : {
+ "description" : "List of guest VMIDs to add or remove from this pool.",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/pool/{poolid}",
+ [
+ "Pool.Allocate"
+ ]
+ ],
+ "description" : "You also need the right to modify permissions on any object you add/delete."
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
"leaf" : 0,