"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"
+ "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" : "string",
+ "typetext" : "<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,
+ "comment" : {
+ "description" : "Comment",
"optional" : 1,
- "type" : "integer"
+ "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>"
}
- },
- "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>"
+ "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'.",
- "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"
- }
- },
- "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"
+ "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"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a new gotify endpoint",
+ "method" : "POST",
+ "name" : "create_gotify_endpoint",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "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'.",
- "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'.",
- "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" : {
- "description" : "Flag to enable/disable a rule.",
- "minimum" : 0,
+ "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" : "integer",
- "typetext" : "<integer> (0 - N)"
+ "type" : "array",
+ "typetext" : "<array>"
},
- "icmp-type" : {
- "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
- "format" : "pve-fw-icmp-type-spec",
+ "match-severity" : {
+ "description" : "Notification severities to match",
+ "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,
+ "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>"
},
- "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",
+ "target" : {
+ "description" : "Targets to notify on match",
+ "items" : {
+ "format" : "pve-configid",
+ "type" : "string"
+ },
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "type" : {
- "description" : "Rule type.",
- "enum" : [
- "in",
- "out",
- "group"
- ],
- "optional" : 0,
- "type" : "string"
+ "type" : "array",
+ "typetext" : "<array>"
}
}
},
"permissions" : {
"check" : [
"perm",
- "/",
+ "/mapping/notifications",
[
- "Sys.Modify"
+ "Mapping.Modify"
]
]
},
"protected" : 1,
- "proxyto" : null,
"returns" : {
"type" : "null"
}
}
},
"leaf" : 0,
- "path" : "/cluster/firewall/rules",
- "text" : "rules"
+ "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" : [
{
- "children" : [
- {
- "info" : {
- "DELETE" : {
- "allowtoken" : 1,
- "description" : "Remove IP or Network from IPSet.",
- "method" : "DELETE",
- "name" : "remove_ip",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "format" : "IPorCIDRorAlias",
- "type" : "string",
- "typetext" : "<string>"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "returns" : {
- "type" : "null"
- }
- },
- "GET" : {
- "allowtoken" : 1,
- "description" : "Read IP or Network settings from IPSet.",
- "method" : "GET",
- "name" : "read_ip",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "format" : "IPorCIDRorAlias",
- "type" : "string",
- "typetext" : "<string>"
- },
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "protected" : 1,
- "returns" : {
- "type" : "object"
- }
- },
- "PUT" : {
- "allowtoken" : 1,
- "description" : "Update IP or Network settings",
- "method" : "PUT",
- "name" : "update_ip",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "format" : "IPorCIDRorAlias",
- "type" : "string",
- "typetext" : "<string>"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
- },
- "nomatch" : {
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "returns" : {
- "type" : "null"
- }
- }
- },
- "leaf" : 1,
- "path" : "/cluster/firewall/ipset/{name}/{cidr}",
- "text" : "{cidr}"
- }
- ],
"info" : {
"DELETE" : {
"allowtoken" : 1,
- "description" : "Delete IPSet",
+ "description" : "Removes a node from the cluster configuration.",
"method" : "DELETE",
- "name" : "delete_ipset",
+ "name" : "delnode",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "force" : {
- "description" : "Delete all members of the IPSet, if there are any.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
"protected" : 1,
"returns" : {
"type" : "null"
}
},
- "GET" : {
- "allowtoken" : 1,
- "description" : "List IPSet content",
- "method" : "GET",
- "name" : "get_ipset",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "returns" : {
- "items" : {
- "properties" : {
- "cidr" : {
- "type" : "string"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 0,
- "type" : "string"
- },
- "nomatch" : {
- "optional" : 1,
- "type" : "boolean"
- }
- },
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{cidr}",
- "rel" : "child"
- }
- ],
- "type" : "array"
- }
- },
"POST" : {
"allowtoken" : 1,
- "description" : "Add IP or Network to IPSet.",
+ "description" : "Adds a node to the cluster configuration. This call is for internal use.",
"method" : "POST",
- "name" : "create_ip",
+ "name" : "addnode",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "format" : "IPorCIDRorAlias",
+ "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" : "<string>"
+ "typetext" : "[address=]<IP> [,priority=<integer>]"
},
- "comment" : {
+ "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>"
},
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "nomatch" : {
+ "nodeid" : {
+ "description" : "Node id for this node.",
+ "minimum" : 1,
"optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "votes" : {
+ "description" : "Number of votes for this node",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
}
}
},
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
"protected" : 1,
"returns" : {
- "type" : "null"
+ "properties" : {
+ "corosync_authkey" : {
+ "type" : "string"
+ },
+ "corosync_conf" : {
+ "type" : "string"
+ },
+ "warnings" : {
+ "items" : {
+ "type" : "string"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
}
}
},
- "leaf" : 0,
- "path" : "/cluster/firewall/ipset/{name}",
- "text" : "{name}"
+ "leaf" : 1,
+ "path" : "/cluster/config/nodes/{node}",
+ "text" : "{node}"
}
],
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "List IPSets",
+ "description" : "Corosync node list.",
"method" : "GET",
- "name" : "ipset_index",
+ "name" : "nodes",
"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"
- },
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "node" : {
"type" : "string"
}
},
},
"links" : [
{
- "href" : "{name}",
+ "href" : "{node}",
"rel" : "child"
}
],
"type" : "array"
}
- },
- "POST" : {
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/config/nodes",
+ "text" : "nodes"
+ },
+ {
+ "info" : {
+ "GET" : {
"allowtoken" : 1,
- "description" : "Create new IPSet",
- "method" : "POST",
- "name" : "create_ipset",
+ "description" : "Get information needed to join this cluster over the connected node.",
+ "method" : "GET",
+ "name" : "join_info",
"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,
+ "node" : {
+ "default" : "current connected node",
+ "description" : "The node for which the joinee gets the nodeinfo. ",
+ "format" : "pve-node",
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
- },
- "name" : {
- "description" : "IP set name.",
- "maxLength" : 64,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
- },
- "rename" : {
- "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
- "maxLength" : 64,
- "minLength" : 2,
- "optional" : 1,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
}
}
},
"perm",
"/",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
},
- "protected" : 1,
"returns" : {
- "type" : "null"
- }
- }
- },
- "leaf" : 0,
- "path" : "/cluster/firewall/ipset",
- "text" : "ipset"
- },
- {
- "children" : [
- {
- "info" : {
- "DELETE" : {
- "allowtoken" : 1,
- "description" : "Remove IP or Network alias.",
- "method" : "DELETE",
- "name" : "remove_alias",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "name" : {
- "description" : "Alias name.",
- "maxLength" : 64,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "returns" : {
- "type" : "null"
- }
- },
- "GET" : {
- "allowtoken" : 1,
- "description" : "Read alias.",
- "method" : "GET",
- "name" : "read_alias",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "name" : {
- "description" : "Alias name.",
- "maxLength" : 64,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
+ "additionalProperties" : 0,
+ "properties" : {
+ "config_digest" : {
+ "type" : "string"
},
- "returns" : {
- "type" : "object"
- }
- },
- "PUT" : {
- "allowtoken" : 1,
- "description" : "Update IP or Network alias.",
- "method" : "PUT",
- "name" : "update_alias",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "format" : "IPorCIDR",
- "type" : "string",
- "typetext" : "<string>"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "name" : {
- "description" : "Alias name.",
- "maxLength" : 64,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
+ "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"
+ }
},
- "rename" : {
- "description" : "Rename an existing alias.",
- "maxLength" : 64,
- "minLength" : 2,
- "optional" : 1,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
- }
- }
+ "type" : "object"
+ },
+ "type" : "array"
},
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
+ "preferred_node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
},
- "protected" : 1,
- "returns" : {
- "type" : "null"
+ "totem" : {
+ "type" : "object"
}
- }
- },
- "leaf" : 1,
- "path" : "/cluster/firewall/aliases/{name}",
- "text" : "{name}"
- }
- ],
- "info" : {
- "GET" : {
- "allowtoken" : 1,
- "description" : "List aliases",
- "method" : "GET",
- "name" : "get_aliases",
- "parameters" : {
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "returns" : {
- "items" : {
- "properties" : {
- "cidr" : {
- "type" : "string"
- },
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 0,
- "type" : "string"
- },
- "name" : {
- "type" : "string"
- }
- },
- "type" : "object"
},
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ],
- "type" : "array"
+ "type" : "object"
}
},
"POST" : {
"allowtoken" : 1,
- "description" : "Create IP or Network Alias.",
+ "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" : "create_alias",
+ "name" : "join",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "cidr" : {
- "description" : "Network/IP specification in CIDR format.",
- "format" : "IPorCIDR",
+ "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>"
},
- "comment" : {
+ "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>"
},
- "name" : {
- "description" : "Alias name.",
- "maxLength" : 64,
- "minLength" : 2,
- "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
- "type" : "string"
+ "votes" : {
+ "description" : "Number of votes for this node",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
}
}
},
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
"protected" : 1,
"returns" : {
- "type" : "null"
+ "type" : "string"
}
}
},
- "leaf" : 0,
- "path" : "/cluster/firewall/aliases",
- "text" : "aliases"
+ "leaf" : 1,
+ "path" : "/cluster/config/join",
+ "text" : "join"
},
{
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "Get Firewall options.",
+ "description" : "Get corosync totem protocol settings.",
"method" : "GET",
- "name" : "get_options",
+ "name" : "totem",
"parameters" : {
"additionalProperties" : 0
},
]
},
"returns" : {
- "properties" : {
- "ebtables" : {
- "default" : 1,
- "description" : "Enable ebtables rules cluster wide.",
- "optional" : 1,
- "type" : "boolean"
- },
- "enable" : {
- "description" : "Enable or disable the firewall cluster wide.",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer"
- },
- "log_ratelimit" : {
- "description" : "Log ratelimiting settings",
- "format" : {
- "burst" : {
- "default" : 5,
- "description" : "Initial burst of packages which will always get logged before the rate is applied",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer"
- },
- "enable" : {
- "default" : "1",
- "default_key" : 1,
- "description" : "Enable or disable log rate limiting",
- "type" : "boolean"
- },
- "rate" : {
- "default" : "1/second",
- "description" : "Frequency with which the burst bucket gets refilled",
- "format_description" : "rate",
- "optional" : 1,
- "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
- "type" : "string"
- }
- },
- "optional" : 1,
- "type" : "string"
- },
- "policy_in" : {
- "description" : "Input policy.",
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
- "optional" : 1,
- "type" : "string"
- },
- "policy_out" : {
- "description" : "Output policy.",
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
- "optional" : 1,
- "type" : "string"
- }
- },
"type" : "object"
}
- },
- "PUT" : {
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/config/totem",
+ "text" : "totem"
+ },
+ {
+ "info" : {
+ "GET" : {
"allowtoken" : 1,
- "description" : "Set Firewall options.",
- "method" : "PUT",
- "name" : "set_options",
+ "description" : "Get QDevice status",
+ "method" : "GET",
+ "name" : "status",
"parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "ebtables" : {
- "default" : 1,
- "description" : "Enable ebtables rules cluster wide.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "enable" : {
- "description" : "Enable or disable the firewall cluster wide.",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
- },
- "log_ratelimit" : {
- "description" : "Log ratelimiting settings",
- "format" : {
- "burst" : {
- "default" : 5,
- "description" : "Initial burst of packages which will always get logged before the rate is applied",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer"
- },
- "enable" : {
- "default" : "1",
- "default_key" : 1,
- "description" : "Enable or disable log rate limiting",
- "type" : "boolean"
- },
- "rate" : {
- "default" : "1/second",
- "description" : "Frequency with which the burst bucket gets refilled",
- "format_description" : "rate",
- "optional" : 1,
- "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
- "type" : "string"
- }
- },
- "optional" : 1,
- "type" : "string",
- "typetext" : "[enable=]<1|0> [,burst=<integer>] [,rate=<rate>]"
- },
- "policy_in" : {
- "description" : "Input policy.",
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
- "optional" : 1,
- "type" : "string"
- },
- "policy_out" : {
- "description" : "Output policy.",
- "enum" : [
- "ACCEPT",
- "REJECT",
- "DROP"
- ],
- "optional" : 1,
- "type" : "string"
- }
- }
+ "additionalProperties" : 0
},
"permissions" : {
"check" : [
"perm",
"/",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
},
"protected" : 1,
"returns" : {
- "type" : "null"
+ "type" : "object"
}
}
},
"leaf" : 1,
- "path" : "/cluster/firewall/options",
- "text" : "options"
- },
- {
- "info" : {
- "GET" : {
- "allowtoken" : 1,
- "description" : "List available macros",
- "method" : "GET",
- "name" : "get_macros",
- "parameters" : {
- "additionalProperties" : 0
- },
- "permissions" : {
- "user" : "all"
- },
- "returns" : {
- "items" : {
- "properties" : {
- "descr" : {
- "description" : "More verbose description (if available).",
- "type" : "string"
- },
- "macro" : {
- "description" : "Macro name.",
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "type" : "array"
- }
- }
- },
- "leaf" : 1,
- "path" : "/cluster/firewall/macros",
- "text" : "macros"
- },
- {
- "info" : {
- "GET" : {
- "allowtoken" : 1,
- "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
- "method" : "GET",
- "name" : "refs",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "type" : {
- "description" : "Only list references of specified type.",
- "enum" : [
- "alias",
- "ipset"
- ],
- "optional" : 1,
- "type" : "string"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "returns" : {
- "items" : {
- "properties" : {
- "comment" : {
- "optional" : 1,
- "type" : "string"
- },
- "name" : {
- "type" : "string"
- },
- "ref" : {
- "type" : "string"
- },
- "type" : {
- "enum" : [
- "alias",
- "ipset"
- ],
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "type" : "array"
- }
- }
- },
- "leaf" : 1,
- "path" : "/cluster/firewall/refs",
- "text" : "refs"
+ "path" : "/cluster/config/qdevice",
+ "text" : "qdevice"
}
],
"info" : {
"additionalProperties" : 0
},
"permissions" : {
- "user" : "all"
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
},
"returns" : {
"items" : {
],
"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/firewall",
- "text" : "firewall"
+ "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" : {
- "GET" : {
+ "DELETE" : {
"allowtoken" : 1,
- "description" : "Returns included guests and the backup status of their disks. Optimized to be used in ExtJS tree views.",
- "method" : "GET",
- "name" : "get_volume_backup_included",
+ "description" : "Delete security group.",
+ "method" : "DELETE",
+ "name" : "delete_security_group",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "id" : {
- "description" : "The job ID.",
- "maxLength" : 50,
- "type" : "string",
- "typetext" : "<string>"
+ "group" : {
+ "description" : "Security Group name.",
+ "maxLength" : 18,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
}
}
},
"perm",
"/",
[
- "Sys.Audit"
+ "Sys.Modify"
]
]
},
"protected" : 1,
"returns" : {
- "description" : "Root node of the tree object. Children represent guests, grandchildren represent volumes of that guest.",
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List rules.",
+ "method" : "GET",
+ "name" : "get_rules",
+ "parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "children" : {
- "items" : {
- "properties" : {
- "children" : {
- "description" : "The volumes of the guest with the information if they will be included in backups.",
- "items" : {
- "properties" : {
- "id" : {
- "description" : "Configuration key of the volume.",
- "type" : "string"
- },
- "included" : {
- "description" : "Whether the volume is included in the backup or not.",
- "type" : "boolean"
- },
- "name" : {
- "description" : "Name of the volume.",
- "type" : "string"
- },
- "reason" : {
- "description" : "The reason why the volume is included (or excluded).",
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "optional" : 1,
- "type" : "array"
- },
- "id" : {
- "description" : "VMID of the guest.",
- "type" : "integer"
- },
- "name" : {
- "description" : "Name of the guest",
- "optional" : 1,
- "type" : "string"
- },
- "type" : {
- "description" : "Type of the guest, VM, CT or unknown for removed but not purged guests.",
- "enum" : [
- "qemu",
- "lxc",
- "unknown"
- ],
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "type" : "array"
+ "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"
},
- "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" : 1,
- "path" : "/cluster/backup/{id}/included_volumes",
- "text" : "included_volumes"
+ "leaf" : 0,
+ "path" : "/cluster/firewall/groups/{group}",
+ "text" : "{group}"
}
],
"info" : {
- "DELETE" : {
+ "GET" : {
"allowtoken" : 1,
- "description" : "Delete vzdump backup job definition.",
- "method" : "DELETE",
- "name" : "delete_job",
+ "description" : "List security groups.",
+ "method" : "GET",
+ "name" : "list_security_groups",
"parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "id" : {
- "description" : "The job ID.",
- "maxLength" : 50,
- "type" : "string",
- "typetext" : "<string>"
- }
- }
+ "additionalProperties" : 0
},
"permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
+ "user" : "all"
},
- "protected" : 1,
"returns" : {
- "type" : "null"
+ "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"
}
},
- "GET" : {
+ "POST" : {
"allowtoken" : 1,
- "description" : "Read vzdump backup job definition.",
- "method" : "GET",
- "name" : "read_job",
+ "description" : "Create new security group.",
+ "method" : "POST",
+ "name" : "create_security_group",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "id" : {
- "description" : "The job ID.",
- "maxLength" : 50,
+ "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"
}
}
},
"perm",
"/",
[
- "Sys.Audit"
+ "Sys.Modify"
]
]
},
+ "protected" : 1,
"returns" : {
- "type" : "object"
+ "type" : "null"
}
- },
- "PUT" : {
- "allowtoken" : 1,
- "description" : "Update vzdump backup job definition.",
- "method" : "PUT",
- "name" : "update_job",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "all" : {
- "default" : 0,
- "description" : "Backup all known guest systems on this host.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "bwlimit" : {
- "default" : 0,
- "description" : "Limit I/O bandwidth (KBytes per second).",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
- },
- "comment" : {
- "description" : "Description for the Job.",
- "maxLength" : 512,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "compress" : {
- "default" : "0",
- "description" : "Compress dump file.",
- "enum" : [
- "0",
- "1",
- "gzip",
- "lzo",
- "zstd"
- ],
- "optional" : 1,
- "type" : "string"
- },
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "dow" : {
- "description" : "Day of week selection.",
- "format" : "pve-day-of-week-list",
- "optional" : 1,
- "requires" : "starttime",
- "type" : "string",
- "typetext" : "<string>"
- },
- "dumpdir" : {
- "description" : "Store resulting files to specified directory.",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "enabled" : {
- "default" : "1",
- "description" : "Enable or disable the job.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "exclude" : {
- "description" : "Exclude specified guest systems (assumes --all)",
- "format" : "pve-vmid-list",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ }
+ },
+ "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)"
+ }
+ }
},
- "exclude-path" : {
- "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
- "format" : "string-alist",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
- "id" : {
- "description" : "The job ID.",
- "maxLength" : 50,
- "type" : "string",
- "typetext" : "<string>"
+ "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)"
+ }
+ }
},
- "ionice" : {
- "default" : 7,
- "description" : "Set CFQ ionice priority.",
- "maximum" : 8,
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - 8)"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
},
- "lockwait" : {
- "default" : 180,
- "description" : "Maximal time to wait for the global lock (minutes).",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
+ "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"
+ }
+ }
},
- "mailnotification" : {
- "default" : "always",
- "description" : "Specify when to send an email",
- "enum" : [
- "always",
- "failure"
- ],
- "optional" : 1,
+ "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"
},
- "mailto" : {
- "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
- "format" : "email-or-username-list",
+ "comment" : {
+ "description" : "Descriptive comment.",
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
- "maxfiles" : {
- "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - N)"
- },
- "mode" : {
- "default" : "snapshot",
- "description" : "Backup mode.",
- "enum" : [
- "snapshot",
- "suspend",
- "stop"
- ],
- "optional" : 1,
- "type" : "string"
- },
- "node" : {
- "description" : "Only run if executed on this node.",
- "format" : "pve-node",
+ "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>"
},
- "notes-template" : {
- "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future. Needs to be a single line, newline and backslash need to be escaped as '\\n' and '\\\\' respectively.",
- "maxLength" : 1024,
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
"optional" : 1,
- "requires" : "storage",
"type" : "string",
"typetext" : "<string>"
},
- "performance" : {
- "description" : "Other performance-related settings.",
- "format" : "backup-performance",
+ "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" : "[max-workers=<integer>]"
+ "typetext" : "<string>"
},
- "pigz" : {
- "default" : 0,
- "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
+ "enable" : {
+ "description" : "Flag to enable/disable a rule.",
+ "minimum" : 0,
"optional" : 1,
"type" : "integer",
- "typetext" : "<integer>"
+ "typetext" : "<integer> (0 - N)"
},
- "pool" : {
- "description" : "Backup all known guest systems included in the specified pool.",
+ "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>"
},
- "protected" : {
- "description" : "If true, mark backup(s) as protected.",
- "optional" : 1,
- "requires" : "storage",
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "prune-backups" : {
- "default" : "keep-all=1",
- "description" : "Use these retention options instead of those from the storage configuration.",
- "format" : "prune-backups",
+ "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" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
- },
- "quiet" : {
- "default" : 0,
- "description" : "Be quiet.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "remove" : {
- "default" : 1,
- "description" : "Prune older backups according to 'prune-backups'.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "typetext" : "<string>"
},
- "repeat-missed" : {
- "default" : 0,
- "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
+ "log" : {
+ "description" : "Log level for firewall rule.",
+ "enum" : [
+ "emerg",
+ "alert",
+ "crit",
+ "err",
+ "warning",
+ "notice",
+ "info",
+ "debug",
+ "nolog"
+ ],
"optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "type" : "string"
},
- "schedule" : {
- "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
- "format" : "pve-calendar-event",
+ "macro" : {
+ "description" : "Use predefined standard macro.",
"maxLength" : 128,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
- "script" : {
- "description" : "Use specified hook script.",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "starttime" : {
- "description" : "Job Start time.",
- "optional" : 1,
- "pattern" : "\\d{1,2}:\\d{1,2}",
- "type" : "string",
- "typetext" : "HH:MM"
- },
- "stdexcludes" : {
- "default" : 1,
- "description" : "Exclude temporary files and logs.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "stop" : {
- "default" : 0,
- "description" : "Stop running backup jobs on this host.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "stopwait" : {
- "default" : 10,
- "description" : "Maximal time to wait until a guest system is stopped (minutes).",
+ "pos" : {
+ "description" : "Update rule at position <pos>.",
"minimum" : 0,
"optional" : 1,
"type" : "integer",
"typetext" : "<integer> (0 - N)"
},
- "storage" : {
- "description" : "Store resulting file to this storage.",
- "format" : "pve-storage-id",
+ "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>"
},
- "tmpdir" : {
- "description" : "Store temporary files to specified directory.",
+ "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>"
},
- "vmid" : {
- "description" : "The ID of the guest system you want to backup.",
- "format" : "pve-vmid-list",
+ "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>"
},
- "zstd" : {
- "default" : 1,
- "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer>"
+ "type" : {
+ "description" : "Rule type.",
+ "enum" : [
+ "in",
+ "out",
+ "group"
+ ],
+ "optional" : 0,
+ "type" : "string"
}
}
},
[
"Sys.Modify"
]
- ],
- "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
+ ]
},
"protected" : 1,
+ "proxyto" : null,
"returns" : {
"type" : "null"
}
}
},
"leaf" : 0,
- "path" : "/cluster/backup/{id}",
- "text" : "{id}"
- }
- ],
- "info" : {
- "GET" : {
- "allowtoken" : 1,
- "description" : "List vzdump backup schedule.",
- "method" : "GET",
- "name" : "index",
- "parameters" : {
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "returns" : {
- "items" : {
- "properties" : {
- "id" : {
- "description" : "The job ID.",
- "maxLength" : 50,
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{id}",
- "rel" : "child"
- }
- ],
- "type" : "array"
- }
+ "path" : "/cluster/firewall/rules",
+ "text" : "rules"
},
- "POST" : {
- "allowtoken" : 1,
- "description" : "Create new vzdump backup job.",
- "method" : "POST",
- "name" : "create_job",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "all" : {
- "default" : 0,
- "description" : "Backup all known guest systems on this host.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "bwlimit" : {
- "default" : 0,
- "description" : "Limit I/O bandwidth (KBytes per second).",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
- },
- "comment" : {
- "description" : "Description for the Job.",
- "maxLength" : 512,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "compress" : {
- "default" : "0",
- "description" : "Compress dump file.",
- "enum" : [
- "0",
- "1",
- "gzip",
- "lzo",
- "zstd"
- ],
- "optional" : 1,
- "type" : "string"
- },
- "dow" : {
- "default" : "mon,tue,wed,thu,fri,sat,sun",
- "description" : "Day of week selection.",
- "format" : "pve-day-of-week-list",
- "optional" : 1,
- "requires" : "starttime",
- "type" : "string",
- "typetext" : "<string>"
- },
- "dumpdir" : {
- "description" : "Store resulting files to specified directory.",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "enabled" : {
- "default" : "1",
- "description" : "Enable or disable the job.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "exclude" : {
- "description" : "Exclude specified guest systems (assumes --all)",
- "format" : "pve-vmid-list",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "exclude-path" : {
- "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
- "format" : "string-alist",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "id" : {
- "description" : "Job ID (will be autogenerated).",
- "format" : "pve-configid",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Remove IP or Network from IPSet.",
+ "method" : "DELETE",
+ "name" : "remove_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read IP or Network settings from IPSet.",
+ "method" : "GET",
+ "name" : "read_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update IP or Network settings",
+ "method" : "PUT",
+ "name" : "update_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/firewall/ipset/{name}/{cidr}",
+ "text" : "{cidr}"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete IPSet",
+ "method" : "DELETE",
+ "name" : "delete_ipset",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "force" : {
+ "description" : "Delete all members of the IPSet, if there are any.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List IPSet content",
+ "method" : "GET",
+ "name" : "get_ipset",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "cidr" : {
+ "type" : "string"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
+ "optional" : 0,
+ "type" : "string"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{cidr}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Add IP or Network to IPSet.",
+ "method" : "POST",
+ "name" : "create_ip",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDRorAlias",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "nomatch" : {
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
},
- "ionice" : {
- "default" : 7,
- "description" : "Set CFQ ionice priority.",
- "maximum" : 8,
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - 8)"
+ "leaf" : 0,
+ "path" : "/cluster/firewall/ipset/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List IPSets",
+ "method" : "GET",
+ "name" : "ipset_index",
+ "parameters" : {
+ "additionalProperties" : 0
},
- "lockwait" : {
- "default" : 180,
- "description" : "Maximal time to wait for the global lock (minutes).",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
},
- "mailnotification" : {
- "default" : "always",
- "description" : "Specify when to send an email",
- "enum" : [
- "always",
- "failure"
+ "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"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
],
- "optional" : 1,
- "type" : "string"
- },
- "mailto" : {
- "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
- "format" : "email-or-username-list",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create new IPSet",
+ "method" : "POST",
+ "name" : "create_ipset",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "IP set name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "rename" : {
+ "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "optional" : 1,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
},
- "maxfiles" : {
- "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
- "mode" : {
- "default" : "snapshot",
- "description" : "Backup mode.",
- "enum" : [
- "snapshot",
- "suspend",
- "stop"
- ],
- "optional" : 1,
- "type" : "string"
- },
- "node" : {
- "description" : "Only run if executed on this node.",
- "format" : "pve-node",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "notes-template" : {
- "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future. Needs to be a single line, newline and backslash need to be escaped as '\\n' and '\\\\' respectively.",
- "maxLength" : 1024,
- "optional" : 1,
- "requires" : "storage",
- "type" : "string",
- "typetext" : "<string>"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/firewall/ipset",
+ "text" : "ipset"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Remove IP or Network alias.",
+ "method" : "DELETE",
+ "name" : "remove_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read alias.",
+ "method" : "GET",
+ "name" : "read_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update IP or Network alias.",
+ "method" : "PUT",
+ "name" : "update_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ },
+ "rename" : {
+ "description" : "Rename an existing alias.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "optional" : 1,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
},
- "performance" : {
- "description" : "Other performance-related settings.",
- "format" : "backup-performance",
- "optional" : 1,
- "type" : "string",
- "typetext" : "[max-workers=<integer>]"
+ "leaf" : 1,
+ "path" : "/cluster/firewall/aliases/{name}",
+ "text" : "{name}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List aliases",
+ "method" : "GET",
+ "name" : "get_aliases",
+ "parameters" : {
+ "additionalProperties" : 0
},
- "pigz" : {
- "default" : 0,
- "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer>"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
},
- "pool" : {
- "description" : "Backup all known guest systems included in the specified pool.",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "cidr" : {
+ "type" : "string"
+ },
+ "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"
+ },
+ "name" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create IP or Network Alias.",
+ "method" : "POST",
+ "name" : "create_alias",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "cidr" : {
+ "description" : "Network/IP specification in CIDR format.",
+ "format" : "IPorCIDR",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "comment" : {
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "name" : {
+ "description" : "Alias name.",
+ "maxLength" : 64,
+ "minLength" : 2,
+ "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+ "type" : "string"
+ }
+ }
},
- "protected" : {
- "description" : "If true, mark backup(s) as protected.",
- "optional" : 1,
- "requires" : "storage",
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
- "prune-backups" : {
- "default" : "keep-all=1",
- "description" : "Use these retention options instead of those from the storage configuration.",
- "format" : "prune-backups",
- "optional" : 1,
- "type" : "string",
- "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/firewall/aliases",
+ "text" : "aliases"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get Firewall options.",
+ "method" : "GET",
+ "name" : "get_options",
+ "parameters" : {
+ "additionalProperties" : 0
},
- "quiet" : {
- "default" : 0,
- "description" : "Be quiet.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
},
- "remove" : {
- "default" : 1,
- "description" : "Prune older backups according to 'prune-backups'.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "returns" : {
+ "properties" : {
+ "ebtables" : {
+ "default" : 1,
+ "description" : "Enable ebtables rules cluster wide.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "enable" : {
+ "description" : "Enable or disable the firewall cluster wide.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "log_ratelimit" : {
+ "description" : "Log ratelimiting settings",
+ "format" : {
+ "burst" : {
+ "default" : 5,
+ "description" : "Initial burst of packages which will always get logged before the rate is applied",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "enable" : {
+ "default" : "1",
+ "default_key" : 1,
+ "description" : "Enable or disable log rate limiting",
+ "type" : "boolean"
+ },
+ "rate" : {
+ "default" : "1/second",
+ "description" : "Frequency with which the burst bucket gets refilled",
+ "format_description" : "rate",
+ "optional" : 1,
+ "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string"
+ },
+ "policy_in" : {
+ "description" : "Input policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "policy_out" : {
+ "description" : "Output policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Set Firewall options.",
+ "method" : "PUT",
+ "name" : "set_options",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "ebtables" : {
+ "default" : 1,
+ "description" : "Enable ebtables rules cluster wide.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "enable" : {
+ "description" : "Enable or disable the firewall cluster wide.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "log_ratelimit" : {
+ "description" : "Log ratelimiting settings",
+ "format" : {
+ "burst" : {
+ "default" : 5,
+ "description" : "Initial burst of packages which will always get logged before the rate is applied",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "enable" : {
+ "default" : "1",
+ "default_key" : 1,
+ "description" : "Enable or disable log rate limiting",
+ "type" : "boolean"
+ },
+ "rate" : {
+ "default" : "1/second",
+ "description" : "Frequency with which the burst bucket gets refilled",
+ "format_description" : "rate",
+ "optional" : 1,
+ "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
+ "type" : "string"
+ }
+ },
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[enable=]<1|0> [,burst=<integer>] [,rate=<rate>]"
+ },
+ "policy_in" : {
+ "description" : "Input policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "policy_out" : {
+ "description" : "Output policy.",
+ "enum" : [
+ "ACCEPT",
+ "REJECT",
+ "DROP"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
},
- "repeat-missed" : {
- "default" : 0,
- "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
- "schedule" : {
- "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
- "format" : "pve-calendar-event",
- "maxLength" : 128,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/firewall/options",
+ "text" : "options"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List available macros",
+ "method" : "GET",
+ "name" : "get_macros",
+ "parameters" : {
+ "additionalProperties" : 0
},
- "script" : {
- "description" : "Use specified hook script.",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "permissions" : {
+ "user" : "all"
},
- "starttime" : {
- "description" : "Job Start time.",
- "optional" : 1,
- "pattern" : "\\d{1,2}:\\d{1,2}",
- "type" : "string",
- "typetext" : "HH:MM"
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "descr" : {
+ "description" : "More verbose description (if available).",
+ "type" : "string"
+ },
+ "macro" : {
+ "description" : "Macro name.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/firewall/macros",
+ "text" : "macros"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
+ "method" : "GET",
+ "name" : "refs",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "type" : {
+ "description" : "Only list references of specified type.",
+ "enum" : [
+ "alias",
+ "ipset"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
},
- "stdexcludes" : {
- "default" : 1,
- "description" : "Exclude temporary files and logs.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
},
- "stop" : {
- "default" : 0,
- "description" : "Stop running backup jobs on this host.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "comment" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "name" : {
+ "type" : "string"
+ },
+ "ref" : {
+ "type" : "string"
+ },
+ "scope" : {
+ "type" : "string"
+ },
+ "type" : {
+ "enum" : [
+ "alias",
+ "ipset"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/firewall/refs",
+ "text" : "refs"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/firewall",
+ "text" : "firewall"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Returns included guests and the backup status of their disks. Optimized to be used in ExtJS tree views.",
+ "method" : "GET",
+ "name" : "get_volume_backup_included",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "The job ID.",
+ "maxLength" : 50,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "description" : "Root node of the tree object. Children represent guests, grandchildren represent volumes of that guest.",
+ "properties" : {
+ "children" : {
+ "items" : {
+ "properties" : {
+ "children" : {
+ "description" : "The volumes of the guest with the information if they will be included in backups.",
+ "items" : {
+ "properties" : {
+ "id" : {
+ "description" : "Configuration key of the volume.",
+ "type" : "string"
+ },
+ "included" : {
+ "description" : "Whether the volume is included in the backup or not.",
+ "type" : "boolean"
+ },
+ "name" : {
+ "description" : "Name of the volume.",
+ "type" : "string"
+ },
+ "reason" : {
+ "description" : "The reason why the volume is included (or excluded).",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
+ "id" : {
+ "description" : "VMID of the guest.",
+ "type" : "integer"
+ },
+ "name" : {
+ "description" : "Name of the guest",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "Type of the guest, VM, CT or unknown for removed but not purged guests.",
+ "enum" : [
+ "qemu",
+ "lxc",
+ "unknown"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ }
+ }
},
- "stopwait" : {
- "default" : 10,
- "description" : "Maximal time to wait until a guest system is stopped (minutes).",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
+ "leaf" : 1,
+ "path" : "/cluster/backup/{id}/included_volumes",
+ "text" : "included_volumes"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete vzdump backup job definition.",
+ "method" : "DELETE",
+ "name" : "delete_job",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "The job ID.",
+ "maxLength" : 50,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "storage" : {
- "description" : "Store resulting file to this storage.",
- "format" : "pve-storage-id",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
},
- "tmpdir" : {
- "description" : "Store temporary files to specified directory.",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read vzdump backup job definition.",
+ "method" : "GET",
+ "name" : "read_job",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "description" : "The job ID.",
+ "maxLength" : 50,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
- "vmid" : {
- "description" : "The ID of the guest system you want to backup.",
- "format" : "pve-vmid-list",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update vzdump backup job definition.",
+ "method" : "PUT",
+ "name" : "update_job",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "all" : {
+ "default" : 0,
+ "description" : "Backup all known guest systems on this host.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "bwlimit" : {
+ "default" : 0,
+ "description" : "Limit I/O bandwidth (in KiB/s).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "comment" : {
+ "description" : "Description for the Job.",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "compress" : {
+ "default" : "0",
+ "description" : "Compress dump file.",
+ "enum" : [
+ "0",
+ "1",
+ "gzip",
+ "lzo",
+ "zstd"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dow" : {
+ "description" : "Day of week selection.",
+ "format" : "pve-day-of-week-list",
+ "optional" : 1,
+ "requires" : "starttime",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dumpdir" : {
+ "description" : "Store resulting files to specified directory.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enabled" : {
+ "default" : "1",
+ "description" : "Enable or disable the job.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "exclude" : {
+ "description" : "Exclude specified guest systems (assumes --all)",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "exclude-path" : {
+ "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
+ "items" : {
+ "type" : "string"
+ },
+ "optional" : 1,
+ "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,
+ "type" : "string",
+ "typetext" : "<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.",
+ "maximum" : 8,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 8)"
+ },
+ "lockwait" : {
+ "default" : 180,
+ "description" : "Maximal time to wait for the global lock (minutes).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "mailnotification" : {
+ "default" : "always",
+ "description" : "Deprecated: use notification targets/matchers instead. Specify when to send a notification mail",
+ "enum" : [
+ "always",
+ "failure"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "mailto" : {
+ "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",
+ "typetext" : "<string>"
+ },
+ "maxfiles" : {
+ "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "mode" : {
+ "default" : "snapshot",
+ "description" : "Backup mode.",
+ "enum" : [
+ "snapshot",
+ "suspend",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "Only run if executed on this node.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "notes-template" : {
+ "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future. Needs to be a single line, newline and backslash need to be escaped as '\\n' and '\\\\' respectively.",
+ "maxLength" : 1024,
+ "optional" : 1,
+ "requires" : "storage",
+ "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>] [,pbs-entries-max=<integer>]"
+ },
+ "pigz" : {
+ "default" : 0,
+ "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "pool" : {
+ "description" : "Backup all known guest systems included in the specified pool.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "protected" : {
+ "description" : "If true, mark backup(s) as protected.",
+ "optional" : 1,
+ "requires" : "storage",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "prune-backups" : {
+ "default" : "keep-all=1",
+ "description" : "Use these retention options instead of those from the storage configuration.",
+ "format" : "prune-backups",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
+ },
+ "quiet" : {
+ "default" : 0,
+ "description" : "Be quiet.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "remove" : {
+ "default" : 1,
+ "description" : "Prune older backups according to 'prune-backups'.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "repeat-missed" : {
+ "default" : 0,
+ "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "schedule" : {
+ "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
+ "format" : "pve-calendar-event",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "script" : {
+ "description" : "Use specified hook script.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "starttime" : {
+ "description" : "Job Start time.",
+ "optional" : 1,
+ "pattern" : "\\d{1,2}:\\d{1,2}",
+ "type" : "string",
+ "typetext" : "HH:MM"
+ },
+ "stdexcludes" : {
+ "default" : 1,
+ "description" : "Exclude temporary files and logs.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "stop" : {
+ "default" : 0,
+ "description" : "Stop running backup jobs on this host.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "stopwait" : {
+ "default" : 10,
+ "description" : "Maximal time to wait until a guest system is stopped (minutes).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "storage" : {
+ "description" : "Store resulting file to this storage.",
+ "format" : "pve-storage-id",
+ "format_description" : "storage ID",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<storage ID>"
+ },
+ "tmpdir" : {
+ "description" : "Store temporary files to specified directory.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The ID of the guest system you want to backup.",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "zstd" : {
+ "default" : 1,
+ "description" : "Zstd threads. N=0 uses half of the available cores, if N is set to a value bigger than 0, N is used as thread count.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ],
+ "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/backup/{id}",
+ "text" : "{id}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List vzdump backup schedule.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "id" : {
+ "description" : "The job ID.",
+ "maxLength" : 50,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{id}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create new vzdump backup job.",
+ "method" : "POST",
+ "name" : "create_job",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "all" : {
+ "default" : 0,
+ "description" : "Backup all known guest systems on this host.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "bwlimit" : {
+ "default" : 0,
+ "description" : "Limit I/O bandwidth (in KiB/s).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "comment" : {
+ "description" : "Description for the Job.",
+ "maxLength" : 512,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "compress" : {
+ "default" : "0",
+ "description" : "Compress dump file.",
+ "enum" : [
+ "0",
+ "1",
+ "gzip",
+ "lzo",
+ "zstd"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "dow" : {
+ "default" : "mon,tue,wed,thu,fri,sat,sun",
+ "description" : "Day of week selection.",
+ "format" : "pve-day-of-week-list",
+ "optional" : 1,
+ "requires" : "starttime",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "dumpdir" : {
+ "description" : "Store resulting files to specified directory.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enabled" : {
+ "default" : "1",
+ "description" : "Enable or disable the job.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "exclude" : {
+ "description" : "Exclude specified guest systems (assumes --all)",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "exclude-path" : {
+ "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
+ "items" : {
+ "type" : "string"
+ },
+ "optional" : 1,
+ "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",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<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.",
+ "maximum" : 8,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 8)"
+ },
+ "lockwait" : {
+ "default" : 180,
+ "description" : "Maximal time to wait for the global lock (minutes).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "mailnotification" : {
+ "default" : "always",
+ "description" : "Deprecated: use notification targets/matchers instead. Specify when to send a notification mail",
+ "enum" : [
+ "always",
+ "failure"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "mailto" : {
+ "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",
+ "typetext" : "<string>"
+ },
+ "maxfiles" : {
+ "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - N)"
+ },
+ "mode" : {
+ "default" : "snapshot",
+ "description" : "Backup mode.",
+ "enum" : [
+ "snapshot",
+ "suspend",
+ "stop"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "Only run if executed on this node.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "notes-template" : {
+ "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future. Needs to be a single line, newline and backslash need to be escaped as '\\n' and '\\\\' respectively.",
+ "maxLength" : 1024,
+ "optional" : 1,
+ "requires" : "storage",
+ "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>] [,pbs-entries-max=<integer>]"
+ },
+ "pigz" : {
+ "default" : 0,
+ "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "pool" : {
+ "description" : "Backup all known guest systems included in the specified pool.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "protected" : {
+ "description" : "If true, mark backup(s) as protected.",
+ "optional" : 1,
+ "requires" : "storage",
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "prune-backups" : {
+ "default" : "keep-all=1",
+ "description" : "Use these retention options instead of those from the storage configuration.",
+ "format" : "prune-backups",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
+ },
+ "quiet" : {
+ "default" : 0,
+ "description" : "Be quiet.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "remove" : {
+ "default" : 1,
+ "description" : "Prune older backups according to 'prune-backups'.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "repeat-missed" : {
+ "default" : 0,
+ "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "schedule" : {
+ "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
+ "format" : "pve-calendar-event",
+ "maxLength" : 128,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "script" : {
+ "description" : "Use specified hook script.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "starttime" : {
+ "description" : "Job Start time.",
+ "optional" : 1,
+ "pattern" : "\\d{1,2}:\\d{1,2}",
+ "type" : "string",
+ "typetext" : "HH:MM"
+ },
+ "stdexcludes" : {
+ "default" : 1,
+ "description" : "Exclude temporary files and logs.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "stop" : {
+ "default" : 0,
+ "description" : "Stop running backup jobs on this host.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "stopwait" : {
+ "default" : 10,
+ "description" : "Maximal time to wait until a guest system is stopped (minutes).",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "storage" : {
+ "description" : "Store resulting file to this storage.",
+ "format" : "pve-storage-id",
+ "format_description" : "storage ID",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<storage ID>"
+ },
+ "tmpdir" : {
+ "description" : "Store temporary files to specified directory.",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "vmid" : {
+ "description" : "The ID of the guest system you want to backup.",
+ "format" : "pve-vmid-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "zstd" : {
+ "default" : 1,
+ "description" : "Zstd threads. N=0 uses half of the available cores, if N is set to a value bigger than 0, N is used as thread count.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ],
+ "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/backup",
+ "text" : "backup"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Shows all guests which are not covered by any backup job.",
+ "method" : "GET",
+ "name" : "get_guests_not_in_backup",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "description" : "Contains the guest objects.",
+ "items" : {
+ "properties" : {
+ "name" : {
+ "description" : "Name of the guest",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "Type of the guest.",
+ "enum" : [
+ "qemu",
+ "lxc"
+ ],
+ "type" : "string"
+ },
+ "vmid" : {
+ "description" : "VMID of the guest.",
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/backup-info/not-backed-up",
+ "text" : "not-backed-up"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Index for backup info related endpoints",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "returns" : {
+ "description" : "Directory index.",
+ "items" : {
+ "properties" : {
+ "subdir" : {
+ "description" : "API sub-directory endpoint",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{subdir}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/backup-info",
+ "text" : "backup-info"
+ },
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Request resource migration (online) to another node.",
+ "method" : "POST",
+ "name" : "migrate",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "Target node.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ha/resources/{sid}/migrate",
+ "text" : "migrate"
+ },
+ {
+ "info" : {
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.",
+ "method" : "POST",
+ "name" : "relocate",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "Target node.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ha/resources/{sid}/relocate",
+ "text" : "relocate"
+ }
+ ],
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete resource configuration.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read resource configuration.",
+ "method" : "GET",
+ "name" : "read",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "properties" : {
+ "comment" : {
+ "description" : "Description.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "digest" : {
+ "description" : "Can be used to prevent concurrent modifications.",
+ "type" : "string"
+ },
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "max_relocate" : {
+ "description" : "Maximal number of service relocate tries when a service failes to start.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "max_restart" : {
+ "description" : "Maximal number of tries to restart the service on a node after its start failed.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ },
+ "state" : {
+ "description" : "Requested resource state.",
+ "enum" : [
+ "started",
+ "stopped",
+ "enabled",
+ "disabled",
+ "ignored"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ },
+ "type" : {
+ "description" : "The type of the resources.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update resource configuration.",
+ "method" : "PUT",
+ "name" : "update",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "max_relocate" : {
+ "default" : 1,
+ "description" : "Maximal number of service relocate tries when a service failes to start.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "max_restart" : {
+ "default" : 1,
+ "description" : "Maximal number of tries to restart the service on a node after its start failed.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ },
+ "state" : {
+ "default" : "started",
+ "description" : "Requested resource state.",
+ "enum" : [
+ "started",
+ "stopped",
+ "enabled",
+ "disabled",
+ "ignored"
+ ],
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "Requested resource state. The CRM reads this state and acts accordingly.\nPlease note that `enabled` is just an alias for `started`.\n\n`started`;;\n\nThe CRM tries to start the resource. Service state is\nset to `started` after successful start. On node failures, or when start\nfails, it tries to recover the resource. If everything fails, service\nstate it set to `error`.\n\n`stopped`;;\n\nThe CRM tries to keep the resource in `stopped` state, but it\nstill tries to relocate the resources on node failures.\n\n`disabled`;;\n\nThe CRM tries to put the resource in `stopped` state, but does not try\nto relocate the resources on node failures. The main purpose of this\nstate is error recovery, because it is the only way to move a resource out\nof the `error` state.\n\n`ignored`;;\n\nThe resource gets removed from the manager status and so the CRM and the LRM do\nnot touch the resource anymore. All {pve} API calls affecting this resource\nwill be executed, directly bypassing the HA stack. CRM commands will be thrown\naway while there source is in this state. The resource will not get relocated\non node failures.\n\n"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/ha/resources/{sid}",
+ "text" : "{sid}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "List HA resources.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "type" : {
+ "description" : "Only list resources of specific type",
+ "enum" : [
+ "ct",
+ "vm"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "sid" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{sid}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a new HA resource.",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "max_relocate" : {
+ "default" : 1,
+ "description" : "Maximal number of service relocate tries when a service failes to start.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "max_restart" : {
+ "default" : 1,
+ "description" : "Maximal number of tries to restart the service on a node after its start failed.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
+ "sid" : {
+ "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+ "format" : "pve-ha-resource-or-vm-id",
+ "type" : "string",
+ "typetext" : "<type>:<name>"
+ },
+ "state" : {
+ "default" : "started",
+ "description" : "Requested resource state.",
+ "enum" : [
+ "started",
+ "stopped",
+ "enabled",
+ "disabled",
+ "ignored"
+ ],
+ "optional" : 1,
+ "type" : "string",
+ "verbose_description" : "Requested resource state. The CRM reads this state and acts accordingly.\nPlease note that `enabled` is just an alias for `started`.\n\n`started`;;\n\nThe CRM tries to start the resource. Service state is\nset to `started` after successful start. On node failures, or when start\nfails, it tries to recover the resource. If everything fails, service\nstate it set to `error`.\n\n`stopped`;;\n\nThe CRM tries to keep the resource in `stopped` state, but it\nstill tries to relocate the resources on node failures.\n\n`disabled`;;\n\nThe CRM tries to put the resource in `stopped` state, but does not try\nto relocate the resources on node failures. The main purpose of this\nstate is error recovery, because it is the only way to move a resource out\nof the `error` state.\n\n`ignored`;;\n\nThe resource gets removed from the manager status and so the CRM and the LRM do\nnot touch the resource anymore. All {pve} API calls affecting this resource\nwill be executed, directly bypassing the HA stack. CRM commands will be thrown\naway while there source is in this state. The resource will not get relocated\non node failures.\n\n"
+ },
+ "type" : {
+ "description" : "Resource type.",
+ "enum" : [
+ "ct",
+ "vm"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/ha/resources",
+ "text" : "resources"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Delete ha group configuration.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Read ha group configuration.",
+ "method" : "GET",
+ "name" : "read",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {}
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update ha group configuration.",
+ "method" : "PUT",
+ "name" : "update",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "digest" : {
+ "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+ "maxLength" : 64,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nodes" : {
+ "description" : "List of cluster node names with optional priority.",
+ "format" : "pve-ha-group-node-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
+ "verbose_description" : "List of cluster node members, where a priority can be given to each node. A resource bound to a group will run on the available nodes with the highest priority. If there are more nodes in the highest priority class, the services will get distributed to those nodes. The priorities have a relative meaning only."
+ },
+ "nofailback" : {
+ "default" : 0,
+ "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "restricted" : {
+ "default" : 0,
+ "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>",
+ "verbose_description" : "Resources bound to restricted groups may only run on nodes defined by the group. The resource will be placed in the stopped state if no group node member is online. Resources on unrestricted groups may run on any cluster node if all group members are offline, but they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with only one member."
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
},
- "zstd" : {
- "default" : 1,
- "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer>"
- }
+ "leaf" : 1,
+ "path" : "/cluster/ha/groups/{group}",
+ "text" : "{group}"
}
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ],
- "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
- },
- "protected" : 1,
- "returns" : {
- "type" : "null"
- }
- }
- },
- "leaf" : 0,
- "path" : "/cluster/backup",
- "text" : "backup"
- },
- {
- "children" : [
- {
+ ],
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "Shows all guests which are not covered by any backup job.",
+ "description" : "Get HA groups.",
"method" : "GET",
- "name" : "get_guests_not_in_backup",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0
},
]
]
},
- "protected" : 1,
"returns" : {
- "description" : "Contains the guest objects.",
"items" : {
"properties" : {
- "name" : {
- "description" : "Name of the guest",
- "optional" : 1,
- "type" : "string"
- },
- "type" : {
- "description" : "Type of the guest.",
- "enum" : [
- "qemu",
- "lxc"
- ],
+ "group" : {
"type" : "string"
- },
- "vmid" : {
- "description" : "VMID of the guest.",
- "type" : "integer"
}
},
"type" : "object"
},
+ "links" : [
+ {
+ "href" : "{group}",
+ "rel" : "child"
+ }
+ ],
"type" : "array"
}
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create a new HA group.",
+ "method" : "POST",
+ "name" : "create",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "comment" : {
+ "description" : "Description.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "group" : {
+ "description" : "The HA group identifier.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "nodes" : {
+ "description" : "List of cluster node names with optional priority.",
+ "format" : "pve-ha-group-node-list",
+ "optional" : 0,
+ "type" : "string",
+ "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
+ "verbose_description" : "List of cluster node members, where a priority can be given to each node. A resource bound to a group will run on the available nodes with the highest priority. If there are more nodes in the highest priority class, the services will get distributed to those nodes. The priorities have a relative meaning only."
+ },
+ "nofailback" : {
+ "default" : 0,
+ "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "restricted" : {
+ "default" : 0,
+ "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>",
+ "verbose_description" : "Resources bound to restricted groups may only run on nodes defined by the group. The resource will be placed in the stopped state if no group node member is online. Resources on unrestricted groups may run on any cluster node if all group members are offline, but they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with only one member."
+ },
+ "type" : {
+ "description" : "Group type.",
+ "enum" : [
+ "group"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Console"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
}
},
- "leaf" : 1,
- "path" : "/cluster/backup-info/not-backed-up",
- "text" : "not-backed-up"
+ "leaf" : 0,
+ "path" : "/cluster/ha/groups",
+ "text" : "groups"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get HA manger status.",
+ "method" : "GET",
+ "name" : "status",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "crm_state" : {
+ "description" : "For type 'service'. Service state as seen by the CRM.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "id" : {
+ "description" : "Status entry ID (quorum, master, lrm:<node>, service:<sid>).",
+ "type" : "string"
+ },
+ "max_relocate" : {
+ "description" : "For type 'service'.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "max_restart" : {
+ "description" : "For type 'service'.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "node" : {
+ "description" : "Node associated to status entry.",
+ "type" : "string"
+ },
+ "quorate" : {
+ "description" : "For type 'quorum'. Whether the cluster is quorate or not.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "request_state" : {
+ "description" : "For type 'service'. Requested service state.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "sid" : {
+ "description" : "For type 'service'. Service ID.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "state" : {
+ "description" : "For type 'service'. Verbose service state.",
+ "optional" : 1,
+ "type" : "string"
+ },
+ "status" : {
+ "description" : "Status of the entry (value depends on type).",
+ "type" : "string"
+ },
+ "timestamp" : {
+ "description" : "For type 'lrm','master'. Timestamp of the status information.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "type" : {
+ "description" : "Type of status entry.",
+ "enum" : [
+ "quorum",
+ "master",
+ "lrm",
+ "service"
+ ]
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ha/status/current",
+ "text" : "current"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get full HA manger status, including LRM status.",
+ "method" : "GET",
+ "name" : "manager_status",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "returns" : {
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ha/status/manager_status",
+ "text" : "manager_status"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Directory index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/ha/status",
+ "text" : "status"
}
],
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "Index for backup info related endpoints",
+ "description" : "Directory index.",
"method" : "GET",
"name" : "index",
"parameters" : {
"additionalProperties" : 0
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
"returns" : {
- "description" : "Directory index.",
"items" : {
"properties" : {
- "subdir" : {
- "description" : "API sub-directory endpoint",
+ "id" : {
"type" : "string"
}
},
},
"links" : [
{
- "href" : "{subdir}",
+ "href" : "{id}",
"rel" : "child"
}
],
}
},
"leaf" : 0,
- "path" : "/cluster/backup-info",
- "text" : "backup-info"
+ "path" : "/cluster/ha",
+ "text" : "ha"
},
{
"children" : [
{
"children" : [
{
- "children" : [
- {
- "info" : {
- "POST" : {
- "allowtoken" : 1,
- "description" : "Request resource migration (online) to another node.",
- "method" : "POST",
- "name" : "migrate",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "Target node.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- },
- "sid" : {
- "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "format" : "pve-ha-resource-or-vm-id",
- "type" : "string",
- "typetext" : "<type>:<name>"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Console"
- ]
- ]
- },
- "protected" : 1,
- "returns" : {
- "type" : "null"
- }
- }
- },
- "leaf" : 1,
- "path" : "/cluster/ha/resources/{sid}/migrate",
- "text" : "migrate"
- },
- {
- "info" : {
- "POST" : {
- "allowtoken" : 1,
- "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.",
- "method" : "POST",
- "name" : "relocate",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "Target node.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- },
- "sid" : {
- "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "format" : "pve-ha-resource-or-vm-id",
- "type" : "string",
- "typetext" : "<type>:<name>"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Console"
- ]
- ]
- },
- "protected" : 1,
- "returns" : {
- "type" : "null"
- }
- }
- },
- "leaf" : 1,
- "path" : "/cluster/ha/resources/{sid}/relocate",
- "text" : "relocate"
- }
- ],
"info" : {
"DELETE" : {
"allowtoken" : 1,
- "description" : "Delete resource configuration.",
+ "description" : "Delete ACME plugin configuration.",
"method" : "DELETE",
- "name" : "delete",
+ "name" : "delete_plugin",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "sid" : {
- "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "format" : "pve-ha-resource-or-vm-id",
+ "id" : {
+ "description" : "Unique identifier for ACME plugin instance.",
+ "format" : "pve-configid",
"type" : "string",
- "typetext" : "<type>:<name>"
+ "typetext" : "<string>"
}
}
},
"perm",
"/",
[
- "Sys.Console"
+ "Sys.Modify"
]
]
},
},
"GET" : {
"allowtoken" : 1,
- "description" : "Read resource configuration.",
+ "description" : "Get ACME plugin configuration.",
"method" : "GET",
- "name" : "read",
+ "name" : "get_plugin_config",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "sid" : {
- "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "format" : "pve-ha-resource-or-vm-id",
+ "id" : {
+ "description" : "Unique identifier for ACME plugin instance.",
+ "format" : "pve-configid",
"type" : "string",
- "typetext" : "<type>:<name>"
+ "typetext" : "<string>"
}
}
},
"perm",
"/",
[
- "Sys.Audit"
+ "Sys.Modify"
]
]
},
+ "protected" : 1,
"returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update ACME plugin configuration.",
+ "method" : "PUT",
+ "name" : "update_plugin",
+ "parameters" : {
+ "additionalProperties" : 0,
"properties" : {
- "comment" : {
- "description" : "Description.",
- "optional" : 1,
- "type" : "string"
- },
- "digest" : {
- "description" : "Can be used to prevent concurrent modifications.",
- "type" : "string"
- },
- "group" : {
- "description" : "The HA group identifier.",
- "format" : "pve-configid",
- "optional" : 1,
- "type" : "string"
- },
- "max_relocate" : {
- "description" : "Maximal number of service relocate tries when a service failes to start.",
- "optional" : 1,
- "type" : "integer"
- },
- "max_restart" : {
- "description" : "Maximal number of tries to restart the service on a node after its start failed.",
- "optional" : 1,
- "type" : "integer"
- },
- "sid" : {
- "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "format" : "pve-ha-resource-or-vm-id",
- "type" : "string",
- "typetext" : "<type>:<name>"
- },
- "state" : {
- "description" : "Requested resource state.",
+ "api" : {
+ "description" : "API plugin name",
"enum" : [
- "started",
- "stopped",
- "enabled",
- "disabled",
- "ignored"
+ "1984hosting",
+ "acmedns",
+ "acmeproxy",
+ "active24",
+ "ad",
+ "ali",
+ "anx",
+ "artfiles",
+ "arvan",
+ "aurora",
+ "autodns",
+ "aws",
+ "azion",
+ "azure",
+ "bookmyname",
+ "bunny",
+ "cf",
+ "clouddns",
+ "cloudns",
+ "cn",
+ "conoha",
+ "constellix",
+ "cpanel",
+ "curanet",
+ "cyon",
+ "da",
+ "ddnss",
+ "desec",
+ "df",
+ "dgon",
+ "dnsexit",
+ "dnshome",
+ "dnsimple",
+ "dnsservices",
+ "do",
+ "doapi",
+ "domeneshop",
+ "dp",
+ "dpi",
+ "dreamhost",
+ "duckdns",
+ "durabledns",
+ "dyn",
+ "dynu",
+ "dynv6",
+ "easydns",
+ "edgedns",
+ "euserv",
+ "exoscale",
+ "fornex",
+ "freedns",
+ "gandi_livedns",
+ "gcloud",
+ "gcore",
+ "gd",
+ "geoscaling",
+ "googledomains",
+ "he",
+ "hetzner",
+ "hexonet",
+ "hostingde",
+ "huaweicloud",
+ "infoblox",
+ "infomaniak",
+ "internetbs",
+ "inwx",
+ "ionos",
+ "ipv64",
+ "ispconfig",
+ "jd",
+ "joker",
+ "kappernet",
+ "kas",
+ "kinghost",
+ "knot",
+ "la",
+ "leaseweb",
+ "lexicon",
+ "linode",
+ "linode_v4",
+ "loopia",
+ "lua",
+ "maradns",
+ "me",
+ "miab",
+ "misaka",
+ "myapi",
+ "mydevil",
+ "mydnsjp",
+ "mythic_beasts",
+ "namecheap",
+ "namecom",
+ "namesilo",
+ "nanelo",
+ "nederhost",
+ "neodigit",
+ "netcup",
+ "netlify",
+ "nic",
+ "njalla",
+ "nm",
+ "nsd",
+ "nsone",
+ "nsupdate",
+ "nw",
+ "oci",
+ "one",
+ "online",
+ "openprovider",
+ "openstack",
+ "opnsense",
+ "ovh",
+ "pdns",
+ "pleskxml",
+ "pointhq",
+ "porkbun",
+ "rackcorp",
+ "rackspace",
+ "rage4",
+ "rcode0",
+ "regru",
+ "scaleway",
+ "schlundtech",
+ "selectel",
+ "selfhost",
+ "servercow",
+ "simply",
+ "tele3",
+ "tencent",
+ "transip",
+ "udr",
+ "ultra",
+ "unoeuro",
+ "variomedia",
+ "veesp",
+ "vercel",
+ "vscale",
+ "vultr",
+ "websupport",
+ "world4you",
+ "yandex",
+ "yc",
+ "zilore",
+ "zone",
+ "zonomi"
],
"optional" : 1,
"type" : "string"
},
- "type" : {
- "description" : "The type of the resources.",
- "type" : "string"
- }
- },
- "type" : "object"
- }
- },
- "PUT" : {
- "allowtoken" : 1,
- "description" : "Update resource configuration.",
- "method" : "PUT",
- "name" : "update",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "comment" : {
- "description" : "Description.",
- "maxLength" : 4096,
+ "data" : {
+ "description" : "DNS plugin data. (base64 encoded)",
"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>"
},
- "group" : {
- "description" : "The HA group identifier.",
- "format" : "pve-configid",
+ "disable" : {
+ "description" : "Flag to disable the config.",
"optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "id" : {
+ "description" : "ACME Plugin ID name",
+ "format" : "pve-configid",
"type" : "string",
"typetext" : "<string>"
},
- "max_relocate" : {
- "default" : 1,
- "description" : "Maximal number of service relocate tries when a service failes to start.",
- "minimum" : 0,
+ "nodes" : {
+ "description" : "List of cluster node names.",
+ "format" : "pve-node-list",
"optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "max_restart" : {
- "default" : 1,
- "description" : "Maximal number of tries to restart the service on a node after its start failed.",
+ "validation-delay" : {
+ "default" : 30,
+ "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
+ "maximum" : 172800,
"minimum" : 0,
"optional" : 1,
"type" : "integer",
- "typetext" : "<integer> (0 - N)"
- },
- "sid" : {
- "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "format" : "pve-ha-resource-or-vm-id",
- "type" : "string",
- "typetext" : "<type>:<name>"
- },
- "state" : {
- "default" : "started",
- "description" : "Requested resource state.",
- "enum" : [
- "started",
- "stopped",
- "enabled",
- "disabled",
- "ignored"
- ],
- "optional" : 1,
- "type" : "string",
- "verbose_description" : "Requested resource state. The CRM reads this state and acts accordingly.\nPlease note that `enabled` is just an alias for `started`.\n\n`started`;;\n\nThe CRM tries to start the resource. Service state is\nset to `started` after successful start. On node failures, or when start\nfails, it tries to recover the resource. If everything fails, service\nstate it set to `error`.\n\n`stopped`;;\n\nThe CRM tries to keep the resource in `stopped` state, but it\nstill tries to relocate the resources on node failures.\n\n`disabled`;;\n\nThe CRM tries to put the resource in `stopped` state, but does not try\nto relocate the resources on node failures. The main purpose of this\nstate is error recovery, because it is the only way to move a resource out\nof the `error` state.\n\n`ignored`;;\n\nThe resource gets removed from the manager status and so the CRM and the LRM do\nnot touch the resource anymore. All {pve} API calls affecting this resource\nwill be executed, directly bypassing the HA stack. CRM commands will be thrown\naway while there source is in this state. The resource will not get relocated\non node failures.\n\n"
+ "typetext" : "<integer> (0 - 172800)"
}
},
"type" : "object"
"perm",
"/",
[
- "Sys.Console"
+ "Sys.Modify"
]
]
},
}
}
},
- "leaf" : 0,
- "path" : "/cluster/ha/resources/{sid}",
- "text" : "{sid}"
+ "leaf" : 1,
+ "path" : "/cluster/acme/plugins/{id}",
+ "text" : "{id}"
}
],
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "List HA resources.",
+ "description" : "ACME plugin index.",
"method" : "GET",
"name" : "index",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
"type" : {
- "description" : "Only list resources of specific type",
+ "description" : "Only list ACME plugins of a specific type",
"enum" : [
- "ct",
- "vm"
+ "dns",
+ "standalone"
],
"optional" : 1,
"type" : "string"
"perm",
"/",
[
- "Sys.Audit"
+ "Sys.Modify"
]
]
},
+ "protected" : 1,
"returns" : {
"items" : {
"properties" : {
- "sid" : {
+ "plugin" : {
+ "description" : "Unique identifier for ACME plugin instance.",
+ "format" : "pve-configid",
"type" : "string"
}
},
},
"links" : [
{
- "href" : "{sid}",
+ "href" : "{plugin}",
"rel" : "child"
}
],
},
"POST" : {
"allowtoken" : 1,
- "description" : "Create a new HA resource.",
+ "description" : "Add ACME plugin configuration.",
"method" : "POST",
- "name" : "create",
+ "name" : "add_plugin",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "comment" : {
- "description" : "Description.",
- "maxLength" : 4096,
+ "api" : {
+ "description" : "API plugin name",
+ "enum" : [
+ "1984hosting",
+ "acmedns",
+ "acmeproxy",
+ "active24",
+ "ad",
+ "ali",
+ "anx",
+ "artfiles",
+ "arvan",
+ "aurora",
+ "autodns",
+ "aws",
+ "azion",
+ "azure",
+ "bookmyname",
+ "bunny",
+ "cf",
+ "clouddns",
+ "cloudns",
+ "cn",
+ "conoha",
+ "constellix",
+ "cpanel",
+ "curanet",
+ "cyon",
+ "da",
+ "ddnss",
+ "desec",
+ "df",
+ "dgon",
+ "dnsexit",
+ "dnshome",
+ "dnsimple",
+ "dnsservices",
+ "do",
+ "doapi",
+ "domeneshop",
+ "dp",
+ "dpi",
+ "dreamhost",
+ "duckdns",
+ "durabledns",
+ "dyn",
+ "dynu",
+ "dynv6",
+ "easydns",
+ "edgedns",
+ "euserv",
+ "exoscale",
+ "fornex",
+ "freedns",
+ "gandi_livedns",
+ "gcloud",
+ "gcore",
+ "gd",
+ "geoscaling",
+ "googledomains",
+ "he",
+ "hetzner",
+ "hexonet",
+ "hostingde",
+ "huaweicloud",
+ "infoblox",
+ "infomaniak",
+ "internetbs",
+ "inwx",
+ "ionos",
+ "ipv64",
+ "ispconfig",
+ "jd",
+ "joker",
+ "kappernet",
+ "kas",
+ "kinghost",
+ "knot",
+ "la",
+ "leaseweb",
+ "lexicon",
+ "linode",
+ "linode_v4",
+ "loopia",
+ "lua",
+ "maradns",
+ "me",
+ "miab",
+ "misaka",
+ "myapi",
+ "mydevil",
+ "mydnsjp",
+ "mythic_beasts",
+ "namecheap",
+ "namecom",
+ "namesilo",
+ "nanelo",
+ "nederhost",
+ "neodigit",
+ "netcup",
+ "netlify",
+ "nic",
+ "njalla",
+ "nm",
+ "nsd",
+ "nsone",
+ "nsupdate",
+ "nw",
+ "oci",
+ "one",
+ "online",
+ "openprovider",
+ "openstack",
+ "opnsense",
+ "ovh",
+ "pdns",
+ "pleskxml",
+ "pointhq",
+ "porkbun",
+ "rackcorp",
+ "rackspace",
+ "rage4",
+ "rcode0",
+ "regru",
+ "scaleway",
+ "schlundtech",
+ "selectel",
+ "selfhost",
+ "servercow",
+ "simply",
+ "tele3",
+ "tencent",
+ "transip",
+ "udr",
+ "ultra",
+ "unoeuro",
+ "variomedia",
+ "veesp",
+ "vercel",
+ "vscale",
+ "vultr",
+ "websupport",
+ "world4you",
+ "yandex",
+ "yc",
+ "zilore",
+ "zone",
+ "zonomi"
+ ],
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "type" : "string"
},
- "group" : {
- "description" : "The HA group identifier.",
- "format" : "pve-configid",
+ "data" : {
+ "description" : "DNS plugin data. (base64 encoded)",
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
- "max_relocate" : {
- "default" : 1,
- "description" : "Maximal number of service relocate tries when a service failes to start.",
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
- },
- "max_restart" : {
- "default" : 1,
- "description" : "Maximal number of tries to restart the service on a node after its start failed.",
- "minimum" : 0,
+ "disable" : {
+ "description" : "Flag to disable the config.",
"optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - N)"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "sid" : {
- "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
- "format" : "pve-ha-resource-or-vm-id",
+ "id" : {
+ "description" : "ACME Plugin ID name",
+ "format" : "pve-configid",
"type" : "string",
- "typetext" : "<type>:<name>"
+ "typetext" : "<string>"
},
- "state" : {
- "default" : "started",
- "description" : "Requested resource state.",
- "enum" : [
- "started",
- "stopped",
- "enabled",
- "disabled",
- "ignored"
- ],
+ "nodes" : {
+ "description" : "List of cluster node names.",
+ "format" : "pve-node-list",
"optional" : 1,
"type" : "string",
- "verbose_description" : "Requested resource state. The CRM reads this state and acts accordingly.\nPlease note that `enabled` is just an alias for `started`.\n\n`started`;;\n\nThe CRM tries to start the resource. Service state is\nset to `started` after successful start. On node failures, or when start\nfails, it tries to recover the resource. If everything fails, service\nstate it set to `error`.\n\n`stopped`;;\n\nThe CRM tries to keep the resource in `stopped` state, but it\nstill tries to relocate the resources on node failures.\n\n`disabled`;;\n\nThe CRM tries to put the resource in `stopped` state, but does not try\nto relocate the resources on node failures. The main purpose of this\nstate is error recovery, because it is the only way to move a resource out\nof the `error` state.\n\n`ignored`;;\n\nThe resource gets removed from the manager status and so the CRM and the LRM do\nnot touch the resource anymore. All {pve} API calls affecting this resource\nwill be executed, directly bypassing the HA stack. CRM commands will be thrown\naway while there source is in this state. The resource will not get relocated\non node failures.\n\n"
+ "typetext" : "<string>"
},
"type" : {
- "description" : "Resource type.",
+ "description" : "ACME challenge type.",
"enum" : [
- "ct",
- "vm"
+ "dns",
+ "standalone"
],
- "optional" : 1,
"type" : "string"
+ },
+ "validation-delay" : {
+ "default" : 30,
+ "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
+ "maximum" : 172800,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 172800)"
}
},
"type" : "object"
"perm",
"/",
[
- "Sys.Console"
+ "Sys.Modify"
]
]
},
}
},
"leaf" : 0,
- "path" : "/cluster/ha/resources",
- "text" : "resources"
+ "path" : "/cluster/acme/plugins",
+ "text" : "plugins"
},
{
"children" : [
"info" : {
"DELETE" : {
"allowtoken" : 1,
- "description" : "Delete ha group configuration.",
+ "description" : "Deactivate existing ACME account at CA.",
"method" : "DELETE",
- "name" : "delete",
+ "name" : "deactivate_account",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "group" : {
- "description" : "The HA group identifier.",
+ "name" : {
+ "default" : "default",
+ "description" : "ACME account config file name.",
"format" : "pve-configid",
+ "format_description" : "name",
+ "optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<name>"
}
}
},
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Console"
- ]
- ]
- },
"protected" : 1,
"returns" : {
- "type" : "null"
+ "type" : "string"
}
},
"GET" : {
"allowtoken" : 1,
- "description" : "Read ha group configuration.",
+ "description" : "Return existing ACME account information.",
"method" : "GET",
- "name" : "read",
+ "name" : "get_account",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "group" : {
- "description" : "The HA group identifier.",
+ "name" : {
+ "default" : "default",
+ "description" : "ACME account config file name.",
"format" : "pve-configid",
+ "format_description" : "name",
+ "optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<name>"
}
}
},
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "returns" : {}
+ "protected" : 1,
+ "returns" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "account" : {
+ "optional" : 1,
+ "renderer" : "yaml",
+ "type" : "object"
+ },
+ "directory" : {
+ "description" : "URL of ACME CA directory endpoint.",
+ "optional" : 1,
+ "pattern" : "^https?://.*",
+ "type" : "string"
+ },
+ "location" : {
+ "optional" : 1,
+ "type" : "string"
+ },
+ "tos" : {
+ "optional" : 1,
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
},
"PUT" : {
"allowtoken" : 1,
- "description" : "Update ha group configuration.",
+ "description" : "Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.",
"method" : "PUT",
- "name" : "update",
+ "name" : "update_account",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "comment" : {
- "description" : "Description.",
- "maxLength" : 4096,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list",
- "maxLength" : 4096,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "contact" : {
+ "description" : "Contact email addresses.",
+ "format" : "email-list",
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
- "group" : {
- "description" : "The HA group identifier.",
+ "name" : {
+ "default" : "default",
+ "description" : "ACME account config file name.",
"format" : "pve-configid",
- "type" : "string",
- "typetext" : "<string>"
- },
- "nodes" : {
- "description" : "List of cluster node names with optional priority.",
- "format" : "pve-ha-group-node-list",
+ "format_description" : "name",
"optional" : 1,
"type" : "string",
- "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
- "verbose_description" : "List of cluster node members, where a priority can be given to each node. A resource bound to a group will run on the available nodes with the highest priority. If there are more nodes in the highest priority class, the services will get distributed to those nodes. The priorities have a relative meaning only."
- },
- "nofailback" : {
- "default" : 0,
- "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "restricted" : {
- "default" : 0,
- "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>",
- "verbose_description" : "Resources bound to restricted groups may only run on nodes defined by the group. The resource will be placed in the stopped state if no group node member is online. Resources on unrestricted groups may run on any cluster node if all group members are offline, but they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with only one member."
- }
- },
- "type" : "object"
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Console"
- ]
- ]
+ "typetext" : "<name>"
+ }
+ }
},
"protected" : 1,
"returns" : {
- "type" : "null"
+ "type" : "string"
}
}
},
"leaf" : 1,
- "path" : "/cluster/ha/groups/{group}",
- "text" : "{group}"
+ "path" : "/cluster/acme/account/{name}",
+ "text" : "{name}"
}
],
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "Get HA groups.",
+ "description" : "ACMEAccount index.",
"method" : "GET",
- "name" : "index",
+ "name" : "account_index",
"parameters" : {
"additionalProperties" : 0
},
"permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
+ "user" : "all"
},
+ "protected" : 1,
"returns" : {
"items" : {
- "properties" : {
- "group" : {
- "type" : "string"
- }
- },
+ "properties" : {},
"type" : "object"
},
"links" : [
{
- "href" : "{group}",
+ "href" : "{name}",
"rel" : "child"
}
],
},
"POST" : {
"allowtoken" : 1,
- "description" : "Create a new HA group.",
+ "description" : "Register a new ACME account with CA.",
"method" : "POST",
- "name" : "create",
+ "name" : "register_account",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "comment" : {
- "description" : "Description.",
- "maxLength" : 4096,
- "optional" : 1,
+ "contact" : {
+ "description" : "Contact email addresses.",
+ "format" : "email-list",
"type" : "string",
"typetext" : "<string>"
},
- "group" : {
- "description" : "The HA group identifier.",
- "format" : "pve-configid",
+ "directory" : {
+ "default" : "https://acme-v02.api.letsencrypt.org/directory",
+ "description" : "URL of ACME CA directory endpoint.",
+ "optional" : 1,
+ "pattern" : "^https?://.*",
+ "type" : "string"
+ },
+ "eab-hmac-key" : {
+ "description" : "HMAC key for External Account Binding.",
+ "optional" : 1,
+ "requires" : "eab-kid",
"type" : "string",
"typetext" : "<string>"
},
- "nodes" : {
- "description" : "List of cluster node names with optional priority.",
- "format" : "pve-ha-group-node-list",
- "optional" : 0,
+ "eab-kid" : {
+ "description" : "Key Identifier for External Account Binding.",
+ "optional" : 1,
+ "requires" : "eab-hmac-key",
"type" : "string",
- "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
- "verbose_description" : "List of cluster node members, where a priority can be given to each node. A resource bound to a group will run on the available nodes with the highest priority. If there are more nodes in the highest priority class, the services will get distributed to those nodes. The priorities have a relative meaning only."
+ "typetext" : "<string>"
},
- "nofailback" : {
- "default" : 0,
- "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
+ "name" : {
+ "default" : "default",
+ "description" : "ACME account config file name.",
+ "format" : "pve-configid",
+ "format_description" : "name",
"optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "type" : "string",
+ "typetext" : "<name>"
},
- "restricted" : {
- "default" : 0,
- "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
+ "tos_url" : {
+ "description" : "URL of CA TermsOfService - setting this indicates agreement.",
"optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>",
- "verbose_description" : "Resources bound to restricted groups may only run on nodes defined by the group. The resource will be placed in the stopped state if no group node member is online. Resources on unrestricted groups may run on any cluster node if all group members are offline, but they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with only one member."
- },
- "type" : {
- "description" : "Group type.",
- "enum" : [
- "group"
- ],
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/acme/account",
+ "text" : "account"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Retrieve ACME TermsOfService URL from CA. Deprecated, please use /cluster/acme/meta.",
+ "method" : "GET",
+ "name" : "get_tos",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "directory" : {
+ "default" : "https://acme-v02.api.letsencrypt.org/directory",
+ "description" : "URL of ACME CA directory endpoint.",
"optional" : 1,
+ "pattern" : "^https?://.*",
"type" : "string"
}
- },
- "type" : "object"
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "description" : "ACME TermsOfService URL.",
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/acme/tos",
+ "text" : "tos"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "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.Console"
+ "Sys.Audit"
]
]
},
- "protected" : 1,
"returns" : {
- "type" : "null"
+ "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" : 0,
- "path" : "/cluster/ha/groups",
- "text" : "groups"
+ "leaf" : 1,
+ "path" : "/cluster/acme/meta",
+ "text" : "meta"
},
{
- "children" : [
- {
- "info" : {
- "GET" : {
- "allowtoken" : 1,
- "description" : "Get HA manger status.",
- "method" : "GET",
- "name" : "status",
- "parameters" : {
- "additionalProperties" : 0
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get named known ACME directory endpoints.",
+ "method" : "GET",
+ "name" : "get_directories",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "name" : {
+ "type" : "string"
+ },
+ "url" : {
+ "description" : "URL of ACME CA directory endpoint.",
+ "pattern" : "^https?://.*",
+ "type" : "string"
+ }
},
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/acme/directories",
+ "text" : "directories"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get schema of ACME challenge types.",
+ "method" : "GET",
+ "name" : "challengeschema",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "Human readable name, falls back to id",
+ "type" : "string"
+ },
+ "schema" : {
+ "type" : "object"
+ },
+ "type" : {
+ "type" : "string"
+ }
},
- "returns" : {
- "type" : "array"
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/acme/challenge-schema",
+ "text" : "challenge-schema"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "ACMEAccount index.",
+ "method" : "GET",
+ "name" : "index",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/acme",
+ "text" : "acme"
+ },
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get ceph metadata.",
+ "method" : "GET",
+ "name" : "metadata",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "scope" : {
+ "default" : "all",
+ "enum" : [
+ "all",
+ "versions"
+ ],
+ "optional" : 1,
+ "type" : "string"
}
}
},
- "leaf" : 1,
- "path" : "/cluster/ha/status/current",
- "text" : "current"
- },
- {
- "info" : {
- "GET" : {
- "allowtoken" : 1,
- "description" : "Get full HA manger status, including LRM status.",
- "method" : "GET",
- "name" : "manager_status",
- "parameters" : {
- "additionalProperties" : 0
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "description" : "Items for each type of service containing objects for each instance.",
+ "properties" : {
+ "mds" : {
+ "description" : "Metadata servers configured in the cluster and their properties.",
+ "properties" : {
+ "{id}" : {
+ "description" : "Useful properties are listed, but not the full list.",
+ "properties" : {
+ "addr" : {
+ "description" : "Bind addresses and ports.",
+ "type" : "string"
+ },
+ "ceph_release" : {
+ "description" : "Ceph release codename currently used.",
+ "type" : "string"
+ },
+ "ceph_version" : {
+ "description" : "Version info currently used by the service.",
+ "type" : "string"
+ },
+ "ceph_version_short" : {
+ "description" : "Short version (numerical) info currently used by the service.",
+ "type" : "string"
+ },
+ "hostname" : {
+ "description" : "Hostname on which the service is running.",
+ "type" : "string"
+ },
+ "mem_swap_kb" : {
+ "description" : "Memory of the service currently in swap.",
+ "type" : "integer"
+ },
+ "mem_total_kb" : {
+ "description" : "Memory consumption of the service.",
+ "type" : "integer"
+ },
+ "name" : {
+ "description" : "Name of the service instance.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "type" : "object"
},
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
+ "mgr" : {
+ "description" : "Managers configured in the cluster and their properties.",
+ "properties" : {
+ "{id}" : {
+ "description" : "Useful properties are listed, but not the full list.",
+ "properties" : {
+ "addr" : {
+ "description" : "Bind address",
+ "type" : "string"
+ },
+ "ceph_release" : {
+ "description" : "Ceph release codename currently used.",
+ "type" : "string"
+ },
+ "ceph_version" : {
+ "description" : "Version info currently used by the service.",
+ "type" : "string"
+ },
+ "ceph_version_short" : {
+ "description" : "Short version (numerical) info currently used by the service.",
+ "type" : "string"
+ },
+ "hostname" : {
+ "description" : "Hostname on which the service is running.",
+ "type" : "string"
+ },
+ "mem_swap_kb" : {
+ "description" : "Memory of the service currently in swap.",
+ "type" : "integer"
+ },
+ "mem_total_kb" : {
+ "description" : "Memory consumption of the service.",
+ "type" : "integer"
+ },
+ "name" : {
+ "description" : "Name of the service instance.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "type" : "object"
},
- "returns" : {
+ "mon" : {
+ "description" : "Monitors configured in the cluster and their properties.",
+ "properties" : {
+ "{id}" : {
+ "description" : "Useful properties are listed, but not the full list.",
+ "properties" : {
+ "addrs" : {
+ "description" : "Bind addresses and ports.",
+ "type" : "string"
+ },
+ "ceph_release" : {
+ "description" : "Ceph release codename currently used.",
+ "type" : "string"
+ },
+ "ceph_version" : {
+ "description" : "Version info currently used by the service.",
+ "type" : "string"
+ },
+ "ceph_version_short" : {
+ "description" : "Short version (numerical) info currently used by the service.",
+ "type" : "string"
+ },
+ "hostname" : {
+ "description" : "Hostname on which the service is running.",
+ "type" : "string"
+ },
+ "mem_swap_kb" : {
+ "description" : "Memory of the service currently in swap.",
+ "type" : "integer"
+ },
+ "mem_total_kb" : {
+ "description" : "Memory consumption of the service.",
+ "type" : "integer"
+ },
+ "name" : {
+ "description" : "Name of the service instance.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "type" : "object"
+ },
+ "node" : {
+ "description" : "Ceph version installed on the nodes.",
+ "properties" : {
+ "{node}" : {
+ "properties" : {
+ "buildcommit" : {
+ "description" : "GIT commit used for the build.",
+ "type" : "string"
+ },
+ "version" : {
+ "description" : "Version info.",
+ "properties" : {
+ "parts" : {
+ "description" : "major, minor & patch",
+ "type" : "array"
+ },
+ "str" : {
+ "description" : "Version as single string.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "type" : "object"
+ }
+ },
"type" : "object"
+ },
+ "osd" : {
+ "description" : "OSDs configured in the cluster and their properties.",
+ "properties" : {
+ "{id}" : {
+ "description" : "Useful properties are listed, but not the full list.",
+ "properties" : {
+ "back_addr" : {
+ "description" : "Bind addresses and ports for backend inter OSD traffic.",
+ "type" : "string"
+ },
+ "ceph_release" : {
+ "description" : "Ceph release codename currently used.",
+ "type" : "string"
+ },
+ "ceph_version" : {
+ "description" : "Version info currently used by the service.",
+ "type" : "string"
+ },
+ "ceph_version_short" : {
+ "description" : "Short version (numerical) info currently used by the service.",
+ "type" : "string"
+ },
+ "device_id" : {
+ "description" : "Devices used by the OSD.",
+ "type" : "string"
+ },
+ "front_addr" : {
+ "description" : "Bind addresses and ports for frontend traffic to OSDs.",
+ "type" : "string"
+ },
+ "hostname" : {
+ "description" : "Hostname on which the service is running.",
+ "type" : "string"
+ },
+ "id" : {
+ "description" : "OSD ID.",
+ "type" : "integer"
+ },
+ "mem_swap_kb" : {
+ "description" : "Memory of the service currently in swap.",
+ "type" : "integer"
+ },
+ "mem_total_kb" : {
+ "description" : "Memory consumption of the service.",
+ "type" : "integer"
+ },
+ "osd_data" : {
+ "description" : "Path to the OSD data directory.",
+ "type" : "string"
+ },
+ "osd_objectstore" : {
+ "description" : "OSD objectstore type.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "type" : "array"
}
- }
- },
- "leaf" : 1,
- "path" : "/cluster/ha/status/manager_status",
- "text" : "manager_status"
+ },
+ "type" : "object"
+ }
}
- ],
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ceph/metadata",
+ "text" : "metadata"
+ },
+ {
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "Directory index.",
+ "description" : "Get ceph status.",
"method" : "GET",
- "name" : "index",
+ "name" : "status",
"parameters" : {
"additionalProperties" : 0
},
"permissions" : {
- "user" : "all"
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
},
+ "protected" : 1,
"returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ],
- "type" : "array"
+ "type" : "object"
}
}
},
- "leaf" : 0,
- "path" : "/cluster/ha/status",
+ "leaf" : 1,
+ "path" : "/cluster/ceph/status",
"text" : "status"
- }
- ],
- "info" : {
- "GET" : {
- "allowtoken" : 1,
- "description" : "Directory index.",
- "method" : "GET",
- "name" : "index",
- "parameters" : {
- "additionalProperties" : 0
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
- },
- "returns" : {
- "items" : {
- "properties" : {
- "id" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{id}",
- "rel" : "child"
- }
- ],
- "type" : "array"
- }
- }
- },
- "leaf" : 0,
- "path" : "/cluster/ha",
- "text" : "ha"
- },
- {
- "children" : [
+ },
{
"children" : [
{
"info" : {
- "DELETE" : {
- "allowtoken" : 1,
- "description" : "Delete ACME plugin configuration.",
- "method" : "DELETE",
- "name" : "delete_plugin",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "id" : {
- "description" : "Unique identifier for ACME plugin instance.",
- "format" : "pve-configid",
- "type" : "string",
- "typetext" : "<string>"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "returns" : {
- "type" : "null"
- }
- },
"GET" : {
"allowtoken" : 1,
- "description" : "Get ACME plugin configuration.",
+ "description" : "Get the status of a specific ceph flag.",
"method" : "GET",
- "name" : "get_plugin_config",
+ "name" : "get_flag",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "id" : {
- "description" : "Unique identifier for ACME plugin instance.",
- "format" : "pve-configid",
- "type" : "string",
- "typetext" : "<string>"
+ "flag" : {
+ "description" : "The name of the flag name to get.",
+ "enum" : [
+ "nobackfill",
+ "nodeep-scrub",
+ "nodown",
+ "noin",
+ "noout",
+ "norebalance",
+ "norecover",
+ "noscrub",
+ "notieragent",
+ "noup",
+ "pause"
+ ],
+ "type" : "string"
}
}
},
"perm",
"/",
[
- "Sys.Modify"
+ "Sys.Audit"
]
]
},
"protected" : 1,
"returns" : {
- "type" : "object"
+ "type" : "boolean"
}
},
"PUT" : {
"allowtoken" : 1,
- "description" : "Update ACME plugin configuration.",
+ "description" : "Set or clear (unset) a specific ceph flag",
"method" : "PUT",
- "name" : "update_plugin",
+ "name" : "update_flag",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "api" : {
- "description" : "API plugin name",
+ "flag" : {
+ "description" : "The ceph flag to update",
"enum" : [
- "1984hosting",
- "acmedns",
- "acmeproxy",
- "active24",
- "ad",
- "ali",
- "anx",
- "arvan",
- "aurora",
- "autodns",
- "aws",
- "azion",
- "azure",
- "cf",
- "clouddns",
- "cloudns",
- "cn",
- "conoha",
- "constellix",
- "cx",
- "cyon",
- "da",
- "ddnss",
- "desec",
- "df",
- "dgon",
- "dnsimple",
- "do",
- "doapi",
- "domeneshop",
- "dp",
- "dpi",
- "dreamhost",
- "duckdns",
- "durabledns",
- "dyn",
- "dynu",
- "dynv6",
- "easydns",
- "edgedns",
- "euserv",
- "exoscale",
- "freedns",
- "gandi_livedns",
- "gcloud",
- "gd",
- "gdnsdk",
- "he",
- "hetzner",
- "hexonet",
- "hostingde",
- "huaweicloud",
- "infoblox",
- "infomaniak",
- "internetbs",
- "inwx",
- "ionos",
- "ispconfig",
- "jd",
- "joker",
- "kappernet",
- "kas",
- "kinghost",
- "knot",
- "leaseweb",
- "lexicon",
- "linode",
- "linode_v4",
- "loopia",
- "lua",
- "maradns",
- "me",
- "miab",
- "misaka",
- "myapi",
- "mydevil",
- "mydnsjp",
- "namecheap",
- "namecom",
- "namesilo",
- "nederhost",
- "neodigit",
- "netcup",
- "netlify",
- "nic",
- "njalla",
- "nm",
- "nsd",
- "nsone",
- "nsupdate",
- "nw",
- "oci",
- "one",
- "online",
- "openprovider",
- "openstack",
- "opnsense",
- "ovh",
- "pdns",
- "pleskxml",
- "pointhq",
- "porkbun",
- "rackcorp",
- "rackspace",
- "rcode0",
- "regru",
- "scaleway",
- "schlundtech",
- "selectel",
- "servercow",
- "simply",
- "tele3",
- "transip",
- "ultra",
- "unoeuro",
- "variomedia",
- "veesp",
- "vscale",
- "vultr",
- "websupport",
- "world4you",
- "yandex",
- "zilore",
- "zone",
- "zonomi"
+ "nobackfill",
+ "nodeep-scrub",
+ "nodown",
+ "noin",
+ "noout",
+ "norebalance",
+ "norecover",
+ "noscrub",
+ "notieragent",
+ "noup",
+ "pause"
],
- "optional" : 1,
"type" : "string"
},
- "data" : {
- "description" : "DNS plugin data. (base64 encoded)",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "delete" : {
- "description" : "A list of settings you want to delete.",
- "format" : "pve-configid-list",
- "maxLength" : 4096,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "disable" : {
- "description" : "Flag to disable the config.",
- "optional" : 1,
+ "value" : {
+ "description" : "The new value of the flag",
"type" : "boolean",
"typetext" : "<boolean>"
- },
- "id" : {
- "description" : "ACME Plugin ID name",
- "format" : "pve-configid",
- "type" : "string",
- "typetext" : "<string>"
- },
- "nodes" : {
- "description" : "List of cluster node names.",
- "format" : "pve-node-list",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- },
- "validation-delay" : {
- "default" : 30,
- "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
- "maximum" : 172800,
- "minimum" : 0,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - 172800)"
}
- },
- "type" : "object"
+ }
},
"permissions" : {
"check" : [
"returns" : {
"type" : "null"
}
- }
- },
- "leaf" : 1,
- "path" : "/cluster/acme/plugins/{id}",
- "text" : "{id}"
- }
- ],
- "info" : {
- "GET" : {
- "allowtoken" : 1,
- "description" : "ACME plugin index.",
- "method" : "GET",
- "name" : "index",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "type" : {
- "description" : "Only list ACME plugins of a specific type",
- "enum" : [
- "dns",
- "standalone"
- ],
- "optional" : 1,
- "type" : "string"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Modify"
- ]
- ]
- },
- "protected" : 1,
- "returns" : {
- "items" : {
- "properties" : {
- "plugin" : {
- "description" : "Unique identifier for ACME plugin instance.",
- "format" : "pve-configid",
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{plugin}",
- "rel" : "child"
- }
- ],
- "type" : "array"
- }
- },
- "POST" : {
- "allowtoken" : 1,
- "description" : "Add ACME plugin configuration.",
- "method" : "POST",
- "name" : "add_plugin",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "api" : {
- "description" : "API plugin name",
- "enum" : [
- "1984hosting",
- "acmedns",
- "acmeproxy",
- "active24",
- "ad",
- "ali",
- "anx",
- "arvan",
- "aurora",
- "autodns",
- "aws",
- "azion",
- "azure",
- "cf",
- "clouddns",
- "cloudns",
- "cn",
- "conoha",
- "constellix",
- "cx",
- "cyon",
- "da",
- "ddnss",
- "desec",
- "df",
- "dgon",
- "dnsimple",
- "do",
- "doapi",
- "domeneshop",
- "dp",
- "dpi",
- "dreamhost",
- "duckdns",
- "durabledns",
- "dyn",
- "dynu",
- "dynv6",
- "easydns",
- "edgedns",
- "euserv",
- "exoscale",
- "freedns",
- "gandi_livedns",
- "gcloud",
- "gd",
- "gdnsdk",
- "he",
- "hetzner",
- "hexonet",
- "hostingde",
- "huaweicloud",
- "infoblox",
- "infomaniak",
- "internetbs",
- "inwx",
- "ionos",
- "ispconfig",
- "jd",
- "joker",
- "kappernet",
- "kas",
- "kinghost",
- "knot",
- "leaseweb",
- "lexicon",
- "linode",
- "linode_v4",
- "loopia",
- "lua",
- "maradns",
- "me",
- "miab",
- "misaka",
- "myapi",
- "mydevil",
- "mydnsjp",
- "namecheap",
- "namecom",
- "namesilo",
- "nederhost",
- "neodigit",
- "netcup",
- "netlify",
- "nic",
- "njalla",
- "nm",
- "nsd",
- "nsone",
- "nsupdate",
- "nw",
- "oci",
- "one",
- "online",
- "openprovider",
- "openstack",
- "opnsense",
- "ovh",
- "pdns",
- "pleskxml",
- "pointhq",
- "porkbun",
- "rackcorp",
- "rackspace",
- "rcode0",
- "regru",
- "scaleway",
- "schlundtech",
- "selectel",
- "servercow",
- "simply",
- "tele3",
- "transip",
- "ultra",
- "unoeuro",
- "variomedia",
- "veesp",
- "vscale",
- "vultr",
- "websupport",
- "world4you",
- "yandex",
- "zilore",
- "zone",
- "zonomi"
- ],
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/ceph/flags/{flag}",
+ "text" : "{flag}"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "get the status of all ceph flags",
+ "method" : "GET",
+ "name" : "get_all_flags",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "items" : {
+ "additionalProperties" : 1,
+ "properties" : {
+ "description" : {
+ "description" : "Flag description.",
+ "type" : "string"
+ },
+ "name" : {
+ "description" : "Flag name.",
+ "enum" : [
+ "nobackfill",
+ "nodeep-scrub",
+ "nodown",
+ "noin",
+ "noout",
+ "norebalance",
+ "norecover",
+ "noscrub",
+ "notieragent",
+ "noup",
+ "pause"
+ ],
+ "type" : "string"
+ },
+ "value" : {
+ "description" : "Flag value.",
+ "type" : "boolean"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Set/Unset multiple ceph flags at once.",
+ "method" : "PUT",
+ "name" : "set_flags",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "nobackfill" : {
+ "description" : "Backfilling of PGs is suspended.",
"optional" : 1,
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "data" : {
- "description" : "DNS plugin data. (base64 encoded)",
+ "nodeep-scrub" : {
+ "description" : "Deep Scrubbing is disabled.",
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "disable" : {
- "description" : "Flag to disable the config.",
+ "nodown" : {
+ "description" : "OSD failure reports are being ignored, such that the monitors will not mark OSDs down.",
"optional" : 1,
"type" : "boolean",
"typetext" : "<boolean>"
},
- "id" : {
- "description" : "ACME Plugin ID name",
- "format" : "pve-configid",
- "type" : "string",
- "typetext" : "<string>"
+ "noin" : {
+ "description" : "OSDs that were previously marked out will not be marked back in when they start.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "nodes" : {
- "description" : "List of cluster node names.",
- "format" : "pve-node-list",
+ "noout" : {
+ "description" : "OSDs will not automatically be marked out after the configured interval.",
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "type" : {
- "description" : "ACME challenge type.",
- "enum" : [
- "dns",
- "standalone"
- ],
- "type" : "string"
+ "norebalance" : {
+ "description" : "Rebalancing of PGs is suspended.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "validation-delay" : {
- "default" : 30,
- "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
- "maximum" : 172800,
- "minimum" : 0,
+ "norecover" : {
+ "description" : "Recovery of PGs is suspended.",
"optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (0 - 172800)"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "noscrub" : {
+ "description" : "Scrubbing is disabled.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "notieragent" : {
+ "description" : "Cache tiering activity is suspended.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "noup" : {
+ "description" : "OSDs are not allowed to start.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "pause" : {
+ "description" : "Pauses read and writes.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
}
- },
- "type" : "object"
+ }
},
"permissions" : {
"check" : [
},
"protected" : 1,
"returns" : {
- "type" : "null"
+ "type" : "string"
}
}
},
"leaf" : 0,
- "path" : "/cluster/acme/plugins",
- "text" : "plugins"
- },
+ "path" : "/cluster/ceph/flags",
+ "text" : "flags"
+ }
+ ],
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Cluster ceph index.",
+ "method" : "GET",
+ "name" : "cephindex",
+ "parameters" : {
+ "additionalProperties" : 0
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/cluster/ceph",
+ "text" : "ceph"
+ },
+ {
+ "children" : [
{
"children" : [
{
"info" : {
"DELETE" : {
"allowtoken" : 1,
- "description" : "Deactivate existing ACME account at CA.",
+ "description" : "Delete realm-sync job definition.",
"method" : "DELETE",
- "name" : "deactivate_account",
+ "name" : "delete_job",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "name" : {
- "default" : "default",
- "description" : "ACME account config file name.",
+ "id" : {
"format" : "pve-configid",
- "format_description" : "name",
- "optional" : 1,
"type" : "string",
- "typetext" : "<name>"
+ "typetext" : "<string>"
}
}
},
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Modify"
+ ]
+ ]
+ },
"protected" : 1,
"returns" : {
- "type" : "string"
+ "type" : "null"
}
},
"GET" : {
"allowtoken" : 1,
- "description" : "Return existing ACME account information.",
+ "description" : "Read realm-sync job definition.",
"method" : "GET",
- "name" : "get_account",
+ "name" : "read_job",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "name" : {
- "default" : "default",
- "description" : "ACME account config file name.",
+ "id" : {
"format" : "pve-configid",
- "format_description" : "name",
- "optional" : 1,
"type" : "string",
- "typetext" : "<name>"
+ "typetext" : "<string>"
}
}
},
- "protected" : 1,
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
+ },
"returns" : {
+ "type" : "object"
+ }
+ },
+ "POST" : {
+ "allowtoken" : 1,
+ "description" : "Create new realm-sync job.",
+ "method" : "POST",
+ "name" : "create_job",
+ "parameters" : {
"additionalProperties" : 0,
"properties" : {
- "account" : {
+ "comment" : {
+ "description" : "Description for the Job.",
+ "maxLength" : 512,
"optional" : 1,
- "renderer" : "yaml",
- "type" : "object"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "directory" : {
- "description" : "URL of ACME CA directory endpoint.",
+ "enable-new" : {
+ "default" : "1",
+ "description" : "Enable newly synced users immediately.",
"optional" : 1,
- "pattern" : "^https?://.*",
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "location" : {
+ "enabled" : {
+ "default" : 1,
+ "description" : "Determines if the job is enabled.",
"optional" : 1,
- "type" : "string"
+ "type" : "boolean",
+ "typetext" : "<boolean>"
},
- "tos" : {
+ "id" : {
+ "description" : "The ID of the job.",
+ "format" : "pve-configid",
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "realm" : {
+ "description" : "Authentication domain ID",
+ "format" : "pve-realm",
+ "maxLength" : 32,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "remove-vanished" : {
+ "default" : "none",
+ "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync. Instead of a list it also can be 'none' (the default).",
+ "optional" : 1,
+ "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
+ "type" : "string",
+ "typetext" : "([acl];[properties];[entry])|none"
+ },
+ "schedule" : {
+ "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
+ "format" : "pve-calendar-event",
+ "maxLength" : 128,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "scope" : {
+ "description" : "Select what to sync.",
+ "enum" : [
+ "users",
+ "groups",
+ "both"
+ ],
"optional" : 1,
"type" : "string"
}
},
"type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "and",
+ [
+ "perm",
+ "/access/realm/{realm}",
+ [
+ "Realm.AllocateUser"
+ ]
+ ],
+ [
+ "perm",
+ "/access/groups",
+ [
+ "User.Modify"
+ ]
+ ]
+ ],
+ "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
}
},
"PUT" : {
"allowtoken" : 1,
- "description" : "Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.",
+ "description" : "Update realm-sync job definition.",
"method" : "PUT",
- "name" : "update_account",
+ "name" : "update_job",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "contact" : {
- "description" : "Contact email addresses.",
- "format" : "email-list",
+ "comment" : {
+ "description" : "Description for the Job.",
+ "maxLength" : 512,
"optional" : 1,
"type" : "string",
"typetext" : "<string>"
},
- "name" : {
- "default" : "default",
- "description" : "ACME account config file name.",
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "enable-new" : {
+ "default" : "1",
+ "description" : "Enable newly synced users immediately.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "enabled" : {
+ "default" : 1,
+ "description" : "Determines if the job is enabled.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "id" : {
+ "description" : "The ID of the job.",
"format" : "pve-configid",
- "format_description" : "name",
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "remove-vanished" : {
+ "default" : "none",
+ "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync. Instead of a list it also can be 'none' (the default).",
"optional" : 1,
+ "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
"type" : "string",
- "typetext" : "<name>"
+ "typetext" : "([acl];[properties];[entry])|none"
+ },
+ "schedule" : {
+ "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
+ "format" : "pve-calendar-event",
+ "maxLength" : 128,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "scope" : {
+ "description" : "Select what to sync.",
+ "enum" : [
+ "users",
+ "groups",
+ "both"
+ ],
+ "optional" : 1,
+ "type" : "string"
}
- }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "and",
+ [
+ "perm",
+ "/access/realm/{realm}",
+ [
+ "Realm.AllocateUser"
+ ]
+ ],
+ [
+ "perm",
+ "/access/groups",
+ [
+ "User.Modify"
+ ]
+ ]
+ ],
+ "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
},
"protected" : 1,
"returns" : {
- "type" : "string"
+ "type" : "null"
}
}
},
"leaf" : 1,
- "path" : "/cluster/acme/account/{name}",
- "text" : "{name}"
- }
- ],
- "info" : {
- "GET" : {
- "allowtoken" : 1,
- "description" : "ACMEAccount index.",
- "method" : "GET",
- "name" : "account_index",
- "parameters" : {
- "additionalProperties" : 0
- },
- "permissions" : {
- "user" : "all"
- },
- "protected" : 1,
- "returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ],
- "type" : "array"
- }
- },
- "POST" : {
- "allowtoken" : 1,
- "description" : "Register a new ACME account with CA.",
- "method" : "POST",
- "name" : "register_account",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "contact" : {
- "description" : "Contact email addresses.",
- "format" : "email-list",
- "type" : "string",
- "typetext" : "<string>"
- },
- "directory" : {
- "default" : "https://acme-v02.api.letsencrypt.org/directory",
- "description" : "URL of ACME CA directory endpoint.",
- "optional" : 1,
- "pattern" : "^https?://.*",
- "type" : "string"
- },
- "name" : {
- "default" : "default",
- "description" : "ACME account config file name.",
- "format" : "pve-configid",
- "format_description" : "name",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<name>"
- },
- "tos_url" : {
- "description" : "URL of CA TermsOfService - setting this indicates agreement.",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
- }
- }
- },
- "protected" : 1,
- "returns" : {
- "type" : "string"
- }
- }
- },
- "leaf" : 0,
- "path" : "/cluster/acme/account",
- "text" : "account"
- },
- {
- "info" : {
- "GET" : {
- "allowtoken" : 1,
- "description" : "Retrieve ACME TermsOfService URL from CA.",
- "method" : "GET",
- "name" : "get_tos",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "directory" : {
- "default" : "https://acme-v02.api.letsencrypt.org/directory",
- "description" : "URL of ACME CA directory endpoint.",
- "optional" : 1,
- "pattern" : "^https?://.*",
- "type" : "string"
- }
- }
- },
- "permissions" : {
- "user" : "all"
- },
- "returns" : {
- "description" : "ACME TermsOfService URL.",
- "optional" : 1,
- "type" : "string"
- }
+ "path" : "/cluster/jobs/realm-sync/{id}",
+ "text" : "{id}"
}
- },
- "leaf" : 1,
- "path" : "/cluster/acme/tos",
- "text" : "tos"
- },
- {
+ ],
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "Get named known ACME directory endpoints.",
+ "description" : "List configured realm-sync-jobs.",
"method" : "GET",
- "name" : "get_directories",
+ "name" : "syncjob_index",
"parameters" : {
"additionalProperties" : 0
},
"permissions" : {
- "user" : "all"
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ]
+ ]
},
"returns" : {
"items" : {
- "additionalProperties" : 0,
"properties" : {
- "name" : {
+ "comment" : {
+ "description" : "A comment for the job.",
+ "optional" : 1,
"type" : "string"
},
- "url" : {
- "description" : "URL of ACME CA directory endpoint.",
- "pattern" : "^https?://.*",
+ "enabled" : {
+ "description" : "If the job is enabled or not.",
+ "type" : "boolean"
+ },
+ "id" : {
+ "description" : "The ID of the entry.",
+ "type" : "string"
+ },
+ "last-run" : {
+ "description" : "Last execution time of the job in seconds since the beginning of the UNIX epoch",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "next-run" : {
+ "description" : "Next planned execution time of the job in seconds since the beginning of the UNIX epoch.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "realm" : {
+ "description" : "Authentication domain ID",
+ "format" : "pve-realm",
+ "maxLength" : 32,
+ "type" : "string"
+ },
+ "remove-vanished" : {
+ "default" : "none",
+ "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync. Instead of a list it also can be 'none' (the default).",
+ "optional" : "1",
+ "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
+ "type" : "string",
+ "typetext" : "([acl];[properties];[entry])|none"
+ },
+ "schedule" : {
+ "description" : "The configured sync schedule.",
+ "type" : "string"
+ },
+ "scope" : {
+ "description" : "Select what to sync.",
+ "enum" : [
+ "users",
+ "groups",
+ "both"
+ ],
+ "optional" : "1",
"type" : "string"
}
},
"type" : "object"
},
+ "links" : [
+ {
+ "href" : "{id}",
+ "rel" : "child"
+ }
+ ],
"type" : "array"
}
}
},
- "leaf" : 1,
- "path" : "/cluster/acme/directories",
- "text" : "directories"
+ "leaf" : 0,
+ "path" : "/cluster/jobs/realm-sync",
+ "text" : "realm-sync"
},
{
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "Get schema of ACME challenge types.",
+ "description" : "Returns a list of future schedule runtimes.",
"method" : "GET",
- "name" : "challengeschema",
+ "name" : "schedule-analyze",
"parameters" : {
- "additionalProperties" : 0
+ "additionalProperties" : 0,
+ "properties" : {
+ "iterations" : {
+ "default" : 10,
+ "description" : "Number of event-iteration to simulate and return.",
+ "maximum" : 100,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 100)"
+ },
+ "schedule" : {
+ "description" : "Job schedule. The format is a subset of `systemd` calendar events.",
+ "format" : "pve-calendar-event",
+ "maxLength" : 128,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "starttime" : {
+ "description" : "UNIX timestamp to start the calculation from. Defaults to the current time.",
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer>"
+ }
+ }
},
"permissions" : {
"user" : "all"
},
"returns" : {
+ "description" : "An array of the next <iterations> events since <starttime>.",
"items" : {
- "additionalProperties" : 0,
"properties" : {
- "id" : {
- "type" : "string"
- },
- "name" : {
- "description" : "Human readable name, falls back to id",
- "type" : "string"
- },
- "schema" : {
- "type" : "object"
+ "timestamp" : {
+ "description" : "UNIX timestamp for the run.",
+ "type" : "integer"
},
- "type" : {
+ "utc" : {
+ "description" : "UTC timestamp for the run.",
"type" : "string"
}
},
}
},
"leaf" : 1,
- "path" : "/cluster/acme/challenge-schema",
- "text" : "challenge-schema"
+ "path" : "/cluster/jobs/schedule-analyze",
+ "text" : "schedule-analyze"
}
],
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "ACMEAccount index.",
+ "description" : "Index for jobs related endpoints.",
"method" : "GET",
"name" : "index",
"parameters" : {
"user" : "all"
},
"returns" : {
+ "description" : "Directory index.",
"items" : {
- "properties" : {},
+ "properties" : {
+ "subdir" : {
+ "description" : "API sub-directory endpoint",
+ "type" : "string"
+ }
+ },
"type" : "object"
},
"links" : [
{
- "href" : "{name}",
+ "href" : "{subdir}",
"rel" : "child"
}
],
}
},
"leaf" : 0,
- "path" : "/cluster/acme",
- "text" : "acme"
+ "path" : "/cluster/jobs",
+ "text" : "jobs"
},
{
"children" : [
{
+ "children" : [
+ {
+ "info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Remove Hardware Mapping.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/mapping/pci",
+ [
+ "Mapping.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get PCI Mapping.",
+ "method" : "GET",
+ "name" : "get",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "or",
+ [
+ "perm",
+ "/mapping/pci/{id}",
+ [
+ "Mapping.Use"
+ ]
+ ],
+ [
+ "perm",
+ "/mapping/pci/{id}",
+ [
+ "Mapping.Modify"
+ ]
+ ],
+ [
+ "perm",
+ "/mapping/pci/{id}",
+ [
+ "Mapping.Audit"
+ ]
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "object"
+ }
+ },
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Update a hardware mapping.",
+ "method" : "PUT",
+ "name" : "update",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "description" : {
+ "description" : "Description of the logical PCI device.",
+ "maxLength" : 4096,
+ "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>"
+ },
+ "id" : {
+ "description" : "The ID of the logical PCI mapping.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "map" : {
+ "description" : "A list of maps for the cluster nodes.",
+ "items" : {
+ "format" : {
+ "description" : {
+ "description" : "Description of the node specific device.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "id" : {
+ "description" : "The vendor and device ID that is expected. Used for detecting hardware changes",
+ "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
+ "type" : "string"
+ },
+ "iommugroup" : {
+ "description" : "The IOMMU group in which the device is to be expected in. Used for detecting hardware changes.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "path" : {
+ "description" : "The path to the device. If the function is omitted, the whole device is mapped. In that case use the attributes of the first device. You can give multiple paths as a semicolon seperated list, the first available will then be chosen on guest start.",
+ "pattern" : "(?:[a-f0-9]{4,}:[a-f0-9]{2}:[a-f0-9]{2}(?:.[a-f0-9])?;)*[a-f0-9]{4,}:[a-f0-9]{2}:[a-f0-9]{2}(?:.[a-f0-9])?",
+ "type" : "string"
+ },
+ "subsystem-id" : {
+ "description" : "The subsystem vendor and device ID that is expected. Used for detecting hardware changes.",
+ "optional" : 1,
+ "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
+ "type" : "string"
+ }
+ },
+ "type" : "string"
+ },
+ "optional" : 1,
+ "type" : "array",
+ "typetext" : "<array>"
+ },
+ "mdev" : {
+ "default" : 0,
+ "description" : "Marks the device(s) as being capable of providing mediated devices.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ },
+ "type" : "object"
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/mapping/pci/{id}",
+ [
+ "Mapping.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/cluster/mapping/pci/{id}",
+ "text" : "{id}"
+ }
+ ],
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "Get ceph metadata.",
+ "description" : "List PCI Hardware Mapping",
"method" : "GET",
- "name" : "metadata",
+ "name" : "index",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "scope" : {
- "default" : "all",
- "enum" : [
- "all",
- "versions"
- ],
+ "check-node" : {
+ "description" : "If given, checks the configurations on the given node for correctness, and adds relevant diagnostics for the devices to the response.",
+ "format" : "pve-node",
"optional" : 1,
- "type" : "string"
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
"permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
- ]
+ "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/pci/<id>'.",
+ "user" : "all"
},
- "protected" : 1,
"returns" : {
- "type" : "object"
+ "items" : {
+ "properties" : {
+ "checks" : {
+ "description" : "A list of checks, only present if 'check_node' is set.",
+ "items" : {
+ "properties" : {
+ "message" : {
+ "description" : "The message of the error",
+ "type" : "string"
+ },
+ "severity" : {
+ "description" : "The severity of the error",
+ "enum" : [
+ "warning",
+ "error"
+ ],
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "optional" : 1,
+ "type" : "array"
+ },
+ "description" : {
+ "description" : "A description of the logical mapping.",
+ "type" : "string"
+ },
+ "id" : {
+ "description" : "The logical ID of the mapping.",
+ "type" : "string"
+ },
+ "map" : {
+ "description" : "The entries of the mapping.",
+ "items" : {
+ "description" : "A mapping for a node.",
+ "type" : "string"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{id}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
}
- }
- },
- "leaf" : 1,
- "path" : "/cluster/ceph/metadata",
- "text" : "metadata"
- },
- {
- "info" : {
- "GET" : {
+ },
+ "POST" : {
"allowtoken" : 1,
- "description" : "Get ceph status.",
- "method" : "GET",
- "name" : "status",
+ "description" : "Create a new hardware mapping.",
+ "method" : "POST",
+ "name" : "create",
"parameters" : {
- "additionalProperties" : 0
+ "additionalProperties" : 0,
+ "properties" : {
+ "description" : {
+ "description" : "Description of the logical PCI device.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "id" : {
+ "description" : "The ID of the logical PCI mapping.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "map" : {
+ "description" : "A list of maps for the cluster nodes.",
+ "items" : {
+ "format" : {
+ "description" : {
+ "description" : "Description of the node specific device.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "id" : {
+ "description" : "The vendor and device ID that is expected. Used for detecting hardware changes",
+ "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
+ "type" : "string"
+ },
+ "iommugroup" : {
+ "description" : "The IOMMU group in which the device is to be expected in. Used for detecting hardware changes.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "path" : {
+ "description" : "The path to the device. If the function is omitted, the whole device is mapped. In that case use the attributes of the first device. You can give multiple paths as a semicolon seperated list, the first available will then be chosen on guest start.",
+ "pattern" : "(?:[a-f0-9]{4,}:[a-f0-9]{2}:[a-f0-9]{2}(?:.[a-f0-9])?;)*[a-f0-9]{4,}:[a-f0-9]{2}:[a-f0-9]{2}(?:.[a-f0-9])?",
+ "type" : "string"
+ },
+ "subsystem-id" : {
+ "description" : "The subsystem vendor and device ID that is expected. Used for detecting hardware changes.",
+ "optional" : 1,
+ "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
+ "type" : "string"
+ }
+ },
+ "type" : "string"
+ },
+ "optional" : 0,
+ "type" : "array",
+ "typetext" : "<array>"
+ },
+ "mdev" : {
+ "default" : 0,
+ "description" : "Marks the device(s) as being capable of providing mediated devices.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ }
+ },
+ "type" : "object"
},
"permissions" : {
"check" : [
"perm",
- "/",
+ "/mapping/pci",
[
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
+ "Mapping.Modify"
+ ]
]
},
"protected" : 1,
"returns" : {
- "type" : "object"
+ "type" : "null"
}
}
},
- "leaf" : 1,
- "path" : "/cluster/ceph/status",
- "text" : "status"
+ "leaf" : 0,
+ "path" : "/cluster/mapping/pci",
+ "text" : "pci"
},
{
"children" : [
{
"info" : {
+ "DELETE" : {
+ "allowtoken" : 1,
+ "description" : "Remove Hardware Mapping.",
+ "method" : "DELETE",
+ "name" : "delete",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "id" : {
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/mapping/usb",
+ [
+ "Mapping.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "null"
+ }
+ },
"GET" : {
"allowtoken" : 1,
- "description" : "Get the status of a specific ceph flag.",
+ "description" : "Get USB Mapping.",
"method" : "GET",
- "name" : "get_flag",
+ "name" : "get",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "flag" : {
- "description" : "The name of the flag name to get.",
- "enum" : [
- "nobackfill",
- "nodeep-scrub",
- "nodown",
- "noin",
- "noout",
- "norebalance",
- "norecover",
- "noscrub",
- "notieragent",
- "noup",
- "pause"
- ],
- "type" : "string"
+ "id" : {
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
}
}
},
"permissions" : {
"check" : [
- "perm",
- "/",
+ "or",
[
- "Sys.Audit"
+ "perm",
+ "/mapping/usb/{id}",
+ [
+ "Mapping.Audit"
+ ]
+ ],
+ [
+ "perm",
+ "/mapping/usb/{id}",
+ [
+ "Mapping.Use"
+ ]
+ ],
+ [
+ "perm",
+ "/mapping/usb/{id}",
+ [
+ "Mapping.Modify"
+ ]
]
]
},
"protected" : 1,
"returns" : {
- "type" : "boolean"
+ "type" : "object"
}
},
"PUT" : {
"allowtoken" : 1,
- "description" : "Set or clear (unset) a specific ceph flag",
+ "description" : "Update a hardware mapping.",
"method" : "PUT",
- "name" : "update_flag",
+ "name" : "update",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "flag" : {
- "description" : "The ceph flag to update",
- "enum" : [
- "nobackfill",
- "nodeep-scrub",
- "nodown",
- "noin",
- "noout",
- "norebalance",
- "norecover",
- "noscrub",
- "notieragent",
- "noup",
- "pause"
- ],
- "type" : "string"
+ "delete" : {
+ "description" : "A list of settings you want to delete.",
+ "format" : "pve-configid-list",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "description" : {
+ "description" : "Description of the logical USB device.",
+ "maxLength" : 4096,
+ "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>"
+ },
+ "id" : {
+ "description" : "The ID of the logical USB mapping.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "value" : {
- "description" : "The new value of the flag",
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "map" : {
+ "description" : "A list of maps for the cluster nodes.",
+ "items" : {
+ "format" : {
+ "description" : {
+ "description" : "Description of the node specific device.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "id" : {
+ "description" : "The vendor and device ID that is expected. If a USB path is given, it is only used for detecting hardware changes",
+ "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "path" : {
+ "description" : "The path to the usb device.",
+ "optional" : 1,
+ "pattern" : "(?^:^(\\d+)\\-(\\d+(\\.\\d+)*)$)",
+ "type" : "string"
+ }
+ },
+ "type" : "string"
+ },
+ "type" : "array",
+ "typetext" : "<array>"
}
- }
+ },
+ "type" : "object"
},
"permissions" : {
"check" : [
"perm",
- "/",
+ "/mapping/usb/{id}",
[
- "Sys.Modify"
+ "Mapping.Modify"
]
]
},
}
},
"leaf" : 1,
- "path" : "/cluster/ceph/flags/{flag}",
- "text" : "{flag}"
+ "path" : "/cluster/mapping/usb/{id}",
+ "text" : "{id}"
}
],
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "get the status of all ceph flags",
+ "description" : "List USB Hardware Mappings",
"method" : "GET",
- "name" : "get_all_flags",
+ "name" : "index",
"parameters" : {
- "additionalProperties" : 0
+ "additionalProperties" : 0,
+ "properties" : {
+ "check-node" : {
+ "description" : "If given, checks the configurations on the given node for correctness, and adds relevant errors to the devices.",
+ "format" : "pve-node",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
},
"permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit"
- ]
- ]
+ "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/usb/<id>'.",
+ "user" : "all"
},
- "protected" : 1,
"returns" : {
"items" : {
- "additionalProperties" : 1,
"properties" : {
- "name" : {
- "description" : "Flag name.",
- "enum" : [
- "nobackfill",
- "nodeep-scrub",
- "nodown",
- "noin",
- "noout",
- "norebalance",
- "norecover",
- "noscrub",
- "notieragent",
- "noup",
- "pause"
- ],
+ "description" : {
+ "description" : "A description of the logical mapping.",
+ "type" : "string"
+ },
+ "error" : {
+ "description" : "A list of errors when 'check_node' is given.",
+ "items" : {
+ "properties" : {
+ "message" : {
+ "description" : "The message of the error",
+ "type" : "string"
+ },
+ "severity" : {
+ "description" : "The severity of the error",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "id" : {
+ "description" : "The logical ID of the mapping.",
"type" : "string"
+ },
+ "map" : {
+ "description" : "The entries of the mapping.",
+ "items" : {
+ "description" : "A mapping for a node.",
+ "type" : "string"
+ },
+ "type" : "array"
}
},
"type" : "object"
},
"links" : [
{
- "href" : "{name}",
+ "href" : "{id}",
"rel" : "child"
}
],
"type" : "array"
}
},
- "PUT" : {
+ "POST" : {
"allowtoken" : 1,
- "description" : "Set/Unset multiple ceph flags at once.",
- "method" : "PUT",
- "name" : "set_flags",
+ "description" : "Create a new hardware mapping.",
+ "method" : "POST",
+ "name" : "create",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
- "nobackfill" : {
- "description" : "Backfilling of PGs is suspended.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "nodeep-scrub" : {
- "description" : "Deep Scrubbing is disabled.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "nodown" : {
- "description" : "OSD failure reports are being ignored, such that the monitors will not mark OSDs down.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "noin" : {
- "description" : "OSDs that were previously marked out will not be marked back in when they start.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "noout" : {
- "description" : "OSDs will not automatically be marked out after the configured interval.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "norebalance" : {
- "description" : "Rebalancing of PGs is suspended.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "norecover" : {
- "description" : "Recovery of PGs is suspended.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "noscrub" : {
- "description" : "Scrubbing is disabled.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
- },
- "notieragent" : {
- "description" : "Cache tiering activity is suspended.",
+ "description" : {
+ "description" : "Description of the logical USB device.",
+ "maxLength" : 4096,
"optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "type" : "string",
+ "typetext" : "<string>"
},
- "noup" : {
- "description" : "OSDs are not allowed to start.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "id" : {
+ "description" : "The ID of the logical USB mapping.",
+ "format" : "pve-configid",
+ "type" : "string",
+ "typetext" : "<string>"
},
- "pause" : {
- "description" : "Pauses read and writes.",
- "optional" : 1,
- "type" : "boolean",
- "typetext" : "<boolean>"
+ "map" : {
+ "description" : "A list of maps for the cluster nodes.",
+ "items" : {
+ "format" : {
+ "description" : {
+ "description" : "Description of the node specific device.",
+ "maxLength" : 4096,
+ "optional" : 1,
+ "type" : "string"
+ },
+ "id" : {
+ "description" : "The vendor and device ID that is expected. If a USB path is given, it is only used for detecting hardware changes",
+ "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
+ "type" : "string"
+ },
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string"
+ },
+ "path" : {
+ "description" : "The path to the usb device.",
+ "optional" : 1,
+ "pattern" : "(?^:^(\\d+)\\-(\\d+(\\.\\d+)*)$)",
+ "type" : "string"
+ }
+ },
+ "type" : "string"
+ },
+ "type" : "array",
+ "typetext" : "<array>"
}
- }
+ },
+ "type" : "object"
},
"permissions" : {
"check" : [
"perm",
- "/",
+ "/mapping/usb",
[
- "Sys.Modify"
+ "Mapping.Modify"
]
]
},
"protected" : 1,
"returns" : {
- "type" : "string"
+ "type" : "null"
}
}
},
"leaf" : 0,
- "path" : "/cluster/ceph/flags",
- "text" : "flags"
- }
- ],
- "info" : {
- "GET" : {
- "allowtoken" : 1,
- "description" : "Cluster ceph index.",
- "method" : "GET",
- "name" : "cephindex",
- "parameters" : {
- "additionalProperties" : 0
- },
- "permissions" : {
- "user" : "all"
- },
- "returns" : {
- "items" : {
- "properties" : {},
- "type" : "object"
- },
- "links" : [
- {
- "href" : "{name}",
- "rel" : "child"
- }
- ],
- "type" : "array"
- }
- }
- },
- "leaf" : 0,
- "path" : "/cluster/ceph",
- "text" : "ceph"
- },
- {
- "children" : [
- {
- "info" : {
- "GET" : {
- "allowtoken" : 1,
- "description" : "Returns a list of future schedule runtimes.",
- "method" : "GET",
- "name" : "schedule-analyze",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "iterations" : {
- "default" : 10,
- "description" : "Number of event-iteration to simulate and return.",
- "maximum" : 100,
- "minimum" : 1,
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer> (1 - 100)"
- },
- "schedule" : {
- "description" : "Job schedule. The format is a subset of `systemd` calendar events.",
- "format" : "pve-calendar-event",
- "maxLength" : 128,
- "type" : "string",
- "typetext" : "<string>"
- },
- "starttime" : {
- "description" : "UNIX timestamp to start the calculation from. Defaults to the current time.",
- "optional" : 1,
- "type" : "integer",
- "typetext" : "<integer>"
- }
- }
- },
- "permissions" : {
- "user" : "all"
- },
- "returns" : {
- "description" : "An array of the next <iterations> events since <starttime>.",
- "items" : {
- "properties" : {
- "timestamp" : {
- "description" : "UNIX timestamp for the run.",
- "type" : "integer"
- },
- "utc" : {
- "description" : "UTC timestamp for the run.",
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "type" : "array"
- }
- }
- },
- "leaf" : 1,
- "path" : "/cluster/jobs/schedule-analyze",
- "text" : "schedule-analyze"
+ "path" : "/cluster/mapping/usb",
+ "text" : "usb"
}
],
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "Index for jobs related endpoints.",
+ "description" : "List resource types.",
"method" : "GET",
"name" : "index",
"parameters" : {
"user" : "all"
},
"returns" : {
- "description" : "Directory index.",
"items" : {
- "properties" : {
- "subdir" : {
- "description" : "API sub-directory endpoint",
- "type" : "string"
- }
- },
"type" : "object"
},
"links" : [
{
- "href" : "{subdir}",
+ "href" : "{name}",
"rel" : "child"
}
],
}
},
"leaf" : 0,
- "path" : "/cluster/jobs",
- "text" : "jobs"
+ "path" : "/cluster/mapping",
+ "text" : "mapping"
},
{
"children" : [
}
},
"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/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/vnets/{vnet}/subnets",
+ "/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>"
"type" : "integer",
"typetext" : "<integer>"
},
+ "vxlan-port" : {
+ "description" : "Vxlan tunnel udp port (default 4789).",
+ "maximum" : 65536,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 65536)"
+ },
"zone" : {
"description" : "The SDN zone object identifier.",
"format" : "pve-sdn-zone-id",
"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,
"type" : "integer",
"typetext" : "<integer>"
},
+ "vxlan-port" : {
+ "description" : "Vxlan tunnel udp port (default 4789).",
+ "maximum" : 65536,
+ "minimum" : 1,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (1 - 65536)"
+ },
"zone" : {
"description" : "The SDN zone object identifier.",
"format" : "pve-sdn-zone-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>"
"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"
]
"type" : "string"
},
"id" : {
+ "description" : "Resource id.",
"type" : "string"
},
"level" : {
"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"
}
"additionalProperties" : 0,
"properties" : {
"bwlimit" : {
- "description" : "Set bandwidth/io limits various operations.",
+ "description" : "Set I/O bandwidth limit for various operations (in KiB/s).",
"format" : {
"clone" : {
"description" : "bandwidth limit in KiB/s for cloning disks",
"basic",
"static"
],
+ "optional" : 1,
"type" : "string",
"verbose_description" : "Configures how the HA manager should select nodes to start or recover services. With 'basic', only the number of services is used, with 'static', static CPU and memory configuration of services is considered."
+ },
+ "ha-rebalance-on-start" : {
+ "default" : 0,
+ "description" : "Set to use CRS for selecting a suited node when a HA services request-state changes from stop to start.",
+ "optional" : 1,
+ "type" : "boolean"
}
},
"optional" : 1,
"type" : "string",
- "typetext" : "ha=<basic|static>"
+ "typetext" : "[ha=<basic|static>] [,ha-rebalance-on-start=<1|0>]"
},
"delete" : {
"description" : "A list of settings you want to delete.",
"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.",
"type" : "string",
"typetext" : "[lower=<integer>] [,upper=<integer>]"
},
+ "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" : "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" : "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" : "[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,
],
"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'.",
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"optional" : 1,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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>"
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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" : "<integer> (0 - N)"
},
"icmp-type" : {
- "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+ "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
"format" : "pve-fw-icmp-type-spec",
"optional" : 1,
"type" : "string",
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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" : "<integer> (0 - N)"
},
"icmp-type" : {
- "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+ "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
"format" : "pve-fw-icmp-type-spec",
"optional" : 1,
"type" : "string",
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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>"
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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>"
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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>"
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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>"
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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>"
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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>"
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"type" : "string",
"typetext" : "<string>"
},
+ "since" : {
+ "description" : "Display log since this UNIX epoch.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
"start" : {
"minimum" : 0,
"optional" : 1,
"type" : "integer",
"typetext" : "<integer> (0 - N)"
},
+ "until" : {
+ "description" : "Display log until this UNIX epoch.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"name" : {
"type" : "string"
},
+ "ref" : {
+ "type" : "string"
+ },
+ "scope" : {
+ "type" : "string"
+ },
"type" : {
"enum" : [
"alias",
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"additionalProperties" : 0,
"properties" : {
"command" : {
- "description" : "The command as a list of program + arguments",
- "format" : "string-alist",
- "optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "description" : "The command as a list of program + arguments.",
+ "items" : {
+ "description" : "A single part of the program + arguments.",
+ "format" : "string"
+ },
+ "type" : "array",
+ "typetext" : "<array>"
},
"input-data" : {
"description" : "Data to pass as 'input-data' to the guest. Usually treated as STDIN to 'command'.",
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"info" : {
"GET" : {
"allowtoken" : 1,
- "description" : "Qemu Agent command index.",
+ "description" : "QEMU Guest Agent command index.",
"method" : "GET",
"name" : "index",
"parameters" : {
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
},
"proxyto" : "node",
"returns" : {
- "description" : "Returns the list of Qemu Agent commands",
+ "description" : "Returns the list of QEMU Guest Agent commands",
"items" : {
"properties" : {},
"type" : "object"
},
"POST" : {
"allowtoken" : 1,
- "description" : "Execute Qemu Guest Agent commands.",
+ "description" : "Execute QEMU Guest Agent commands.",
"method" : "POST",
"name" : "agent",
"parameters" : {
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"type" : "string"
},
"agent" : {
- "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
+ "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
"format" : {
"enabled" : {
"default" : 0,
"default_key" : 1,
- "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
+ "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
+ "type" : "boolean"
+ },
+ "freeze-fs-on-backup" : {
+ "default" : 1,
+ "description" : "Freeze/thaw guest filesystems on backup for consistency.",
+ "optional" : 1,
"type" : "boolean"
},
"fstrim_cloned_disks" : {
"description" : "Arbitrary arguments passed to kvm.",
"optional" : 1,
"type" : "string",
- "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
+ "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -smbios 'type=0,vendor=FOO'\n\nNOTE: this option is for experts only.\n"
},
"audio0" : {
"description" : "Configure a audio device, useful in combination with QXL/Spice.",
"type" : "boolean"
},
"balloon" : {
- "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
+ "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
"minimum" : 0,
"optional" : 1,
"type" : "integer"
"optional" : 1,
"type" : "string"
},
+ "ciupgrade" : {
+ "default" : 1,
+ "description" : "cloud-init: do an automatic package upgrade after the first boot.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
"ciuser" : {
"description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
"optional" : 1,
"type" : "string"
},
"efidisk0" : {
- "description" : "Configure a Disk for storing EFI vars.",
+ "description" : "Configure a disk for storing EFI vars.",
"format" : {
"efitype" : {
"default" : "2m",
- "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified.",
+ "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 MB. 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 - 5.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"
},
"format" : {
"host" : {
"default_key" : 1,
- "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
- "format" : "pve-qm-usb-device",
+ "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n\nEither this or the 'mapping' key must be set.\n",
"format_description" : "HOSTUSBDEVICE|spice",
+ "optional" : 1,
+ "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
+ "type" : "string"
+ },
+ "mapping" : {
+ "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
+ "format" : "pve-configid",
+ "format_description" : "mapping-id",
+ "optional" : 1,
"type" : "string"
},
"usb3" : {
"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"
},
"typetext" : "<string>"
},
"agent" : {
- "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
+ "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
"format" : {
"enabled" : {
"default" : 0,
"default_key" : 1,
- "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
+ "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
+ "type" : "boolean"
+ },
+ "freeze-fs-on-backup" : {
+ "default" : 1,
+ "description" : "Freeze/thaw guest filesystems on backup for consistency.",
+ "optional" : 1,
"type" : "boolean"
},
"fstrim_cloned_disks" : {
},
"optional" : 1,
"type" : "string",
- "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
+ "typetext" : "[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
},
"arch" : {
"description" : "Virtual processor architecture. Defaults to the host.",
"optional" : 1,
"type" : "string",
"typetext" : "<string>",
- "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
+ "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -smbios 'type=0,vendor=FOO'\n\nNOTE: this option is for experts only.\n"
},
"audio0" : {
"description" : "Configure a audio device, useful in combination with QXL/Spice.",
"typetext" : "<integer> (1 - 30)"
},
"balloon" : {
- "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
+ "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
"minimum" : 0,
"optional" : 1,
"type" : "integer",
"optional" : 1,
"type" : "string"
},
+ "ciupgrade" : {
+ "default" : 1,
+ "description" : "cloud-init: do an automatic package upgrade after the first boot.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"ciuser" : {
"description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
"optional" : 1,
"typetext" : "<string>"
},
"efidisk0" : {
- "description" : "Configure a Disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+ "description" : "Configure a disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
"format" : {
"efitype" : {
"default" : "2m",
- "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified.",
+ "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"
"format" : "pve-qm-hostpci",
"optional" : 1,
"type" : "string",
- "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
+ "typetext" : "[[host=]<HOSTPCIID[;HOSTPCIID2...]>] [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
"verbose_description" : "Map host PCI devices into guest.\n\nNOTE: This option allows direct access to host hardware. So it is no longer\npossible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
},
"hotplug" : {
"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 MB. 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 - 5.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",
"format" : {
"host" : {
"default_key" : 1,
- "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
- "format" : "pve-qm-usb-device",
+ "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n\nEither this or the 'mapping' key must be set.\n",
"format_description" : "HOSTUSBDEVICE|spice",
+ "optional" : 1,
+ "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
+ "type" : "string"
+ },
+ "mapping" : {
+ "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
+ "format" : "pve-configid",
+ "format_description" : "mapping-id",
+ "optional" : 1,
"type" : "string"
},
"usb3" : {
},
"optional" : 1,
"type" : "string",
- "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
+ "typetext" : "[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mapping-id>] [,usb3=<1|0>]"
},
"vcpus" : {
"default" : 0,
"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]" : {
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
},
"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.",
"typetext" : "<string>"
},
"agent" : {
- "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
+ "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
"format" : {
"enabled" : {
"default" : 0,
"default_key" : 1,
- "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
+ "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
+ "type" : "boolean"
+ },
+ "freeze-fs-on-backup" : {
+ "default" : 1,
+ "description" : "Freeze/thaw guest filesystems on backup for consistency.",
+ "optional" : 1,
"type" : "boolean"
},
"fstrim_cloned_disks" : {
},
"optional" : 1,
"type" : "string",
- "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
+ "typetext" : "[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
},
"arch" : {
"description" : "Virtual processor architecture. Defaults to the host.",
"optional" : 1,
"type" : "string",
"typetext" : "<string>",
- "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
+ "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -smbios 'type=0,vendor=FOO'\n\nNOTE: this option is for experts only.\n"
},
"audio0" : {
"description" : "Configure a audio device, useful in combination with QXL/Spice.",
"typetext" : "<boolean>"
},
"balloon" : {
- "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
+ "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
"minimum" : 0,
"optional" : 1,
"type" : "integer",
"optional" : 1,
"type" : "string"
},
+ "ciupgrade" : {
+ "default" : 1,
+ "description" : "cloud-init: do an automatic package upgrade after the first boot.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"ciuser" : {
"description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
"optional" : 1,
"typetext" : "<string>"
},
"efidisk0" : {
- "description" : "Configure a Disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+ "description" : "Configure a disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
"format" : {
"efitype" : {
"default" : "2m",
- "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified.",
+ "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"
"format" : "pve-qm-hostpci",
"optional" : 1,
"type" : "string",
- "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
+ "typetext" : "[[host=]<HOSTPCIID[;HOSTPCIID2...]>] [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
"verbose_description" : "Map host PCI devices into guest.\n\nNOTE: This option allows direct access to host hardware. So it is no longer\npossible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
},
"hotplug" : {
"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 MB. 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 - 5.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",
"format" : {
"host" : {
"default_key" : 1,
- "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
- "format" : "pve-qm-usb-device",
+ "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n\nEither this or the 'mapping' key must be set.\n",
"format_description" : "HOSTUSBDEVICE|spice",
+ "optional" : 1,
+ "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
+ "type" : "string"
+ },
+ "mapping" : {
+ "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
+ "format" : "pve-configid",
+ "format_description" : "mapping-id",
+ "optional" : 1,
"type" : "string"
},
"usb3" : {
},
"optional" : 1,
"type" : "string",
- "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
+ "typetext" : "[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mapping-id>] [,usb3=<1|0>]"
},
"vcpus" : {
"default" : 0,
"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]" : {
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
},
"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.",
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"returns" : {
"items" : {
"properties" : {
+ "delete" : {
+ "description" : "Indicates a pending delete request if present and not 0. ",
+ "maximum" : 1,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer"
+ },
"key" : {
"description" : "Configuration option name.",
"type" : "string"
},
- "new" : {
+ "pending" : {
"description" : "The new pending value.",
"optional" : 1,
"type" : "string"
},
- "old" : {
+ "value" : {
"description" : "Value as it was used to generate the current cloudinit image.",
"optional" : 1,
"type" : "string"
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"check" : [
"perm",
"/vms/{vmid}",
- "VM.Config.Cloudinit"
+ [
+ "VM.Config.Cloudinit"
+ ]
]
},
"protected" : 1,
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "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>"
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
},
"vncticket" : {
"description" : "Ticket from previous call to vncproxy.",
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"returns" : {
"properties" : {
"agent" : {
- "description" : "Qemu GuestAgent enabled in config.",
+ "description" : "QEMU Guest Agent is enabled in config.",
"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,
"type" : "integer"
},
"qmpstatus" : {
- "description" : "Qemu QMP agent status.",
+ "description" : "VM run state from the 'query-status' QMP monitor command.",
"optional" : 1,
"type" : "string"
},
"type" : "string"
},
"spice" : {
- "description" : "Qemu VGA configuration supports spice.",
+ "description" : "QEMU VGA configuration supports spice.",
"optional" : 1,
"type" : "boolean"
},
"status" : {
- "description" : "Qemu process status.",
+ "description" : "QEMU process status.",
"enum" : [
"stopped",
"running"
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer"
}
},
"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.",
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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,
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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" : {
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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,
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"newid" : {
"description" : "VMID for the clone.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
},
"node" : {
"description" : "The cluster node name.",
"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.",
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
]
]
],
- "description" : "You need 'VM.Clone' permissions on /vms/{vmid}, and 'VM.Allocate' permissions on /vms/{newid} (or on the VM pool /pool/{pool}). You also need 'Datastore.AllocateSpace' on any used storage."
+ "description" : "You need 'VM.Clone' permissions on /vms/{vmid}, and 'VM.Allocate' permissions on /vms/{newid} (or on the VM pool /pool/{pool}). You also need 'Datastore.AllocateSpace' on any used storage and 'SDN.Use' on any used bridge/vnet"
},
"protected" : 1,
"proxyto" : "node",
"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.",
"target-vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"optional" : 1,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"description" : "List local resources e.g. pci, usb",
"type" : "array"
},
+ "mapped-resources" : {
+ "description" : "List of mapped resources e.g. pci, usb",
+ "type" : "array"
+ },
"not_allowed_nodes" : {
"description" : "List not allowed nodes with additional informations, only passed if VM is offline",
"optional" : 1,
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
},
"with-local-disks" : {
"description" : "Enable live storage migration for local disk",
"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.",
"target-vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"optional" : 1,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"info" : {
"POST" : {
"allowtoken" : 1,
- "description" : "Execute Qemu monitor commands.",
+ "description" : "Execute QEMU monitor commands.",
"method" : "POST",
"name" : "monitor",
"parameters" : {
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"protected" : 1,
"proxyto" : "node",
"returns" : {
- "type" : "null"
+ "description" : "the task ID.",
+ "type" : "string"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
},
"start" : {
"default" : 0,
- "description" : "Whether the VM should get started after rolling back successfully",
+ "description" : "Whether the VM should get started after rolling back successfully. (Note: VMs will be automatically started if the snapshot includes RAM.)",
"optional" : 1,
"type" : "boolean",
"typetext" : "<boolean>"
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
},
"vmstate" : {
"description" : "Save the vmstate",
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"type" : "integer"
},
"qmpstatus" : {
- "description" : "Qemu QMP agent status.",
+ "description" : "VM run state from the 'query-status' QMP monitor command.",
"optional" : 1,
"type" : "string"
},
"type" : "string"
},
"status" : {
- "description" : "Qemu process status.",
+ "description" : "QEMU process status.",
"enum" : [
"stopped",
"running"
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer"
}
},
"typetext" : "<string>"
},
"agent" : {
- "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
+ "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
"format" : {
"enabled" : {
"default" : 0,
"default_key" : 1,
- "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
+ "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
+ "type" : "boolean"
+ },
+ "freeze-fs-on-backup" : {
+ "default" : 1,
+ "description" : "Freeze/thaw guest filesystems on backup for consistency.",
+ "optional" : 1,
"type" : "boolean"
},
"fstrim_cloned_disks" : {
},
"optional" : 1,
"type" : "string",
- "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
+ "typetext" : "[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
},
"arch" : {
"description" : "Virtual processor architecture. Defaults to the host.",
"optional" : 1,
"type" : "string",
"typetext" : "<string>",
- "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
+ "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -smbios 'type=0,vendor=FOO'\n\nNOTE: this option is for experts only.\n"
},
"audio0" : {
"description" : "Configure a audio device, useful in combination with QXL/Spice.",
"typetext" : "<boolean>"
},
"balloon" : {
- "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
+ "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
"minimum" : 0,
"optional" : 1,
"type" : "integer",
"optional" : 1,
"type" : "string"
},
+ "ciupgrade" : {
+ "default" : 1,
+ "description" : "cloud-init: do an automatic package upgrade after the first boot.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"ciuser" : {
"description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
"optional" : 1,
"typetext" : "<string>"
},
"efidisk0" : {
- "description" : "Configure a Disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+ "description" : "Configure a disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
"format" : {
"efitype" : {
"default" : "2m",
- "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified.",
+ "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"
"format" : "pve-qm-hostpci",
"optional" : 1,
"type" : "string",
- "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
+ "typetext" : "[[host=]<HOSTPCIID[;HOSTPCIID2...]>] [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
"verbose_description" : "Map host PCI devices into guest.\n\nNOTE: This option allows direct access to host hardware. So it is no longer\npossible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
},
"hotplug" : {
"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 MB. 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 - 5.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,
"format" : {
"host" : {
"default_key" : 1,
- "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
- "format" : "pve-qm-usb-device",
+ "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n\nEither this or the 'mapping' key must be set.\n",
"format_description" : "HOSTUSBDEVICE|spice",
+ "optional" : 1,
+ "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
+ "type" : "string"
+ },
+ "mapping" : {
+ "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
+ "format" : "pve-configid",
+ "format_description" : "mapping-id",
+ "optional" : 1,
"type" : "string"
},
"usb3" : {
},
"optional" : 1,
"type" : "string",
- "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
+ "typetext" : "[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mapping-id>] [,usb3=<1|0>]"
},
"vcpus" : {
"default" : 0,
"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]" : {
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
},
"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.",
}
},
"permissions" : {
- "description" : "You need 'VM.Allocate' permissions on /vms/{vmid} or on the VM pool /pool/{pool}. For restore (option 'archive'), it is enough if the user has 'VM.Backup' permission and the VM already exists. If you create disks you need 'Datastore.AllocateSpace' on any used storage.",
+ "description" : "You need 'VM.Allocate' permissions on /vms/{vmid} or on the VM pool /pool/{pool}. For restore (option 'archive'), it is enough if the user has 'VM.Backup' permission and the VM already exists. If you create disks you need 'Datastore.AllocateSpace' on any used storage.If you use a bridge/vlan, you need 'SDN.Use' on any used bridge/vlan.",
"user" : "all"
},
"protected" : 1,
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"amd64",
"i386",
"arm64",
- "armhf"
+ "armhf",
+ "riscv32",
+ "riscv64"
],
"optional" : 1,
"type" : "string"
"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"
"optional" : 1,
"type" : "string"
},
+ "link_down" : {
+ "description" : "Whether this interface should be disconnected (like pulling the plug).",
+ "optional" : 1,
+ "type" : "boolean"
+ },
"mtu" : {
"description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
"maximum" : 65535,
"amd64",
"i386",
"arm64",
- "armhf"
+ "armhf",
+ "riscv32",
+ "riscv64"
],
"optional" : 1,
"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,
"optional" : 1,
"type" : "string"
},
+ "link_down" : {
+ "description" : "Whether this interface should be disconnected (like pulling the plug).",
+ "optional" : 1,
+ "type" : "boolean"
+ },
"mtu" : {
"description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
"maximum" : 65535,
},
"optional" : 1,
"type" : "string",
- "typetext" : "name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
+ "typetext" : "name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,link_down=<1|0>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
},
"node" : {
"description" : "The cluster node name.",
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer"
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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,
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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>"
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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" : "<integer> (0 - N)"
},
"icmp-type" : {
- "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+ "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
"format" : "pve-fw-icmp-type-spec",
"optional" : 1,
"type" : "string",
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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" : "<integer> (0 - N)"
},
"icmp-type" : {
- "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+ "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
"format" : "pve-fw-icmp-type-spec",
"optional" : 1,
"type" : "string",
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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>"
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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>"
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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>"
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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>"
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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"
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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>"
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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>"
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"type" : "string",
"typetext" : "<string>"
},
+ "since" : {
+ "description" : "Display log since this UNIX epoch.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
"start" : {
"minimum" : 0,
"optional" : 1,
"type" : "integer",
"typetext" : "<integer> (0 - N)"
},
+ "until" : {
+ "description" : "Display log until this UNIX epoch.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"name" : {
"type" : "string"
},
+ "ref" : {
+ "type" : "string"
+ },
+ "scope" : {
+ "type" : "string"
+ },
"type" : {
"enum" : [
"alias",
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
},
"websocket" : {
"description" : "use websocket instead of standard VNC.",
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
},
"vncticket" : {
"description" : "Ticket from previous call to vncproxy.",
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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.",
"target-vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"optional" : 1,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
},
"timeout" : {
"default" : 180,
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"newid" : {
"description" : "VMID for the clone.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
},
"node" : {
"description" : "The cluster node name.",
"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.",
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
]
]
],
- "description" : "You need 'VM.Clone' permissions on /vms/{vmid}, and 'VM.Allocate' permissions on /vms/{newid} (or on the VM pool /pool/{pool}). You also need 'Datastore.AllocateSpace' on any used storage."
+ "description" : "You need 'VM.Clone' permissions on /vms/{vmid}, and 'VM.Allocate' permissions on /vms/{newid} (or on the VM pool /pool/{pool}). You also need 'Datastore.AllocateSpace' on any used storage, and 'SDN.Use' on any bridge."
},
"protected" : 1,
"proxyto" : "node",
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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.",
"target-vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"optional" : 1,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
},
"target-volume" : {
"description" : "The config key the volume will be moved to. Default is the source volume key.",
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
},
"volume" : {
"description" : "Volume which will be moved.",
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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" : {
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer"
}
},
"amd64",
"i386",
"arm64",
- "armhf"
+ "armhf",
+ "riscv32",
+ "riscv64"
],
"optional" : 1,
"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>]"
+ },
"features" : {
"description" : "Allow containers access to advanced features.",
"format" : {
"optional" : 1,
"type" : "string"
},
+ "link_down" : {
+ "description" : "Whether this interface should be disconnected (like pulling the plug).",
+ "optional" : 1,
+ "type" : "boolean"
+ },
"mtu" : {
"description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
"maximum" : 65535,
},
"optional" : 1,
"type" : "string",
- "typetext" : "name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
+ "typetext" : "name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,link_down=<1|0>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
},
"node" : {
"description" : "The cluster node name.",
"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,
"vmid" : {
"description" : "The (unique) ID of the VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
},
{
"children" : [
+ {
+ "children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get the Ceph configuration file.",
+ "method" : "GET",
+ "name" : "raw",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "proxyto" : "node",
+ "returns" : {
+ "type" : "string"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/cfg/raw",
+ "text" : "raw"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get the Ceph configuration database.",
+ "method" : "GET",
+ "name" : "db",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit",
+ "Datastore.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "items" : {
+ "properties" : {
+ "can_update_at_runtime" : {
+ "type" : "boolean"
+ },
+ "level" : {
+ "type" : "string"
+ },
+ "mask" : {
+ "type" : "string"
+ },
+ "name" : {
+ "type" : "string"
+ },
+ "section" : {
+ "type" : "string"
+ },
+ "value" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/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" : {
+ "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" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
+ }
+ },
+ "leaf" : 0,
+ "path" : "/nodes/{node}/ceph/cfg",
+ "text" : "cfg"
+ },
{
"children" : [
{
"children" : [
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get OSD details",
+ "method" : "GET",
+ "name" : "osddetails",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "osdid" : {
+ "description" : "OSD ID",
+ "type" : "integer",
+ "typetext" : "<integer>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "devices" : {
+ "description" : "Array containing data about devices",
+ "items" : {
+ "properties" : {
+ "dev_node" : {
+ "description" : "Device node",
+ "type" : "string"
+ },
+ "device" : {
+ "description" : "Kind of OSD device",
+ "enum" : [
+ "block",
+ "db",
+ "wal"
+ ],
+ "type" : "string"
+ },
+ "devices" : {
+ "description" : "Physical disks used",
+ "type" : "string"
+ },
+ "size" : {
+ "description" : "Size in bytes",
+ "type" : "integer"
+ },
+ "support_discard" : {
+ "description" : "Discard support of the physical device",
+ "type" : "boolean"
+ },
+ "type" : {
+ "description" : "Type of device. For example, hdd or ssd",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "type" : "array"
+ },
+ "osd" : {
+ "description" : "General information about the OSD",
+ "properties" : {
+ "back_addr" : {
+ "description" : "Address and port used to talk to other OSDs.",
+ "type" : "string"
+ },
+ "front_addr" : {
+ "description" : "Address and port used to talk to clients and monitors.",
+ "type" : "string"
+ },
+ "hb_back_addr" : {
+ "description" : "Heartbeat address and port for other OSDs.",
+ "type" : "string"
+ },
+ "hb_front_addr" : {
+ "description" : "Heartbeat address and port for clients and monitors.",
+ "type" : "string"
+ },
+ "hostname" : {
+ "description" : "Name of the host containing the OSD.",
+ "type" : "string"
+ },
+ "id" : {
+ "description" : "ID of the OSD.",
+ "type" : "integer"
+ },
+ "mem_usage" : {
+ "description" : "Memory usage of the OSD service.",
+ "type" : "integer"
+ },
+ "osd_data" : {
+ "description" : "Path to the OSD's data directory.",
+ "type" : "string"
+ },
+ "osd_objectstore" : {
+ "description" : "The type of object store used.",
+ "type" : "string"
+ },
+ "pid" : {
+ "description" : "OSD process ID.",
+ "type" : "integer"
+ },
+ "version" : {
+ "description" : "Ceph version of the OSD service.",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/osd/{osdid}/metadata",
+ "text" : "metadata"
+ },
+ {
+ "info" : {
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "Get OSD volume details",
+ "method" : "GET",
+ "name" : "osdvolume",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "osdid" : {
+ "description" : "OSD ID",
+ "type" : "integer",
+ "typetext" : "<integer>"
+ },
+ "type" : {
+ "default" : "block",
+ "description" : "OSD device type",
+ "enum" : [
+ "block",
+ "db",
+ "wal"
+ ],
+ "optional" : 1,
+ "type" : "string"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "perm",
+ "/",
+ [
+ "Sys.Audit"
+ ],
+ "any",
+ 1
+ ]
+ },
+ "protected" : 1,
+ "proxyto" : "node",
+ "returns" : {
+ "properties" : {
+ "creation_time" : {
+ "description" : "Creation time as reported by `lvs`.",
+ "type" : "string"
+ },
+ "lv_name" : {
+ "description" : "Name of the logical volume (LV).",
+ "type" : "string"
+ },
+ "lv_path" : {
+ "description" : "Path to the logical volume (LV).",
+ "type" : "string"
+ },
+ "lv_size" : {
+ "description" : "Size of the logical volume (LV).",
+ "type" : "integer"
+ },
+ "lv_uuid" : {
+ "description" : "UUID of the logical volume (LV).",
+ "type" : "string"
+ },
+ "vg_name" : {
+ "description" : "Name of the volume group (VG).",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/nodes/{node}/ceph/osd/{osdid}/lv-info",
+ "text" : "lv-info"
+ },
{
"info" : {
"POST" : {
"returns" : {
"type" : "string"
}
+ },
+ "GET" : {
+ "allowtoken" : 1,
+ "description" : "OSD index.",
+ "method" : "GET",
+ "name" : "osdindex",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "node" : {
+ "description" : "The cluster node name.",
+ "format" : "pve-node",
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "osdid" : {
+ "description" : "OSD ID",
+ "type" : "integer",
+ "typetext" : "<integer>"
+ }
+ }
+ },
+ "permissions" : {
+ "user" : "all"
+ },
+ "returns" : {
+ "items" : {
+ "properties" : {},
+ "type" : "object"
+ },
+ "links" : [
+ {
+ "href" : "{name}",
+ "rel" : "child"
+ }
+ ],
+ "type" : "array"
+ }
}
},
"leaf" : 0,
"protected" : 1,
"proxyto" : "node",
"returns" : {
+ "items" : {
+ "properties" : {
+ "flags" : {
+ "type" : "string"
+ },
+ "root" : {
+ "description" : "Tree with OSDs in the CRUSH map structure.",
+ "type" : "object"
+ }
+ },
+ "type" : "object"
+ },
"type" : "object"
}
},
"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."
}
}
},
"optional" : 1,
"type" : "string"
},
- "host" : {
+ "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"
+ },
+ "rank" : {
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "service" : {
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "state" : {
+ "optional" : 1,
+ "type" : "string"
}
},
"type" : "object"
{
"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,
},
"GET" : {
"allowtoken" : 1,
- "description" : "List pool settings.",
+ "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" : {
}
}
},
- "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.",
+ "description" : "List all pools and their settings (which are settable by the POST/PUT endpoints).",
"method" : "GET",
"name" : "lspools",
"parameters" : {
}
},
"leaf" : 0,
- "path" : "/nodes/{node}/ceph/pools",
- "text" : "pools"
- },
- {
- "info" : {
- "GET" : {
- "allowtoken" : 1,
- "description" : "Get Ceph configuration.",
- "method" : "GET",
- "name" : "config",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
- ]
- },
- "proxyto" : "node",
- "returns" : {
- "type" : "string"
- }
- }
- },
- "leaf" : 1,
- "path" : "/nodes/{node}/ceph/config",
- "text" : "config"
- },
- {
- "info" : {
- "GET" : {
- "allowtoken" : 1,
- "description" : "Get Ceph configuration database.",
- "method" : "GET",
- "name" : "configdb",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "node" : {
- "description" : "The cluster node name.",
- "format" : "pve-node",
- "type" : "string",
- "typetext" : "<string>"
- }
- }
- },
- "permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
- ]
- },
- "protected" : 1,
- "proxyto" : "node",
- "returns" : {
- "items" : {
- "properties" : {
- "can_update_at_runtime" : {
- "type" : "boolean"
- },
- "level" : {
- "type" : "string"
- },
- "mask" : {
- "type" : "string"
- },
- "name" : {
- "type" : "string"
- },
- "section" : {
- "type" : "string"
- },
- "value" : {
- "type" : "string"
- }
- },
- "type" : "object"
- },
- "type" : "array"
- }
- }
- },
- "leaf" : 1,
- "path" : "/nodes/{node}/ceph/configdb",
- "text" : "configdb"
+ "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,
"proxyto" : "node",
"returns" : {
"items" : {
- "properties" : {},
+ "properties" : {
+ "name" : {
+ "description" : "Name of the CRUSH rule.",
+ "type" : "string"
+ }
+ },
"type" : "object"
},
"links" : [
"perm",
"/",
[
- "Sys.audit"
+ "Sys.Audit"
]
]
},
"storage" : {
"description" : "The storage identifier.",
"format" : "pve-storage-id",
+ "format_description" : "storage ID",
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "<storage ID>"
}
}
},
},
"bwlimit" : {
"default" : 0,
- "description" : "Limit I/O bandwidth (KBytes per second).",
+ "description" : "Limit I/O bandwidth (in KiB/s).",
"minimum" : 0,
"optional" : 1,
"type" : "integer"
"type" : "string"
},
"exclude-path" : {
- "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
- "format" : "string-alist",
+ "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 CFQ ionice priority.",
+ "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.",
"maximum" : 8,
"minimum" : 0,
"optional" : 1,
},
"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"
}
},
"bwlimit" : {
"default" : 0,
- "description" : "Limit I/O bandwidth (KBytes per second).",
+ "description" : "Limit I/O bandwidth (in KiB/s).",
"minimum" : 0,
"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.",
- "format" : "string-alist",
+ "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",
+ "typetext" : "<array>"
+ },
+ "fleecing" : {
+ "description" : "Options for backup fleecing (VM only).",
+ "format" : "backup-fleecing",
"optional" : 1,
"type" : "string",
- "typetext" : "<string>"
+ "typetext" : "[[enabled=]<1|0>] [,storage=<storage ID>]"
},
"ionice" : {
"default" : 7,
- "description" : "Set CFQ ionice priority.",
+ "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.",
"maximum" : 8,
"minimum" : 0,
"optional" : 1,
},
"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 'maxfiles', 'prune-backups', 'tmpdir', 'dumpdir', 'script', 'bwlimit', 'performance' and 'ionice' parameters are restricted to the 'root@pam' user.",
+ "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,
"properties" : {
"force" : {
"default" : 0,
- "description" : "Always connect to server, even if we have up to date info inside local cache.",
+ "description" : "Always connect to server, even if local cache is still valid.",
"optional" : 1,
"type" : "boolean",
"typetext" : "<boolean>"
"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" : {
"OVSBond",
"OVSPort",
"OVSIntPort",
- "any_bridge"
+ "any_bridge",
+ "any_local_bridge"
],
"optional" : 1,
"type" : "string"
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "download" : {
+ "description" : "Whether the tasklog file should be downloaded. This parameter can't be used in conjunction with other parameters",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"limit" : {
"default" : 50,
- "description" : "The maximum amount of lines that should be printed.",
+ "description" : "The amount of lines to read from the tasklog.",
"minimum" : 0,
"optional" : 1,
"type" : "integer",
},
"start" : {
"default" : 0,
- "description" : "The line number to start printing at.",
+ "description" : "Start at this line when reading the tasklog",
"minimum" : 0,
"optional" : 1,
"type" : "integer",
"vmid" : {
"description" : "Only list tasks for this VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"optional" : 1,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"perm",
"/",
[
+ "Sys.Audit",
"Sys.Modify"
- ]
+ ],
+ "any",
+ 1
]
},
"protected" : 1,
"perm",
"/",
[
+ "Sys.Audit",
"Sys.Modify"
- ]
+ ],
+ "any",
+ 1
]
},
"protected" : 1,
"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.",
"vmid" : {
"description" : "Only prune backups for this VM.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"optional" : 1,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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.",
"vmid" : {
"description" : "Only consider backups for this guest.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"optional" : 1,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"optional" : 1,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
}
}
},
"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.",
"optional" : 1,
- "type" : "string",
- "typetext" : "<string>"
+ "pattern" : "/var/tmp/pveupload-[0-9a-f]+",
+ "type" : "string"
}
}
},
"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",
[
- "Sys.Audit",
- "Sys.Modify"
+ "perm",
+ "/",
+ [
+ "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.",
"perm",
"/",
[
- "Sys.Modify",
- "Datastore.Allocate"
+ "Sys.Modify"
]
- ]
+ ],
+ "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
},
"protected" : 1,
"proxyto" : "node",
"perm",
"/",
[
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
+ "Sys.Audit"
+ ]
]
},
"protected" : 1,
"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.",
"perm",
"/",
[
- "Sys.Modify",
- "Datastore.Allocate"
+ "Sys.Modify"
]
- ]
+ ],
+ "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
},
"protected" : 1,
"proxyto" : "node",
"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>"
}
}
},
"perm",
"/",
[
- "Sys.Modify",
- "Datastore.Allocate"
+ "Sys.Modify"
]
- ]
+ ],
+ "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
},
"protected" : 1,
"proxyto" : "node",
"perm",
"/",
[
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
+ "Sys.Audit"
+ ]
]
},
"protected" : 1,
"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.",
"perm",
"/",
[
- "Sys.Modify",
- "Datastore.Allocate"
+ "Sys.Modify"
]
- ]
+ ],
+ "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
},
"protected" : 1,
"proxyto" : "node",
"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.",
"perm",
"/",
[
- "Sys.Modify",
- "Datastore.Allocate"
+ "Sys.Modify"
]
- ]
+ ],
+ "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
},
"protected" : 1,
"proxyto" : "node",
"perm",
"/",
[
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
+ "Sys.Audit"
+ ]
]
},
"protected" : 1,
"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.",
"perm",
"/",
[
- "Sys.Modify",
- "Datastore.Allocate"
+ "Sys.Modify"
]
- ]
+ ],
+ "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
},
"protected" : 1,
"proxyto" : "node",
"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.",
"perm",
"/",
[
- "Sys.Modify",
- "Datastore.Allocate"
+ "Sys.Modify"
]
- ]
+ ],
+ "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
},
"protected" : 1,
"proxyto" : "node",
"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.",
"perm",
"/",
[
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
+ "Sys.Audit"
+ ]
]
},
"protected" : 1,
"perm",
"/",
[
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
+ "Sys.Audit"
+ ]
]
},
"protected" : 1,
"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.",
"perm",
"/",
[
- "Sys.Modify",
- "Datastore.Allocate"
+ "Sys.Modify"
]
- ]
+ ],
+ "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
},
"protected" : 1,
"proxyto" : "node",
"perm",
"/",
[
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
+ "Sys.Audit"
+ ]
],
[
"perm",
"/nodes/{node}",
[
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
+ "Sys.Audit"
+ ]
]
]
},
"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,
"perm",
"/",
[
- "Sys.Audit",
- "Datastore.Audit"
- ],
- "any",
- 1
+ "Sys.Audit"
+ ]
]
},
"protected" : 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" : "<integer> (0 - N)"
},
"icmp-type" : {
- "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+ "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>"
},
"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" : "<integer> (0 - N)"
},
"icmp-type" : {
- "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+ "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
"format" : "pve-fw-icmp-type-spec",
"optional" : 1,
"type" : "string",
"optional" : 1,
"type" : "boolean"
},
+ "nf_conntrack_helpers" : {
+ "default" : "",
+ "description" : "Enable conntrack helpers for specific protocols. Supported protocols: amanda, ftp, irc, netbios-ns, pptp, sane, sip, snmp, tftp",
+ "format" : "pve-fw-conntrack-helper",
+ "optional" : 1,
+ "type" : "string"
+ },
"nf_conntrack_max" : {
"default" : 262144,
"description" : "Maximum number of tracked connections.",
"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" : "boolean",
"typetext" : "<boolean>"
},
+ "nf_conntrack_helpers" : {
+ "default" : "",
+ "description" : "Enable conntrack helpers for specific protocols. Supported protocols: amanda, ftp, irc, netbios-ns, pptp, sane, sip, snmp, tftp",
+ "format" : "pve-fw-conntrack-helper",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
"nf_conntrack_max" : {
"default" : 262144,
"description" : "Maximum number of tracked connections.",
"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" : "string",
"typetext" : "<string>"
},
+ "since" : {
+ "description" : "Display log since this UNIX epoch.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
+ },
"start" : {
"minimum" : 0,
"optional" : 1,
"type" : "integer",
"typetext" : "<integer> (0 - N)"
+ },
+ "until" : {
+ "description" : "Display log until this UNIX epoch.",
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - N)"
}
}
},
"guest" : {
"description" : "Only list replication jobs for this guest.",
"format" : "pve-vmid",
- "minimum" : 1,
+ "maximum" : 999999999,
+ "minimum" : 100,
"optional" : 1,
"type" : "integer",
- "typetext" : "<integer> (1 - N)"
+ "typetext" : "<integer> (100 - 999999999)"
},
"node" : {
"description" : "The cluster node name.",
"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"
}
},
"info" : {
"POST" : {
"allowtoken" : 1,
- "description" : "Execute multiple commands in order.",
+ "description" : "Execute multiple commands in order, root only.",
"method" : "POST",
"name" : "execute",
"parameters" : {
"format" : "pve-command-batch",
"type" : "string",
"typetext" : "<string>",
- "verbose_description" : "JSON encoded array of commands, where each command is an object with the following properties:\n args: <object>\n\n\t A set of parameter names and their values.\n\n method: (GET|POST|PUT|DELETE)\n\n\t A method related to the API endpoint (GET, POST etc.).\n\n path: <string>\n\n\t A relative path to an API endpoint on this node.\n\n"
+ "verbose_description" : "JSON encoded array of commands, where each command is an object with the following properties:\n args: <object>\n\t A set of parameter names and their values.\n\n method: (GET|POST|PUT|DELETE)\n\t A method related to the API endpoint (GET, POST etc.).\n\n path: <string>\n\t A relative path to an API endpoint on this node.\n\n"
},
"node" : {
"description" : "The cluster node name.",
}
}
},
- "permissions" : {
- "check" : [
- "perm",
- "/nodes/{node}",
- [
- "Sys.Audit"
- ]
- ]
- },
"protected" : 1,
"proxyto" : "node",
"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",
- "login",
- "upgrade"
+ "login"
],
"optional" : 1,
"type" : "string"
[
"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",
- "login",
- "upgrade"
+ "login"
],
"optional" : 1,
"type" : "string"
[
"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",
- "login",
- "upgrade"
+ "login"
],
"optional" : 1,
"type" : "string"
[
"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"
+ ]
]
]
},
}
},
"permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "VM.PowerMgmt"
- ]
- ]
+ "description" : "The 'VM.PowerMgmt' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter.",
+ "user" : "all"
},
"protected" : 1,
"proxyto" : "node",
"parameters" : {
"additionalProperties" : 0,
"properties" : {
+ "force-stop" : {
+ "default" : 1,
+ "description" : "Force a hard-stop after the timeout.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"node" : {
"description" : "The cluster node name.",
"format" : "pve-node",
"type" : "string",
"typetext" : "<string>"
},
+ "timeout" : {
+ "default" : 180,
+ "description" : "Timeout for each guest shutdown task. Depending on `force-stop`, the shutdown gets then simply aborted or a hard-stop is forced.",
+ "maximum" : 7200,
+ "minimum" : 0,
+ "optional" : 1,
+ "type" : "integer",
+ "typetext" : "<integer> (0 - 7200)"
+ },
"vms" : {
"description" : "Only consider Guests with these IDs.",
"format" : "pve-vmid-list",
}
},
"permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "VM.PowerMgmt"
- ]
- ]
+ "description" : "The 'VM.PowerMgmt' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter.",
+ "user" : "all"
},
"protected" : 1,
"proxyto" : "node",
"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" : {
"additionalProperties" : 0,
"properties" : {
"maxworkers" : {
- "description" : "Maximal number of parallel migration job. If not set use 'max_workers' from datacenter.cfg, one of both must be set!",
+ "description" : "Maximal number of parallel migration job. If not set, uses'max_workers' from datacenter.cfg. One of both must be set!",
"minimum" : 1,
"optional" : 1,
"type" : "integer",
}
},
"permissions" : {
- "check" : [
- "perm",
- "/",
- [
- "VM.Migrate"
- ]
- ]
+ "description" : "The 'VM.Migrate' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter.",
+ "user" : "all"
},
"protected" : 1,
"proxyto" : "node",
"type" : "string"
},
"digest" : {
- "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
- "maxLength" : 40,
+ "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>"
},
"bwlimit" : {
- "description" : "Set bandwidth/io limits various operations.",
+ "description" : "Set I/O bandwidth limit for various operations (in KiB/s).",
"format" : {
"clone" : {
"description" : "bandwidth limit in KiB/s for cloning disks",
"type" : "string",
"typetext" : "<string>"
},
+ "content-dirs" : {
+ "description" : "Overrides for default content type directories.",
+ "format" : "pve-dir-override-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "create-base-path" : {
+ "default" : "yes",
+ "description" : "Create the base directory if it doesn't exist.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "create-subdirs" : {
+ "default" : "yes",
+ "description" : "Populate the directory with the default structure.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"data-pool" : {
"description" : "Data Pool (for erasure coding only)",
"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>"
},
"mkdir" : {
"default" : "yes",
- "description" : "Create the directory if it doesn't exist.",
+ "description" : "Create the directory if it doesn't exist and populate it with default sub-dirs. NOTE: Deprecated, use the 'create-base-path' and 'create-subdirs' options instead.",
"optional" : 1,
"type" : "boolean",
"typetext" : "<boolean>"
"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" : "<boolean>"
},
"options" : {
- "description" : "NFS mount options (see 'man nfs')",
+ "description" : "NFS/CIFS mount options (see 'man nfs' or 'man mount.cifs')",
"format" : "pve-storage-options",
"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" : "<string>"
},
"bwlimit" : {
- "description" : "Set bandwidth/io limits various operations.",
+ "description" : "Set I/O bandwidth limit for various operations (in KiB/s).",
"format" : {
"clone" : {
"description" : "bandwidth limit in KiB/s for cloning disks",
"type" : "string",
"typetext" : "<string>"
},
+ "content-dirs" : {
+ "description" : "Overrides for default content type directories.",
+ "format" : "pve-dir-override-list",
+ "optional" : 1,
+ "type" : "string",
+ "typetext" : "<string>"
+ },
+ "create-base-path" : {
+ "default" : "yes",
+ "description" : "Create the base directory if it doesn't exist.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
+ "create-subdirs" : {
+ "default" : "yes",
+ "description" : "Populate the directory with the default structure.",
+ "optional" : 1,
+ "type" : "boolean",
+ "typetext" : "<boolean>"
+ },
"data-pool" : {
"description" : "Data Pool (for erasure coding only)",
"optional" : 1,
},
"mkdir" : {
"default" : "yes",
- "description" : "Create the directory if it doesn't exist.",
+ "description" : "Create the directory if it doesn't exist and populate it with default sub-dirs. NOTE: Deprecated, use the 'create-base-path' and 'create-subdirs' options instead.",
"optional" : 1,
"type" : "boolean",
"typetext" : "<boolean>"
"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" : "<boolean>"
},
"options" : {
- "description" : "NFS mount options (see 'man nfs')",
+ "description" : "NFS/CIFS mount options (see 'man nfs' or 'man mount.cifs')",
"format" : "pve-storage-options",
"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>"
},
"userid" : {
- "description" : "User ID",
+ "description" : "Full User ID, in the `name@realm` format.",
"format" : "pve-userid",
"maxLength" : 64,
"type" : "string",
"path" : "/access/users/{userid}/tfa",
"text" : "tfa"
},
+ {
+ "info" : {
+ "PUT" : {
+ "allowtoken" : 1,
+ "description" : "Unlock a user's TFA authentication.",
+ "method" : "PUT",
+ "name" : "unlock_tfa",
+ "parameters" : {
+ "additionalProperties" : 0,
+ "properties" : {
+ "userid" : {
+ "description" : "Full User ID, in the `name@realm` format.",
+ "format" : "pve-userid",
+ "maxLength" : 64,
+ "type" : "string",
+ "typetext" : "<string>"
+ }
+ }
+ },
+ "permissions" : {
+ "check" : [
+ "userid-group",
+ [
+ "User.Modify"
+ ]
+ ]
+ },
+ "protected" : 1,
+ "returns" : {
+ "type" : "boolean"
+ }
+ }
+ },
+ "leaf" : 1,
+ "path" : "/access/users/{userid}/unlock-tfa",
+ "text" : "unlock-tfa"
+ },
{
"children" : [
{
"type" : "string"
},
"userid" : {
- "description" : "User ID",
+ "description" : "Full User ID, in the `name@realm` format.",
"format" : "pve-userid",
"maxLength" : 64,
"type" : "string",
"type" : "string"
},
"userid" : {
- "description" : "User ID",
+ "description" : "Full User ID, in the `name@realm` format.",
"format" : "pve-userid",
"maxLength" : 64,
"type" : "string",
"type" : "string"
},
"userid" : {
- "description" : "User ID",
+ "description" : "Full User ID, in the `name@realm` format.",
"format" : "pve-userid",
"maxLength" : 64,
"type" : "string",
"type" : "string"
},
"userid" : {
- "description" : "User ID",
+ "description" : "Full User ID, in the `name@realm` format.",
"format" : "pve-userid",
"maxLength" : 64,
"type" : "string",
"additionalProperties" : 0,
"properties" : {
"userid" : {
- "description" : "User ID",
+ "description" : "Full User ID, in the `name@realm` format.",
"format" : "pve-userid",
"maxLength" : 64,
"type" : "string",
"additionalProperties" : 0,
"properties" : {
"userid" : {
- "description" : "User ID",
+ "description" : "Full User ID, in the `name@realm` format.",
"format" : "pve-userid",
"maxLength" : 64,
"type" : "string",
"additionalProperties" : 0,
"properties" : {
"userid" : {
- "description" : "User ID",
+ "description" : "Full User ID, in the `name@realm` format.",
"format" : "pve-userid",
"maxLength" : 64,
"type" : "string",
"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>"
},
"userid" : {
- "description" : "User ID",
+ "description" : "Full User ID, in the `name@realm` format.",
"format" : "pve-userid",
"maxLength" : 64,
"type" : "string",
"description" : "The returned list is restricted to users where you have 'User.Modify' or 'Sys.Audit' permissions on '/access/groups' or on a group the user belongs too. But it always includes the current (authenticated) user.",
"user" : "all"
},
+ "protected" : 1,
"returns" : {
"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"
},
"optional" : 1,
"type" : "string"
},
+ "tfa-locked-until" : {
+ "description" : "Contains a timestamp until when a user is locked out of 2nd factors.",
+ "optional" : 1,
+ "type" : "integer"
+ },
"tokens" : {
"items" : {
"properties" : {
"optional" : 1,
"type" : "array"
},
+ "totp-locked" : {
+ "description" : "True if the user is currently locked out of TOTP factors.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
"userid" : {
- "description" : "User ID",
+ "description" : "Full User ID, in the `name@realm` format.",
"format" : "pve-userid",
"maxLength" : 64,
"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>"
"typetext" : "<string>"
},
"userid" : {
- "description" : "User ID",
+ "description" : "Full User ID, in the `name@realm` format.",
"format" : "pve-userid",
"maxLength" : 64,
"type" : "string",
},
"members" : {
"items" : {
- "description" : "User ID",
+ "description" : "Full User ID, in the `name@realm` format.",
"format" : "pve-userid",
"maxLength" : 64,
"type" : "string"
"optional" : 1,
"type" : "boolean"
},
+ "Mapping.Audit" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "Mapping.Modify" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "Mapping.Use" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
"Permissions.Modify" : {
"optional" : 1,
"type" : "boolean"
"optional" : 1,
"type" : "boolean"
},
+ "SDN.Use" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
+ "Sys.AccessNetwork" : {
+ "optional" : 1,
+ "type" : "boolean"
+ },
"Sys.Audit" : {
"optional" : 1,
"type" : "boolean"
"typetext" : "<string>"
},
"remove-vanished" : {
- "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync.",
+ "default" : "none",
+ "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync. Instead of a list it also can be 'none' (the default).",
"optional" : "1",
- "pattern" : "(?:(?:acl|properties|entry);)*(?:acl|properties|entry)",
+ "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
"type" : "string",
- "typetext" : "[acl];[properties];[entry]"
+ "typetext" : "([acl];[properties];[entry])|none"
},
"scope" : {
"description" : "Select what to 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,
"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.",
"format" : "realm-sync-options",
"optional" : 1,
"type" : "string",
- "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=[acl];[properties];[entry]] [,scope=<users|groups|both>]"
+ "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=([acl];[properties];[entry])|none] [,scope=<users|groups|both>]"
},
"sync_attributes" : {
"description" : "Comma separated list of key=value pairs for specifying which LDAP attributes map to which PVE user field. For example, to map the LDAP attribute 'mail' to PVEs 'email', write 'email=mail'. By default, each PVE user field is represented by an LDAP attribute of the same name.",
"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.",
"format" : "realm-sync-options",
"optional" : 1,
"type" : "string",
- "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=[acl];[properties];[entry]] [,scope=<users|groups|both>]"
+ "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=([acl];[properties];[entry])|none] [,scope=<users|groups|both>]"
},
"sync_attributes" : {
"description" : "Comma separated list of key=value pairs for specifying which LDAP attributes map to which PVE user field. For example, to map the LDAP attribute 'mail' to PVEs 'email', write 'email=mail'. By default, each PVE user field is represented by an LDAP attribute of the same name.",
"typetext" : "<string>"
},
"password" : {
- "description" : "The current password.",
+ "description" : "The current password of the user performing the change.",
"maxLength" : 64,
"minLength" : 5,
"optional" : 1,
"typetext" : "<string>"
},
"userid" : {
- "description" : "User ID",
+ "description" : "Full User ID, in the `name@realm` format.",
"format" : "pve-userid",
"maxLength" : 64,
"type" : "string",
}
},
"GET" : {
- "allowtoken" : 0,
+ "allowtoken" : 1,
"description" : "Fetch a requested TFA entry if present.",
"method" : "GET",
"name" : "get_tfa_entry",
"typetext" : "<string>"
},
"userid" : {
- "description" : "User ID",
+ "description" : "Full User ID, in the `name@realm` format.",
"format" : "pve-userid",
"maxLength" : 64,
"type" : "string",
"typetext" : "<string>"
},
"password" : {
- "description" : "The current password.",
+ "description" : "The current password of the user performing the change.",
"maxLength" : 64,
"minLength" : 5,
"optional" : 1,
"typetext" : "<string>"
},
"userid" : {
- "description" : "User ID",
+ "description" : "Full User ID, in the `name@realm` format.",
"format" : "pve-userid",
"maxLength" : 64,
"type" : "string",
],
"info" : {
"GET" : {
- "allowtoken" : 0,
+ "allowtoken" : 1,
"description" : "List TFA configurations of users.",
"method" : "GET",
"name" : "list_user_tfa",
"additionalProperties" : 0,
"properties" : {
"userid" : {
- "description" : "User ID",
+ "description" : "Full User ID, in the `name@realm` format.",
"format" : "pve-userid",
"maxLength" : 64,
"type" : "string",
},
"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,
"type" : "string"
},
"userid" : {
- "description" : "User ID",
+ "description" : "Full User ID, in the `name@realm` format.",
"format" : "pve-userid",
"maxLength" : 64,
"type" : "string",
],
"info" : {
"GET" : {
- "allowtoken" : 0,
+ "allowtoken" : 1,
"description" : "List TFA configurations of users.",
"method" : "GET",
"name" : "list_tfa",
},
"type" : "array"
},
+ "tfa-locked-until" : {
+ "description" : "Contains a timestamp until when a user is locked out of 2nd factors.",
+ "optional" : 1,
+ "type" : "integer"
+ },
+ "totp-locked" : {
+ "description" : "True if the user is currently locked out of TOTP factors.",
+ "optional" : 1,
+ "type" : "boolean"
+ },
"userid" : {
"description" : "User this entry belongs to.",
"type" : "string"
},
"type" : "object"
},
- "type" : "array"
- }
- },
- "POST" : {
- "allowtoken" : 0,
- "description" : "Finish a u2f challenge.",
- "method" : "POST",
- "name" : "verify_tfa",
- "parameters" : {
- "additionalProperties" : 0,
- "properties" : {
- "response" : {
- "description" : "The response to the current authentication challenge.",
- "type" : "string",
- "typetext" : "<string>"
- }
- }
- },
- "permissions" : {
- "user" : "all"
- },
- "protected" : 1,
- "returns" : {
- "properties" : {
- "ticket" : {
- "type" : "string"
+ "links" : [
+ {
+ "href" : "{userid}",
+ "rel" : "child"
}
- },
- "type" : "object"
+ ],
+ "type" : "array"
}
}
},
"additionalProperties" : 0,
"properties" : {
"new-format" : {
- "default" : 0,
- "description" : "With webauthn the format of half-authenticated tickts changed. New clients should pass 1 here and not worry about the old format. The old format is deprecated and will be retired with PVE-8.0",
+ "default" : 1,
+ "description" : "This parameter is now ignored and assumed to be 1.",
"optional" : 1,
"type" : "boolean",
"typetext" : "<boolean>"
"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,
"typetext" : "<string>"
},
"userid" : {
- "description" : "User ID",
+ "description" : "Full User ID, in the `name@realm` format.",
"format" : "pve-userid",
"maxLength" : 64,
"type" : "string",
"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,
},
"repoid" : {
"description" : "The short git revision from which this version was build.",
+ "pattern" : "[0-9a-fA-F]{8,64}",
"type" : "string"
},
"version" : {