From 82551b2bea5f83f45c8544eee204419af6bf27c6 Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Mon, 18 Sep 2023 17:04:47 +0200 Subject: [PATCH] update static/schema information Signed-off-by: Thomas Lamprecht --- api-viewer/apidata.js | 3140 +++++++++++++++++++++++++++--------- datacenter.cfg.5-opts.adoc | 30 +- ha-manager.1-synopsis.adoc | 4 +- pveceph.1-synopsis.adoc | 2 +- pvenode.1-synopsis.adoc | 2 +- pvesm.1-synopsis.adoc | 2 +- pvesr.1-synopsis.adoc | 2 +- pveum.1-synopsis.adoc | 34 +- vzdump.1-synopsis.adoc | 14 +- vzdump.conf.5-opts.adoc | 18 +- 10 files changed, 2452 insertions(+), 796 deletions(-) diff --git a/api-viewer/apidata.js b/api-viewer/apidata.js index 56e8e46..abeeb7b 100644 --- a/api-viewer/apidata.js +++ b/api-viewer/apidata.js @@ -97,8 +97,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -268,45 +268,1572 @@ const apiSchema = [ "enum" : [ "local" ], - "type" : "string" + "type" : "string" + } + }, + "type" : "object" + }, + "permissions" : { + "check" : [ + "perm", + "/storage", + [ + "Datastore.Allocate" + ] + ] + }, + "protected" : 1, + "returns" : { + "type" : "null" + } + } + }, + "leaf" : 0, + "path" : "/cluster/replication", + "text" : "replication" + }, + { + "children" : [ + { + "children" : [ + { + "info" : { + "DELETE" : { + "allowtoken" : 1, + "description" : "Remove Metric server.", + "method" : "DELETE", + "name" : "delete", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "id" : { + "format" : "pve-configid", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Modify" + ] + ] + }, + "protected" : 1, + "returns" : { + "type" : "null" + } + }, + "GET" : { + "allowtoken" : 1, + "description" : "Read metric server configuration.", + "method" : "GET", + "name" : "read", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "id" : { + "format" : "pve-configid", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Audit" + ] + ] + }, + "returns" : { + "type" : "object" + } + }, + "POST" : { + "allowtoken" : 1, + "description" : "Create a new external metric server config", + "method" : "POST", + "name" : "create", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "api-path-prefix" : { + "description" : "An API path prefix inserted between ':/' and '/api2/'. Can be useful if the InfluxDB service runs behind a reverse proxy.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "bucket" : { + "description" : "The InfluxDB bucket/db. Only necessary when using the http v2 api.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "disable" : { + "description" : "Flag to disable the plugin.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "id" : { + "description" : "The ID of the entry.", + "format" : "pve-configid", + "type" : "string", + "typetext" : "" + }, + "influxdbproto" : { + "default" : "udp", + "enum" : [ + "udp", + "http", + "https" + ], + "optional" : 1, + "type" : "string" + }, + "max-body-size" : { + "default" : 25000000, + "description" : "InfluxDB max-body-size in bytes. Requests are batched up to this size.", + "minimum" : 1, + "optional" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + }, + "mtu" : { + "default" : 1500, + "description" : "MTU for metrics transmission over UDP", + "maximum" : 65536, + "minimum" : 512, + "optional" : 1, + "type" : "integer", + "typetext" : " (512 - 65536)" + }, + "organization" : { + "description" : "The InfluxDB organization. Only necessary when using the http v2 api. Has no meaning when using v2 compatibility api.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "path" : { + "description" : "root graphite path (ex: proxmox.mycluster.mykey)", + "format" : "graphite-path", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "port" : { + "description" : "server network port", + "maximum" : 65536, + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - 65536)" + }, + "proto" : { + "description" : "Protocol to send graphite data. TCP or UDP (default)", + "enum" : [ + "udp", + "tcp" + ], + "optional" : 1, + "type" : "string" + }, + "server" : { + "description" : "server dns name or IP address", + "format" : "address", + "type" : "string", + "typetext" : "" + }, + "timeout" : { + "default" : 1, + "description" : "graphite TCP socket timeout (default=1)", + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + }, + "token" : { + "description" : "The InfluxDB access token. Only necessary when using the http v2 api. If the v2 compatibility api is used, use 'user:password' instead.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "type" : { + "description" : "Plugin type.", + "enum" : [ + "graphite", + "influxdb" + ], + "format" : "pve-configid", + "type" : "string" + }, + "verify-certificate" : { + "default" : 1, + "description" : "Set to 0 to disable certificate verification for https endpoints.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + } + }, + "type" : "object" + }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Modify" + ] + ] + }, + "protected" : 1, + "returns" : { + "type" : "null" + } + }, + "PUT" : { + "allowtoken" : 1, + "description" : "Update metric server configuration.", + "method" : "PUT", + "name" : "update", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "api-path-prefix" : { + "description" : "An API path prefix inserted between ':/' and '/api2/'. Can be useful if the InfluxDB service runs behind a reverse proxy.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "bucket" : { + "description" : "The InfluxDB bucket/db. Only necessary when using the http v2 api.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "delete" : { + "description" : "A list of settings you want to delete.", + "format" : "pve-configid-list", + "maxLength" : 4096, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "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" : "" + }, + "disable" : { + "description" : "Flag to disable the plugin.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "id" : { + "description" : "The ID of the entry.", + "format" : "pve-configid", + "type" : "string", + "typetext" : "" + }, + "influxdbproto" : { + "default" : "udp", + "enum" : [ + "udp", + "http", + "https" + ], + "optional" : 1, + "type" : "string" + }, + "max-body-size" : { + "default" : 25000000, + "description" : "InfluxDB max-body-size in bytes. Requests are batched up to this size.", + "minimum" : 1, + "optional" : 1, + "type" : "integer", + "typetext" : " (1 - N)" + }, + "mtu" : { + "default" : 1500, + "description" : "MTU for metrics transmission over UDP", + "maximum" : 65536, + "minimum" : 512, + "optional" : 1, + "type" : "integer", + "typetext" : " (512 - 65536)" + }, + "organization" : { + "description" : "The InfluxDB organization. Only necessary when using the http v2 api. Has no meaning when using v2 compatibility api.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "path" : { + "description" : "root graphite path (ex: proxmox.mycluster.mykey)", + "format" : "graphite-path", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "port" : { + "description" : "server network port", + "maximum" : 65536, + "minimum" : 1, + "type" : "integer", + "typetext" : " (1 - 65536)" + }, + "proto" : { + "description" : "Protocol to send graphite data. TCP or UDP (default)", + "enum" : [ + "udp", + "tcp" + ], + "optional" : 1, + "type" : "string" + }, + "server" : { + "description" : "server dns name or IP address", + "format" : "address", + "type" : "string", + "typetext" : "" + }, + "timeout" : { + "default" : 1, + "description" : "graphite TCP socket timeout (default=1)", + "minimum" : 0, + "optional" : 1, + "type" : "integer", + "typetext" : " (0 - N)" + }, + "token" : { + "description" : "The InfluxDB access token. Only necessary when using the http v2 api. If the v2 compatibility api is used, use 'user:password' instead.", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "verify-certificate" : { + "default" : 1, + "description" : "Set to 0 to disable certificate verification for https endpoints.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + } + }, + "type" : "object" + }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Modify" + ] + ] + }, + "protected" : 1, + "returns" : { + "type" : "null" + } + } + }, + "leaf" : 1, + "path" : "/cluster/metrics/server/{id}", + "text" : "{id}" + } + ], + "info" : { + "GET" : { + "allowtoken" : 1, + "description" : "List configured metric servers.", + "method" : "GET", + "name" : "server_index", + "parameters" : { + "additionalProperties" : 0 + }, + "permissions" : { + "check" : [ + "perm", + "/", + [ + "Sys.Audit" + ] + ] + }, + "returns" : { + "items" : { + "properties" : { + "disable" : { + "description" : "Flag to disable the plugin.", + "type" : "boolean" + }, + "id" : { + "description" : "The ID of the entry.", + "type" : "string" + }, + "port" : { + "description" : "Server network port", + "type" : "integer" + }, + "server" : { + "description" : "Server dns name or IP address", + "type" : "string" + }, + "type" : { + "description" : "Plugin type.", + "type" : "string" + } + }, + "type" : "object" + }, + "links" : [ + { + "href" : "{id}", + "rel" : "child" + } + ], + "type" : "array" + } + } + }, + "leaf" : 0, + "path" : "/cluster/metrics/server", + "text" : "server" + } + ], + "info" : { + "GET" : { + "allowtoken" : 1, + "description" : "Metrics index.", + "method" : "GET", + "name" : "index", + "parameters" : { + "additionalProperties" : 0 + }, + "permissions" : { + "user" : "all" + }, + "returns" : { + "items" : { + "properties" : {}, + "type" : "object" + }, + "links" : [ + { + "href" : "{name}", + "rel" : "child" + } + ], + "type" : "array" + } + } + }, + "leaf" : 0, + "path" : "/cluster/metrics", + "text" : "metrics" + }, + { + "children" : [ + { + "children" : [ + { + "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" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/mapping/notification", + [ + "Mapping.Modify" + ] + ] + }, + "protected" : 1, + "returns" : { + "type" : "null" + } + }, + "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" : "" + } + } + }, + "permissions" : { + "check" : [ + "or", + [ + "perm", + "/mapping/notification/{name}", + [ + "Mapping.Modify" + ] + ], + [ + "perm", + "/mapping/notification/{name}", + [ + "Mapping.Audit" + ] + ] + ] + }, + "protected" : 1, + "returns" : { + "properties" : { + "author" : { + "description" : "Author of the mail", + "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" + }, + "filter" : { + "description" : "Name of the filter that should be applied.", + "format" : "pve-configid", + "optional" : 1, + "type" : "string" + }, + "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" + } + }, + "type" : "object" + } + }, + "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" : "" + }, + "comment" : { + "description" : "Comment", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "delete" : { + "description" : "A list of settings you want to delete.", + "items" : { + "format" : "pve-configid", + "type" : "string" + }, + "optional" : 1, + "type" : "array", + "typetext" : "" + }, + "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" : "" + }, + "filter" : { + "description" : "Name of the filter that should be applied.", + "format" : "pve-configid", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "from-address" : { + "description" : "`From` address for the mail", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "mailto" : { + "description" : "List of email recipients", + "items" : { + "format" : "email-or-username", + "type" : "string" + }, + "optional" : 1, + "type" : "array", + "typetext" : "" + }, + "mailto-user" : { + "description" : "List of users", + "items" : { + "format" : "pve-userid", + "type" : "string" + }, + "optional" : 1, + "type" : "array", + "typetext" : "" + }, + "name" : { + "description" : "The name of the endpoint.", + "format" : "pve-configid", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/mapping/notification/{name}", + [ + "Mapping.Modify" + ] + ] + }, + "protected" : 1, + "returns" : { + "type" : "null" + } + } + }, + "leaf" : 1, + "path" : "/cluster/notifications/endpoints/sendmail/{name}", + "text" : "{name}" + } + ], + "info" : { + "GET" : { + "allowtoken" : 1, + "description" : "Returns a list of all sendmail endpoints", + "method" : "GET", + "name" : "get_sendmail_endpoints", + "parameters" : { + "additionalProperties" : 0 + }, + "permissions" : { + "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/notification/'.", + "user" : "all" + }, + "protected" : 1, + "returns" : { + "items" : { + "properties" : { + "author" : { + "description" : "Author of the mail", + "optional" : 1, + "type" : "string" + }, + "comment" : { + "description" : "Comment", + "optional" : 1, + "type" : "string" + }, + "filter" : { + "description" : "Name of the filter that should be applied.", + "format" : "pve-configid", + "optional" : 1, + "type" : "string" + }, + "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" + } + }, + "type" : "object" + }, + "links" : [ + { + "href" : "{name}", + "rel" : "child" + } + ], + "type" : "array" + } + }, + "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" : "" + }, + "comment" : { + "description" : "Comment", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "filter" : { + "description" : "Name of the filter that should be applied.", + "format" : "pve-configid", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "from-address" : { + "description" : "`From` address for the mail", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "mailto" : { + "description" : "List of email recipients", + "items" : { + "format" : "email-or-username", + "type" : "string" + }, + "optional" : 1, + "type" : "array", + "typetext" : "" + }, + "mailto-user" : { + "description" : "List of users", + "items" : { + "format" : "pve-userid", + "type" : "string" + }, + "optional" : 1, + "type" : "array", + "typetext" : "" + }, + "name" : { + "description" : "The name of the endpoint.", + "format" : "pve-configid", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/mapping/notification", + [ + "Mapping.Modify" + ] + ] + }, + "protected" : 1, + "returns" : { + "type" : "null" + } + } + }, + "leaf" : 0, + "path" : "/cluster/notifications/endpoints/sendmail", + "text" : "sendmail" + }, + { + "children" : [ + { + "info" : { + "DELETE" : { + "allowtoken" : 1, + "description" : "Remove gotify endpoint", + "method" : "DELETE", + "name" : "delete_gotify_endpoint", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "name" : { + "format" : "pve-configid", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/mapping/notification/{name}", + [ + "Mapping.Modify" + ] + ] + }, + "protected" : 1, + "returns" : { + "type" : "null" + } + }, + "GET" : { + "allowtoken" : 1, + "description" : "Return a specific gotify endpoint", + "method" : "GET", + "name" : "get_gotify_endpoint", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "name" : { + "description" : "Name of the endpoint.", + "format" : "pve-configid", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "or", + [ + "perm", + "/mapping/notification/{name}", + [ + "Mapping.Modify" + ] + ], + [ + "perm", + "/mapping/notification/{name}", + [ + "Mapping.Audit" + ] + ] + ] + }, + "protected" : 1, + "returns" : { + "properties" : { + "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" + }, + "filter" : { + "description" : "Name of the filter that should be applied.", + "format" : "pve-configid", + "optional" : 1, + "type" : "string" + }, + "name" : { + "description" : "The name of the endpoint.", + "format" : "pve-configid", + "type" : "string" + }, + "server" : { + "description" : "Server URL", + "type" : "string" + } + }, + "type" : "object" + } + }, + "PUT" : { + "allowtoken" : 1, + "description" : "Update existing gotify endpoint", + "method" : "PUT", + "name" : "update_gotify_endpoint", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "comment" : { + "description" : "Comment", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "delete" : { + "description" : "A list of settings you want to delete.", + "items" : { + "format" : "pve-configid", + "type" : "string" + }, + "optional" : 1, + "type" : "array", + "typetext" : "" + }, + "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" : "" + }, + "filter" : { + "description" : "Name of the filter that should be applied.", + "format" : "pve-configid", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "name" : { + "description" : "The name of the endpoint.", + "format" : "pve-configid", + "type" : "string", + "typetext" : "" + }, + "server" : { + "description" : "Server URL", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "token" : { + "description" : "Secret token", + "optional" : 1, + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/mapping/notification/{name}", + [ + "Mapping.Modify" + ] + ] + }, + "protected" : 1, + "returns" : { + "type" : "null" + } + } + }, + "leaf" : 1, + "path" : "/cluster/notifications/endpoints/gotify/{name}", + "text" : "{name}" + } + ], + "info" : { + "GET" : { + "allowtoken" : 1, + "description" : "Returns a list of all gotify endpoints", + "method" : "GET", + "name" : "get_gotify_endpoints", + "parameters" : { + "additionalProperties" : 0 + }, + "permissions" : { + "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/notification/'.", + "user" : "all" + }, + "protected" : 1, + "returns" : { + "items" : { + "properties" : { + "comment" : { + "description" : "Comment", + "optional" : 1, + "type" : "string" + }, + "filter" : { + "description" : "Name of the filter that should be applied.", + "format" : "pve-configid", + "optional" : 1, + "type" : "string" + }, + "name" : { + "description" : "The name of the endpoint.", + "format" : "pve-configid", + "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" : "" + }, + "filter" : { + "description" : "Name of the filter that should be applied.", + "format" : "pve-configid", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "name" : { + "description" : "The name of the endpoint.", + "format" : "pve-configid", + "type" : "string", + "typetext" : "" + }, + "server" : { + "description" : "Server URL", + "type" : "string", + "typetext" : "" + }, + "token" : { + "description" : "Secret token", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/mapping/notification", + [ + "Mapping.Modify" + ] + ] + }, + "protected" : 1, + "returns" : { + "type" : "null" + } + } + }, + "leaf" : 0, + "path" : "/cluster/notifications/endpoints/gotify", + "text" : "gotify" + } + ], + "info" : { + "GET" : { + "allowtoken" : 1, + "description" : "Index for all available endpoint types.", + "method" : "GET", + "name" : "endpoints_index", + "parameters" : { + "additionalProperties" : 0 + }, + "permissions" : { + "user" : "all" + }, + "returns" : { + "items" : { + "properties" : {}, + "type" : "object" + }, + "links" : [ + { + "href" : "{name}", + "rel" : "child" + } + ], + "type" : "array" + } + } + }, + "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" : "" + } + } + }, + "permissions" : { + "description" : "The user requires 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/notification/'. The special 'mail-to-root' target can be accessed by all users.", + "user" : "all" + }, + "protected" : 1, + "returns" : { + "type" : "null" + } + } + }, + "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 (endpoints and groups).", + "method" : "GET", + "name" : "get_all_targets", + "parameters" : { + "additionalProperties" : 0 + }, + "permissions" : { + "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/notification/'. The special 'mail-to-root' target is available to all users.", + "user" : "all" + }, + "protected" : 1, + "returns" : { + "items" : { + "properties" : { + "comment" : { + "description" : "Comment", + "optional" : 1, + "type" : "string" + }, + "name" : { + "description" : "Name of the endpoint/group.", + "format" : "pve-configid", + "type" : "string" + }, + "type" : { + "description" : "Type of the endpoint or group.", + "enum" : [ + "sendmail", + "gotify", + "group" + ], + "type" : "string" + } + }, + "type" : "object" + }, + "links" : [ + { + "href" : "{name}", + "rel" : "child" + } + ], + "type" : "array" + } + } + }, + "leaf" : 0, + "path" : "/cluster/notifications/targets", + "text" : "targets" + }, + { + "children" : [ + { + "info" : { + "DELETE" : { + "allowtoken" : 1, + "description" : "Remove group", + "method" : "DELETE", + "name" : "delete_group", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "name" : { + "format" : "pve-configid", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/mapping/notification/{name}", + [ + "Mapping.Modify" + ] + ] + }, + "protected" : 1, + "returns" : { + "type" : "null" + } + }, + "GET" : { + "allowtoken" : 1, + "description" : "Return a specific group", + "method" : "GET", + "name" : "get_group", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "name" : { + "format" : "pve-configid", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "or", + [ + "perm", + "/mapping/notification/{name}", + [ + "Mapping.Modify" + ] + ], + [ + "perm", + "/mapping/notification/{name}", + [ + "Mapping.Audit" + ] + ] + ] + }, + "protected" : 1, + "returns" : { + "properties" : { + "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" + }, + "endpoint" : { + "description" : "List of included endpoints", + "items" : { + "format" : "pve-configid", + "type" : "string" + }, + "type" : "array" + }, + "filter" : { + "description" : "Name of the filter that should be applied.", + "format" : "pve-configid", + "optional" : 1, + "type" : "string" + }, + "name" : { + "description" : "Name of the group.", + "format" : "pve-configid", + "type" : "string" + } + }, + "type" : "object" + } + }, + "PUT" : { + "allowtoken" : 1, + "description" : "Update existing group", + "method" : "PUT", + "name" : "update_group", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "comment" : { + "description" : "Comment", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "delete" : { + "description" : "A list of settings you want to delete.", + "items" : { + "format" : "pve-configid", + "type" : "string" + }, + "optional" : 1, + "type" : "array", + "typetext" : "" + }, + "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" : "" + }, + "endpoint" : { + "description" : "List of included endpoints", + "items" : { + "format" : "pve-configid", + "type" : "string" + }, + "optional" : 1, + "type" : "array", + "typetext" : "" + }, + "filter" : { + "description" : "Name of the filter that should be applied.", + "format" : "pve-configid", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "name" : { + "description" : "Name of the group.", + "format" : "pve-configid", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/mapping/notification/{name}", + [ + "Mapping.Modify" + ] + ] + }, + "protected" : 1, + "returns" : { + "type" : "null" + } + } + }, + "leaf" : 1, + "path" : "/cluster/notifications/groups/{name}", + "text" : "{name}" + } + ], + "info" : { + "GET" : { + "allowtoken" : 1, + "description" : "Returns a list of all groups", + "method" : "GET", + "name" : "get_groups", + "parameters" : { + "additionalProperties" : 0 + }, + "permissions" : { + "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/notification/'.", + "user" : "all" + }, + "protected" : 1, + "returns" : { + "items" : { + "properties" : { + "comment" : { + "description" : "Comment", + "optional" : 1, + "type" : "string" + }, + "endpoint" : { + "description" : "List of included endpoints", + "items" : { + "format" : "pve-configid", + "type" : "string" + }, + "type" : "array" + }, + "filter" : { + "description" : "Name of the filter that should be applied.", + "format" : "pve-configid", + "optional" : 1, + "type" : "string" + }, + "name" : { + "description" : "Name of the group.", + "format" : "pve-configid", + "type" : "string" + } + }, + "type" : "object" + }, + "links" : [ + { + "href" : "{name}", + "rel" : "child" + } + ], + "type" : "array" } }, - "type" : "object" - }, - "permissions" : { - "check" : [ - "perm", - "/storage", - [ - "Datastore.Allocate" - ] - ] + "POST" : { + "allowtoken" : 1, + "description" : "Create a new group", + "method" : "POST", + "name" : "create_group", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "comment" : { + "description" : "Comment", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "endpoint" : { + "description" : "List of included endpoints", + "items" : { + "format" : "pve-configid", + "type" : "string" + }, + "type" : "array", + "typetext" : "" + }, + "filter" : { + "description" : "Name of the filter that should be applied.", + "format" : "pve-configid", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "name" : { + "description" : "Name of the group.", + "format" : "pve-configid", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/mapping/notification", + [ + "Mapping.Modify" + ] + ] + }, + "protected" : 1, + "returns" : { + "type" : "null" + } + } }, - "protected" : 1, - "returns" : { - "type" : "null" - } - } - }, - "leaf" : 0, - "path" : "/cluster/replication", - "text" : "replication" - }, - { - "children" : [ + "leaf" : 0, + "path" : "/cluster/notifications/groups", + "text" : "groups" + }, { "children" : [ { "info" : { "DELETE" : { "allowtoken" : 1, - "description" : "Remove Metric server.", + "description" : "Remove filter", "method" : "DELETE", - "name" : "delete", + "name" : "delete_filter", "parameters" : { "additionalProperties" : 0, "properties" : { - "id" : { + "name" : { "format" : "pve-configid", "type" : "string", "typetext" : "" @@ -316,9 +1843,9 @@ const apiSchema = [ "permissions" : { "check" : [ "perm", - "/", + "/mapping/notification/{name}", [ - "Sys.Modify" + "Mapping.Modify" ] ] }, @@ -329,13 +1856,13 @@ const apiSchema = [ }, "GET" : { "allowtoken" : 1, - "description" : "Read metric server configuration.", + "description" : "Return a specific filter", "method" : "GET", - "name" : "read", + "name" : "get_filter", "parameters" : { "additionalProperties" : 0, "properties" : { - "id" : { + "name" : { "format" : "pve-configid", "type" : "string", "typetext" : "" @@ -344,297 +1871,144 @@ const apiSchema = [ }, "permissions" : { "check" : [ - "perm", - "/", + "or", [ - "Sys.Audit" + "perm", + "/mapping/notification/{name}", + [ + "Mapping.Modify" + ] + ], + [ + "perm", + "/mapping/notification/{name}", + [ + "Mapping.Audit" + ] ] ] }, + "protected" : 1, "returns" : { - "type" : "object" - } - }, - "POST" : { - "allowtoken" : 1, - "description" : "Create a new external metric server config", - "method" : "POST", - "name" : "create", - "parameters" : { - "additionalProperties" : 0, "properties" : { - "api-path-prefix" : { - "description" : "An API path prefix inserted between ':/' and '/api2/'. Can be useful if the InfluxDB service runs behind a reverse proxy.", + "comment" : { + "description" : "Comment", "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "string" }, - "bucket" : { - "description" : "The InfluxDB bucket/db. Only necessary when using the http v2 api.", + "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" : "" + "type" : "string" }, - "disable" : { - "description" : "Flag to disable the plugin.", + "invert-match" : { + "description" : "Invert match of the whole filter", "optional" : 1, - "type" : "boolean", - "typetext" : "" - }, - "id" : { - "description" : "The ID of the entry.", - "format" : "pve-configid", - "type" : "string", - "typetext" : "" + "type" : "boolean" }, - "influxdbproto" : { - "default" : "udp", + "min-severity" : { + "description" : "Minimum severity to match", "enum" : [ - "udp", - "http", - "https" + "info", + "notice", + "warning", + "error" ], "optional" : 1, "type" : "string" }, - "max-body-size" : { - "default" : 25000000, - "description" : "InfluxDB max-body-size in bytes. Requests are batched up to this size.", - "minimum" : 1, - "optional" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - }, - "mtu" : { - "default" : 1500, - "description" : "MTU for metrics transmission over UDP", - "maximum" : 65536, - "minimum" : 512, - "optional" : 1, - "type" : "integer", - "typetext" : " (512 - 65536)" - }, - "organization" : { - "description" : "The InfluxDB organization. Only necessary when using the http v2 api. Has no meaning when using v2 compatibility api.", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "path" : { - "description" : "root graphite path (ex: proxmox.mycluster.mykey)", - "format" : "graphite-path", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "port" : { - "description" : "server network port", - "maximum" : 65536, - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - 65536)" - }, - "proto" : { - "description" : "Protocol to send graphite data. TCP or UDP (default)", + "mode" : { + "default" : "and", + "description" : "Choose between 'and' and 'or' for when multiple properties are specified", "enum" : [ - "udp", - "tcp" + "and", + "or" ], "optional" : 1, "type" : "string" }, - "server" : { - "description" : "server dns name or IP address", - "format" : "address", - "type" : "string", - "typetext" : "" - }, - "timeout" : { - "default" : 1, - "description" : "graphite TCP socket timeout (default=1)", - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" - }, - "token" : { - "description" : "The InfluxDB access token. Only necessary when using the http v2 api. If the v2 compatibility api is used, use 'user:password' instead.", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "type" : { - "description" : "Plugin type.", - "enum" : [ - "graphite", - "influxdb" - ], + "name" : { + "description" : "Name of the endpoint.", "format" : "pve-configid", "type" : "string" - }, - "verify-certificate" : { - "default" : 1, - "description" : "Set to 0 to disable certificate verification for https endpoints.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" } }, "type" : "object" - }, - "permissions" : { - "check" : [ - "perm", - "/", - [ - "Sys.Modify" - ] - ] - }, - "protected" : 1, - "returns" : { - "type" : "null" } }, "PUT" : { "allowtoken" : 1, - "description" : "Update metric server configuration.", + "description" : "Update existing filter", "method" : "PUT", - "name" : "update", + "name" : "update_filter", "parameters" : { "additionalProperties" : 0, "properties" : { - "api-path-prefix" : { - "description" : "An API path prefix inserted between ':/' and '/api2/'. Can be useful if the InfluxDB service runs behind a reverse proxy.", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "bucket" : { - "description" : "The InfluxDB bucket/db. Only necessary when using the http v2 api.", + "comment" : { + "description" : "Comment", "optional" : 1, "type" : "string", "typetext" : "" }, "delete" : { "description" : "A list of settings you want to delete.", - "format" : "pve-configid-list", - "maxLength" : 4096, + "items" : { + "format" : "pve-configid", + "type" : "string" + }, "optional" : 1, - "type" : "string", - "typetext" : "" + "type" : "array", + "typetext" : "" }, "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" : "" }, - "disable" : { - "description" : "Flag to disable the plugin.", + "invert-match" : { + "description" : "Invert match of the whole filter", "optional" : 1, "type" : "boolean", "typetext" : "" }, - "id" : { - "description" : "The ID of the entry.", - "format" : "pve-configid", - "type" : "string", - "typetext" : "" - }, - "influxdbproto" : { - "default" : "udp", + "min-severity" : { + "description" : "Minimum severity to match", "enum" : [ - "udp", - "http", - "https" + "info", + "notice", + "warning", + "error" ], "optional" : 1, "type" : "string" }, - "max-body-size" : { - "default" : 25000000, - "description" : "InfluxDB max-body-size in bytes. Requests are batched up to this size.", - "minimum" : 1, - "optional" : 1, - "type" : "integer", - "typetext" : " (1 - N)" - }, - "mtu" : { - "default" : 1500, - "description" : "MTU for metrics transmission over UDP", - "maximum" : 65536, - "minimum" : 512, - "optional" : 1, - "type" : "integer", - "typetext" : " (512 - 65536)" - }, - "organization" : { - "description" : "The InfluxDB organization. Only necessary when using the http v2 api. Has no meaning when using v2 compatibility api.", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "path" : { - "description" : "root graphite path (ex: proxmox.mycluster.mykey)", - "format" : "graphite-path", - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "port" : { - "description" : "server network port", - "maximum" : 65536, - "minimum" : 1, - "type" : "integer", - "typetext" : " (1 - 65536)" - }, - "proto" : { - "description" : "Protocol to send graphite data. TCP or UDP (default)", + "mode" : { + "default" : "and", + "description" : "Choose between 'and' and 'or' for when multiple properties are specified", "enum" : [ - "udp", - "tcp" + "and", + "or" ], "optional" : 1, "type" : "string" }, - "server" : { - "description" : "server dns name or IP address", - "format" : "address", - "type" : "string", - "typetext" : "" - }, - "timeout" : { - "default" : 1, - "description" : "graphite TCP socket timeout (default=1)", - "minimum" : 0, - "optional" : 1, - "type" : "integer", - "typetext" : " (0 - N)" - }, - "token" : { - "description" : "The InfluxDB access token. Only necessary when using the http v2 api. If the v2 compatibility api is used, use 'user:password' instead.", - "optional" : 1, + "name" : { + "description" : "Name of the endpoint.", + "format" : "pve-configid", "type" : "string", "typetext" : "" - }, - "verify-certificate" : { - "default" : 1, - "description" : "Set to 0 to disable certificate verification for https endpoints.", - "optional" : 1, - "type" : "boolean", - "typetext" : "" } - }, - "type" : "object" + } }, "permissions" : { "check" : [ "perm", - "/", + "/mapping/notification/{name}", [ - "Sys.Modify" + "Mapping.Modify" ] ] }, @@ -645,49 +2019,61 @@ const apiSchema = [ } }, "leaf" : 1, - "path" : "/cluster/metrics/server/{id}", - "text" : "{id}" + "path" : "/cluster/notifications/filters/{name}", + "text" : "{name}" } ], "info" : { "GET" : { "allowtoken" : 1, - "description" : "List configured metric servers.", + "description" : "Returns a list of all filters", "method" : "GET", - "name" : "server_index", + "name" : "get_filters", "parameters" : { "additionalProperties" : 0 }, "permissions" : { - "check" : [ - "perm", - "/", - [ - "Sys.Audit" - ] - ] + "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/notification/'.", + "user" : "all" }, + "protected" : 1, "returns" : { "items" : { "properties" : { - "disable" : { - "description" : "Flag to disable the plugin.", + "comment" : { + "description" : "Comment", + "optional" : 1, + "type" : "string" + }, + "invert-match" : { + "description" : "Invert match of the whole filter", + "optional" : 1, "type" : "boolean" }, - "id" : { - "description" : "The ID of the entry.", + "min-severity" : { + "description" : "Minimum severity to match", + "enum" : [ + "info", + "notice", + "warning", + "error" + ], + "optional" : 1, "type" : "string" }, - "port" : { - "description" : "Server network port", - "type" : "integer" - }, - "server" : { - "description" : "Server dns name or IP address", + "mode" : { + "default" : "and", + "description" : "Choose between 'and' and 'or' for when multiple properties are specified", + "enum" : [ + "and", + "or" + ], + "optional" : 1, "type" : "string" }, - "type" : { - "description" : "Plugin type.", + "name" : { + "description" : "Name of the endpoint.", + "format" : "pve-configid", "type" : "string" } }, @@ -695,23 +2081,86 @@ const apiSchema = [ }, "links" : [ { - "href" : "{id}", + "href" : "{name}", "rel" : "child" } ], "type" : "array" } + }, + "POST" : { + "allowtoken" : 1, + "description" : "Create a new filter", + "method" : "POST", + "name" : "create_filter", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "comment" : { + "description" : "Comment", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "invert-match" : { + "description" : "Invert match of the whole filter", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, + "min-severity" : { + "description" : "Minimum severity to match", + "enum" : [ + "info", + "notice", + "warning", + "error" + ], + "optional" : 1, + "type" : "string" + }, + "mode" : { + "default" : "and", + "description" : "Choose between 'and' and 'or' for when multiple properties are specified", + "enum" : [ + "and", + "or" + ], + "optional" : 1, + "type" : "string" + }, + "name" : { + "description" : "Name of the endpoint.", + "format" : "pve-configid", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/mapping/notification", + [ + "Mapping.Modify" + ] + ] + }, + "protected" : 1, + "returns" : { + "type" : "null" + } } }, "leaf" : 0, - "path" : "/cluster/metrics/server", - "text" : "server" + "path" : "/cluster/notifications/filters", + "text" : "filters" } ], "info" : { "GET" : { "allowtoken" : 1, - "description" : "Metrics index.", + "description" : "Index for notification-related API endpoints.", "method" : "GET", "name" : "index", "parameters" : { @@ -736,8 +2185,8 @@ const apiSchema = [ } }, "leaf" : 0, - "path" : "/cluster/metrics", - "text" : "metrics" + "path" : "/cluster/notifications", + "text" : "notifications" }, { "children" : [ @@ -1286,8 +2735,8 @@ const apiSchema = [ "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" : "" @@ -1470,8 +2919,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -1713,8 +3162,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -1861,8 +3310,8 @@ const apiSchema = [ "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" }, @@ -1899,8 +3348,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -1954,8 +3403,8 @@ const apiSchema = [ "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" : "" @@ -2124,8 +3573,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -2320,8 +3769,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -2461,8 +3910,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -2547,8 +3996,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -2662,8 +4111,8 @@ const apiSchema = [ "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" }, @@ -2762,8 +4211,8 @@ const apiSchema = [ "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" }, @@ -2800,8 +4249,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -2855,8 +4304,8 @@ const apiSchema = [ "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" : "" @@ -2934,8 +4383,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -3006,8 +4455,8 @@ const apiSchema = [ "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" }, @@ -3174,8 +4623,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -3664,7 +5113,7 @@ const apiSchema = [ }, "mailnotification" : { "default" : "always", - "description" : "Specify when to send an email", + "description" : "Deprecated: use 'notification-policy' instead.", "enum" : [ "always", "failure" @@ -3673,7 +5122,7 @@ const apiSchema = [ "type" : "string" }, "mailto" : { - "description" : "Comma-separated list of email addresses or users that should receive email notifications.", + "description" : "Comma-separated list of email addresses or users that should receive email notifications. Has no effect if the 'notification-target' option is set at the same time.", "format" : "email-or-username-list", "optional" : 1, "type" : "string", @@ -3712,12 +5161,30 @@ const apiSchema = [ "type" : "string", "typetext" : "" }, + "notification-policy" : { + "default" : "always", + "description" : "Specify when to send a notification", + "enum" : [ + "always", + "failure", + "never" + ], + "optional" : 1, + "type" : "string" + }, + "notification-target" : { + "description" : "Determine the target to which notifications should be sent. Can either be a notification endpoint or a notification group. This option takes precedence over 'mailto', meaning that if both are set, the 'mailto' option will be ignored.", + "format" : "pve-configid", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "performance" : { "description" : "Other performance-related settings.", "format" : "backup-performance", "optional" : 1, "type" : "string", - "typetext" : "[max-workers=]" + "typetext" : "[max-workers=] [,pbs-entries-max=]" }, "pigz" : { "default" : 0, @@ -4006,7 +5473,7 @@ const apiSchema = [ }, "mailnotification" : { "default" : "always", - "description" : "Specify when to send an email", + "description" : "Deprecated: use 'notification-policy' instead.", "enum" : [ "always", "failure" @@ -4015,7 +5482,7 @@ const apiSchema = [ "type" : "string" }, "mailto" : { - "description" : "Comma-separated list of email addresses or users that should receive email notifications.", + "description" : "Comma-separated list of email addresses or users that should receive email notifications. Has no effect if the 'notification-target' option is set at the same time.", "format" : "email-or-username-list", "optional" : 1, "type" : "string", @@ -4054,12 +5521,30 @@ const apiSchema = [ "type" : "string", "typetext" : "" }, + "notification-policy" : { + "default" : "always", + "description" : "Specify when to send a notification", + "enum" : [ + "always", + "failure", + "never" + ], + "optional" : 1, + "type" : "string" + }, + "notification-target" : { + "description" : "Determine the target to which notifications should be sent. Can either be a notification endpoint or a notification group. This option takes precedence over 'mailto', meaning that if both are set, the 'mailto' option will be ignored.", + "format" : "pve-configid", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "performance" : { "description" : "Other performance-related settings.", "format" : "backup-performance", "optional" : 1, "type" : "string", - "typetext" : "[max-workers=]" + "typetext" : "[max-workers=] [,pbs-entries-max=]" }, "pigz" : { "default" : 0, @@ -4517,8 +6002,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -4810,8 +6295,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -5413,8 +6898,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -7208,8 +8693,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -7236,7 +8721,7 @@ const apiSchema = [ "type" : "string" }, "iommugroup" : { - "description" : "The IOMMU group in which the device is to be expected in.Used for detecting hardware changes.", + "description" : "The IOMMU group in which the device is to be expected in. Used for detecting hardware changes.", "optional" : 1, "type" : "integer" }, @@ -7398,336 +8883,336 @@ const apiSchema = [ "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" : "" - }, - "mdev" : { - "optional" : 1, - "type" : "boolean", - "typetext" : "" - } - }, - "type" : "object" - }, - "permissions" : { - "check" : [ - "perm", - "/mapping/pci", - [ - "Mapping.Modify" - ] - ] - }, - "protected" : 1, - "returns" : { - "type" : "null" - } - } - }, - "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" : "" - } - } - }, - "permissions" : { - "check" : [ - "perm", - "/mapping/usb", - [ - "Mapping.Modify" - ] - ] - }, - "protected" : 1, - "returns" : { - "type" : "null" - } - }, - "GET" : { - "allowtoken" : 1, - "description" : "Get USB Mapping.", - "method" : "GET", - "name" : "get", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "id" : { - "format" : "pve-configid", - "type" : "string", - "typetext" : "" - } - } - }, - "permissions" : { - "check" : [ - "or", - [ - "perm", - "/mapping/usb/{id}", - [ - "Mapping.Audit" - ] - ], - [ - "perm", - "/mapping/usb/{id}", - [ - "Mapping.Use" - ] - ], - [ - "perm", - "/mapping/usb/{id}", - [ - "Mapping.Modify" - ] - ] - ] - }, - "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" : "" - }, - "description" : { - "description" : "Description of the logical PCI device.", - "maxLength" : 4096, - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "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" : "" - }, - "id" : { - "description" : "The ID of the logical PCI mapping.", - "format" : "pve-configid", - "type" : "string", - "typetext" : "" - }, - "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" : "" - } - }, - "type" : "object" - }, - "permissions" : { - "check" : [ - "perm", - "/mapping/usb/{id}", - [ - "Mapping.Modify" - ] - ] - }, - "protected" : 1, - "returns" : { - "type" : "null" - } - } - }, - "leaf" : 1, - "path" : "/cluster/mapping/usb/{id}", - "text" : "{id}" - } - ], - "info" : { - "GET" : { - "allowtoken" : 1, - "description" : "List USB Hardware Mappings", - "method" : "GET", - "name" : "index", - "parameters" : { - "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" : "" - } - } - }, - "permissions" : { - "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/usb/'.", - "user" : "all" - }, - "returns" : { - "items" : { - "properties" : { - "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" : "{id}", - "rel" : "child" - } - ], - "type" : "array" - } - }, - "POST" : { - "allowtoken" : 1, - "description" : "Create a new hardware mapping.", - "method" : "POST", - "name" : "create", - "parameters" : { - "additionalProperties" : 0, - "properties" : { - "description" : { - "description" : "Description of the logical PCI device.", - "maxLength" : 4096, - "optional" : 1, - "type" : "string", - "typetext" : "" - }, - "id" : { - "description" : "The ID of the logical PCI mapping.", - "format" : "pve-configid", - "type" : "string", - "typetext" : "" - }, - "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" : "" + }, + "mdev" : { + "optional" : 1, + "type" : "boolean", + "typetext" : "" + } + }, + "type" : "object" + }, + "permissions" : { + "check" : [ + "perm", + "/mapping/pci", + [ + "Mapping.Modify" + ] + ] + }, + "protected" : 1, + "returns" : { + "type" : "null" + } + } + }, + "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" : "" + } + } + }, + "permissions" : { + "check" : [ + "perm", + "/mapping/usb", + [ + "Mapping.Modify" + ] + ] + }, + "protected" : 1, + "returns" : { + "type" : "null" + } + }, + "GET" : { + "allowtoken" : 1, + "description" : "Get USB Mapping.", + "method" : "GET", + "name" : "get", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "id" : { + "format" : "pve-configid", + "type" : "string", + "typetext" : "" + } + } + }, + "permissions" : { + "check" : [ + "or", + [ + "perm", + "/mapping/usb/{id}", + [ + "Mapping.Audit" + ] + ], + [ + "perm", + "/mapping/usb/{id}", + [ + "Mapping.Use" + ] + ], + [ + "perm", + "/mapping/usb/{id}", + [ + "Mapping.Modify" + ] + ] + ] + }, + "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" : "" + }, + "description" : { + "description" : "Description of the logical USB device.", + "maxLength" : 4096, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "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" : "" + }, + "id" : { + "description" : "The ID of the logical USB mapping.", + "format" : "pve-configid", + "type" : "string", + "typetext" : "" + }, + "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" : "" + } + }, + "type" : "object" + }, + "permissions" : { + "check" : [ + "perm", + "/mapping/usb/{id}", + [ + "Mapping.Modify" + ] + ] + }, + "protected" : 1, + "returns" : { + "type" : "null" + } + } + }, + "leaf" : 1, + "path" : "/cluster/mapping/usb/{id}", + "text" : "{id}" + } + ], + "info" : { + "GET" : { + "allowtoken" : 1, + "description" : "List USB Hardware Mappings", + "method" : "GET", + "name" : "index", + "parameters" : { + "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" : "" + } + } + }, + "permissions" : { + "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/usb/'.", + "user" : "all" + }, + "returns" : { + "items" : { + "properties" : { + "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" : "{id}", + "rel" : "child" + } + ], + "type" : "array" + } + }, + "POST" : { + "allowtoken" : 1, + "description" : "Create a new hardware mapping.", + "method" : "POST", + "name" : "create", + "parameters" : { + "additionalProperties" : 0, + "properties" : { + "description" : { + "description" : "Description of the logical USB device.", + "maxLength" : 4096, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, + "id" : { + "description" : "The ID of the logical USB mapping.", + "format" : "pve-configid", + "type" : "string", + "typetext" : "" + }, + "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" @@ -7912,8 +9397,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -8185,8 +9670,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -8463,8 +9948,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -9015,8 +10500,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -9310,8 +10795,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -9547,8 +11032,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -9960,7 +11445,9 @@ const apiSchema = [ }, "vmid" : { "description" : "The numerical vmid (when type in qemu,lxc).", - "minimum" : 1, + "format" : "pve-vmid", + "maximum" : 999999999, + "minimum" : 100, "optional" : 1, "type" : "integer" } @@ -10306,21 +11793,65 @@ const apiSchema = [ "notify" : { "description" : "Cluster-wide notification settings.", "format" : { + "fencing" : { + "default" : "always", + "description" : "Control if notifications about node fencing should be sent.", + "enum" : [ + "always", + "never" + ], + "optional" : 1, + "type" : "string", + "verbose_description" : "Control if notifications about node fencing should be sent.\n* 'always' always send out notifications\n* 'never' never send out notifications.\nFor production systems, turning off node fencing notifications is notrecommended!\n" + }, "package-updates" : { "default" : "auto", - "description" : "Control when the daily update job should send out notification mails.", + "description" : "Control when the daily update job should send out notifications.", "enum" : [ "auto", "always", "never" ], + "optional" : 1, + "type" : "string", + "verbose_description" : "Control how often the daily update job should send out 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" : { + "default" : "always", + "description" : "Control if notifications for replication failures should be sent.", + "enum" : [ + "always", + "never" + ], + "optional" : 1, "type" : "string", - "verbose_description" : "Control how often the daily update job should send out notification mails:\n* 'auto' daily for systems with a valid subscription, as those are assumed to be production-ready and thus should know about pending updates.\n* 'always' every update, if there are new pending updates.\n* 'never' never send a notification for new pending updates.\n" + "verbose_description" : "Control if notifications for replication failures should be sent.\n* 'always' always send out notifications\n* 'never' never send out notifications.\nFor production systems, turning off replication notifications is notrecommended!\n" + }, + "target-fencing" : { + "description" : "Control where notifications about fenced cluster nodes should be sent to.", + "format_description" : "TARGET", + "optional" : 1, + "type" : "string", + "verbose_description" : "Control where notifications about fenced cluster nodes should be sent to. Has to be the name of a notification target (endpoint or notification group). If the 'target-fencing' parameter is not set, the system will send mails to root via a 'sendmail' notification endpoint." + }, + "target-package-updates" : { + "description" : "Control where notifications about available updates should be sent to.", + "format_description" : "TARGET", + "optional" : 1, + "type" : "string", + "verbose_description" : "Control where notifications about available updates should be sent to. Has to be the name of a notification target (endpoint or notification group). If the 'target-package-updates' parameter is not set, the system will send mails to root via a 'sendmail' notification endpoint." + }, + "target-replication" : { + "description" : "Control where notifications for failed storage replication jobs should be sent to.", + "format_description" : "TARGET", + "optional" : 1, + "type" : "string", + "verbose_description" : "Control where notifications for failed storage replication jobs should be sent to. Has to be the name of a notification target (endpoint or notification group). If the 'target-replication' parameter is not set, the system will send mails to root via a 'sendmail' notification endpoint." } }, "optional" : 1, "type" : "string", - "typetext" : "package-updates=" + "typetext" : "[fencing=] [,package-updates=] [,replication=] [,target-fencing=] [,target-package-updates=] [,target-replication=]" }, "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`.", @@ -10650,8 +12181,8 @@ const apiSchema = [ "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" : "" @@ -10848,8 +12379,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -11074,8 +12605,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -11221,8 +12752,8 @@ const apiSchema = [ "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" : "" @@ -11328,8 +12859,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -11430,8 +12961,8 @@ const apiSchema = [ "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" }, @@ -11532,8 +13063,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -11646,8 +13177,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -11803,8 +13334,8 @@ const apiSchema = [ "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" }, @@ -11933,8 +13464,8 @@ const apiSchema = [ "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" }, @@ -11971,8 +13502,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -12178,8 +13709,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -21469,7 +23000,9 @@ const apiSchema = [ "check" : [ "perm", "/vms/{vmid}", - "VM.Config.Cloudinit" + [ + "VM.Config.Cloudinit" + ] ] }, "protected" : 1, @@ -29360,8 +30893,8 @@ const apiSchema = [ "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" : "" @@ -29558,8 +31091,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -29784,8 +31317,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -29931,8 +31464,8 @@ const apiSchema = [ "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" : "" @@ -30038,8 +31571,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -30140,8 +31673,8 @@ const apiSchema = [ "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" }, @@ -30242,8 +31775,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -30356,8 +31889,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -30513,8 +32046,8 @@ const apiSchema = [ "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" }, @@ -30643,8 +32176,8 @@ const apiSchema = [ "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" }, @@ -30681,8 +32214,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -30888,8 +32421,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -37279,7 +38812,7 @@ const apiSchema = [ }, "mailnotification" : { "default" : "always", - "description" : "Specify when to send an email", + "description" : "Deprecated: use 'notification-policy' instead.", "enum" : [ "always", "failure" @@ -37288,7 +38821,7 @@ const apiSchema = [ "type" : "string" }, "mailto" : { - "description" : "Comma-separated list of email addresses or users that should receive email notifications.", + "description" : "Comma-separated list of email addresses or users that should receive email notifications. Has no effect if the 'notification-target' option is set at the same time.", "format" : "email-or-username-list", "optional" : 1, "type" : "string" @@ -37323,6 +38856,23 @@ const apiSchema = [ "requires" : "storage", "type" : "string" }, + "notification-policy" : { + "default" : "always", + "description" : "Specify when to send a notification", + "enum" : [ + "always", + "failure", + "never" + ], + "optional" : 1, + "type" : "string" + }, + "notification-target" : { + "description" : "Determine the target to which notifications should be sent. Can either be a notification endpoint or a notification group. This option takes precedence over 'mailto', meaning that if both are set, the 'mailto' option will be ignored.", + "format" : "pve-configid", + "optional" : 1, + "type" : "string" + }, "performance" : { "description" : "Other performance-related settings.", "format" : "backup-performance", @@ -37538,7 +39088,7 @@ const apiSchema = [ }, "mailnotification" : { "default" : "always", - "description" : "Specify when to send an email", + "description" : "Deprecated: use 'notification-policy' instead.", "enum" : [ "always", "failure" @@ -37547,7 +39097,7 @@ const apiSchema = [ "type" : "string" }, "mailto" : { - "description" : "Comma-separated list of email addresses or users that should receive email notifications.", + "description" : "Comma-separated list of email addresses or users that should receive email notifications. Has no effect if the 'notification-target' option is set at the same time.", "format" : "email-or-username-list", "optional" : 1, "type" : "string", @@ -37586,12 +39136,30 @@ const apiSchema = [ "type" : "string", "typetext" : "" }, + "notification-policy" : { + "default" : "always", + "description" : "Specify when to send a notification", + "enum" : [ + "always", + "failure", + "never" + ], + "optional" : 1, + "type" : "string" + }, + "notification-target" : { + "description" : "Determine the target to which notifications should be sent. Can either be a notification endpoint or a notification group. This option takes precedence over 'mailto', meaning that if both are set, the 'mailto' option will be ignored.", + "format" : "pve-configid", + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "performance" : { "description" : "Other performance-related settings.", "format" : "backup-performance", "optional" : 1, "type" : "string", - "typetext" : "[max-workers=]" + "typetext" : "[max-workers=] [,pbs-entries-max=]" }, "pigz" : { "default" : 0, @@ -37699,7 +39267,7 @@ const apiSchema = [ } }, "permissions" : { - "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage. The 'tmpdir', 'dumpdir' and 'script' parameters are restricted to the 'root@pam' user. The 'maxfiles' and 'prune-backups' settings require 'Datastore.Allocate' on the backup storage. The 'bwlimit', 'performance' and 'ionice' parameters require 'Sys.Modify' on '/'.", + "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage. 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 '/'. If 'notification-target' is set, then the 'Mapping.Use' permission is needed on '/mapping/notification/'.", "user" : "all" }, "protected" : 1, @@ -41496,6 +43064,13 @@ const apiSchema = [ "requires" : "checksum", "type" : "string" }, + "compression" : { + "description" : "Decompress the downloaded file using the specified compression algorithm.", + "enum" : null, + "optional" : 1, + "type" : "string", + "typetext" : "" + }, "content" : { "description" : "Content type.", "enum" : [ @@ -43064,7 +44639,8 @@ const apiSchema = [ [ "Sys.Modify" ] - ] + ], + "description" : "If 'notify: target-package-updates' is set, then the user must have the 'Mapping.Use' permission on '/mapping/notification/'" }, "protected" : 1, "proxyto" : "node", @@ -43541,8 +45117,8 @@ const apiSchema = [ "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" : "" @@ -43723,8 +45299,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -43933,8 +45509,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -44254,8 +45830,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -46298,8 +47874,8 @@ const apiSchema = [ "description" : "Run specific command or default to login.", "enum" : [ "upgrade", - "ceph_install", - "login" + "login", + "ceph_install" ], "optional" : 1, "type" : "string" @@ -46394,8 +47970,8 @@ const apiSchema = [ "description" : "Run specific command or default to login.", "enum" : [ "upgrade", - "ceph_install", - "login" + "login", + "ceph_install" ], "optional" : 1, "type" : "string" @@ -46520,8 +48096,8 @@ const apiSchema = [ "description" : "Run specific command or default to login.", "enum" : [ "upgrade", - "ceph_install", - "login" + "login", + "ceph_install" ], "optional" : 1, "type" : "string" @@ -47176,8 +48752,8 @@ const apiSchema = [ "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" } @@ -47199,8 +48775,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -47534,8 +49110,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -50287,15 +51863,15 @@ const apiSchema = [ "description" : "LDAP base domain name", "maxLength" : 256, "optional" : 1, - "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)", - "type" : "string" + "type" : "string", + "typetext" : "" }, "bind_dn" : { "description" : "LDAP bind domain name", "maxLength" : 256, "optional" : 1, - "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)", - "type" : "string" + "type" : "string", + "typetext" : "" }, "capath" : { "default" : "/etc/ssl/certs", @@ -50323,6 +51899,13 @@ const apiSchema = [ "type" : "string", "typetext" : "" }, + "check-connection" : { + "default" : 0, + "description" : "Check bind connection to the server.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, "client-id" : { "description" : "OpenID Client ID", "maxLength" : 256, @@ -50359,8 +51942,8 @@ const apiSchema = [ "typetext" : "" }, "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" : "" @@ -50391,8 +51974,8 @@ const apiSchema = [ "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" : "" }, "group_filter" : { "description" : "LDAP filter for group sync.", @@ -50633,15 +52216,15 @@ const apiSchema = [ "description" : "LDAP base domain name", "maxLength" : 256, "optional" : 1, - "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)", - "type" : "string" + "type" : "string", + "typetext" : "" }, "bind_dn" : { "description" : "LDAP bind domain name", "maxLength" : 256, "optional" : 1, - "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)", - "type" : "string" + "type" : "string", + "typetext" : "" }, "capath" : { "default" : "/etc/ssl/certs", @@ -50669,6 +52252,13 @@ const apiSchema = [ "type" : "string", "typetext" : "" }, + "check-connection" : { + "default" : 0, + "description" : "Check bind connection to the server.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, "client-id" : { "description" : "OpenID Client ID", "maxLength" : 256, @@ -50722,8 +52312,8 @@ const apiSchema = [ "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" : "" }, "group_filter" : { "description" : "LDAP filter for group sync.", @@ -51883,13 +53473,21 @@ const apiSchema = [ "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" : "" + }, "comment" : { "optional" : 1, "type" : "string", "typetext" : "" }, "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" : "" @@ -51900,14 +53498,14 @@ const apiSchema = [ "typetext" : "" }, "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" : "" }, "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", diff --git a/datacenter.cfg.5-opts.adoc b/datacenter.cfg.5-opts.adoc index 59cedf7..388205b 100644 --- a/datacenter.cfg.5-opts.adoc +++ b/datacenter.cfg.5-opts.adoc @@ -108,17 +108,43 @@ Lower, inclusive boundary for free next-id API range. Upper, exclusive boundary for free next-id API range. -`notify`: `package-updates=` :: +`notify`: `[fencing=] [,package-updates=] [,replication=] [,target-fencing=] [,target-package-updates=] [,target-replication=]` :: Cluster-wide notification settings. +`fencing`=`` ('default =' `always`);; + +Control if notifications about node fencing should be sent. +* 'always' always send out notifications +* 'never' never send out notifications. +For production systems, turning off node fencing notifications is notrecommended! + `package-updates`=`` ('default =' `auto`);; -Control how often the daily update job should send out notification mails: +Control how often the daily update job should send out notifications: * 'auto' daily for systems with a valid subscription, as those are assumed to be production-ready and thus should know about pending updates. * 'always' every update, if there are new pending updates. * 'never' never send a notification for new pending updates. +`replication`=`` ('default =' `always`);; + +Control if notifications for replication failures should be sent. +* 'always' always send out notifications +* 'never' never send out notifications. +For production systems, turning off replication notifications is notrecommended! + +`target-fencing`=`` ;; + +Control where notifications about fenced cluster nodes should be sent to. Has to be the name of a notification target (endpoint or notification group). If the 'target-fencing' parameter is not set, the system will send mails to root via a 'sendmail' notification endpoint. + +`target-package-updates`=`` ;; + +Control where notifications about available updates should be sent to. Has to be the name of a notification target (endpoint or notification group). If the 'target-package-updates' parameter is not set, the system will send mails to root via a 'sendmail' notification endpoint. + +`target-replication`=`` ;; + +Control where notifications for failed storage replication jobs should be sent to. Has to be the name of a notification target (endpoint or notification group). If the 'target-replication' parameter is not set, the system will send mails to root via a 'sendmail' notification endpoint. + `registered-tags`: `[;...]` :: 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`. diff --git a/ha-manager.1-synopsis.adoc b/ha-manager.1-synopsis.adoc index 0085950..0e4c5ab 100644 --- a/ha-manager.1-synopsis.adoc +++ b/ha-manager.1-synopsis.adoc @@ -151,7 +151,7 @@ A list of settings you want to delete. `--digest` `` :: -Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications. +Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. `--nodes` `[:]{,[:]}*` :: @@ -211,7 +211,7 @@ A list of settings you want to delete. `--digest` `` :: -Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications. +Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. `--group` `` :: diff --git a/pveceph.1-synopsis.adoc b/pveceph.1-synopsis.adoc index 24eefb1..75e5307 100644 --- a/pveceph.1-synopsis.adoc +++ b/pveceph.1-synopsis.adoc @@ -122,7 +122,7 @@ Allow experimental versions. Use with care! Ceph repository to use. -`--version` `` ('default =' `quincy`):: +`--version` `` ('default =' `quincy`):: Ceph version to install. diff --git a/pvenode.1-synopsis.adoc b/pvenode.1-synopsis.adoc index 2f6ece1..c0acf81 100644 --- a/pvenode.1-synopsis.adoc +++ b/pvenode.1-synopsis.adoc @@ -147,7 +147,7 @@ A list of settings you want to delete. `--digest` `` :: -Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications. +Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. `--disable` `` :: diff --git a/pvesm.1-synopsis.adoc b/pvesm.1-synopsis.adoc index cf264c9..6187231 100644 --- a/pvesm.1-synopsis.adoc +++ b/pvesm.1-synopsis.adoc @@ -628,7 +628,7 @@ A list of settings you want to delete. `--digest` `` :: -Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications. +Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. `--disable` `` :: diff --git a/pvesr.1-synopsis.adoc b/pvesr.1-synopsis.adoc index f2e5b01..8c4da61 100644 --- a/pvesr.1-synopsis.adoc +++ b/pvesr.1-synopsis.adoc @@ -208,7 +208,7 @@ A list of settings you want to delete. `--digest` `` :: -Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications. +Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. `--disable` `` :: diff --git a/pveum.1-synopsis.adoc b/pveum.1-synopsis.adoc index dad42b6..ca2d343 100644 --- a/pveum.1-synopsis.adoc +++ b/pveum.1-synopsis.adoc @@ -168,21 +168,25 @@ Update pool data. no description available +`--allow-move` `` ('default =' `0`):: + +Allow adding a guest even if already in another pool. The guest will be removed from its current pool and added to this one. + `--comment` `` :: no description available -`--delete` `` :: +`--delete` `` ('default =' `0`):: -Remove vms/storage (instead of adding it). +Remove the passed VMIDs and/or storage IDs instead of adding them. `--storage` `` :: -List of storage IDs. +List of storage IDs to add or remove from this pool. `--vms` `` :: -List of virtual machines. +List of guest VMIDs to add or remove from this pool. *pveum realm add* ` --type ` `[OPTIONS]` @@ -200,11 +204,11 @@ Specifies the Authentication Context Class Reference values that theAuthorizatio Automatically create users if they do not exist. -`--base_dn` `(?^:\w+=(?^:("[^"]+"|[^ ,+"/<>;=#][^,+"/<>;=]*[^ ,+"/<>;=]|[^ ,+"/<>;=#]))(,\s*\w+=(?^:("[^"]+"|[^ ,+"/<>;=#][^,+"/<>;=]*[^ ,+"/<>;=]|[^ ,+"/<>;=#])))*)` :: +`--base_dn` `` :: LDAP base domain name -`--bind_dn` `(?^:\w+=(?^:("[^"]+"|[^ ,+"/<>;=#][^,+"/<>;=]*[^ ,+"/<>;=]|[^ ,+"/<>;=#]))(,\s*\w+=(?^:("[^"]+"|[^ ,+"/<>;=#][^,+"/<>;=]*[^ ,+"/<>;=]|[^ ,+"/<>;=#])))*)` :: +`--bind_dn` `` :: LDAP bind domain name @@ -224,6 +228,10 @@ Path to the client certificate Path to the client certificate key +`--check-connection` `` ('default =' `0`):: + +Check bind connection to the server. + `--client-id` `` :: OpenID Client ID @@ -252,7 +260,7 @@ LDAP filter for user sync. The objectclasses for groups. -`--group_dn` `(?^:\w+=(?^:("[^"]+"|[^ ,+"/<>;=#][^,+"/<>;=]*[^ ,+"/<>;=]|[^ ,+"/<>;=#]))(,\s*\w+=(?^:("[^"]+"|[^ ,+"/<>;=#][^,+"/<>;=]*[^ ,+"/<>;=]|[^ ,+"/<>;=#])))*)` :: +`--group_dn` `` :: LDAP base domain name for group sync. If not set, the base_dn will be used. @@ -364,11 +372,11 @@ Specifies the Authentication Context Class Reference values that theAuthorizatio Automatically create users if they do not exist. -`--base_dn` `(?^:\w+=(?^:("[^"]+"|[^ ,+"/<>;=#][^,+"/<>;=]*[^ ,+"/<>;=]|[^ ,+"/<>;=#]))(,\s*\w+=(?^:("[^"]+"|[^ ,+"/<>;=#][^,+"/<>;=]*[^ ,+"/<>;=]|[^ ,+"/<>;=#])))*)` :: +`--base_dn` `` :: LDAP base domain name -`--bind_dn` `(?^:\w+=(?^:("[^"]+"|[^ ,+"/<>;=#][^,+"/<>;=]*[^ ,+"/<>;=]|[^ ,+"/<>;=#]))(,\s*\w+=(?^:("[^"]+"|[^ ,+"/<>;=#][^,+"/<>;=]*[^ ,+"/<>;=]|[^ ,+"/<>;=#])))*)` :: +`--bind_dn` `` :: LDAP bind domain name @@ -388,6 +396,10 @@ Path to the client certificate Path to the client certificate key +`--check-connection` `` ('default =' `0`):: + +Check bind connection to the server. + `--client-id` `` :: OpenID Client ID @@ -410,7 +422,7 @@ A list of settings you want to delete. `--digest` `` :: -Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications. +Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. `--domain` `\S+` :: @@ -424,7 +436,7 @@ LDAP filter for user sync. The objectclasses for groups. -`--group_dn` `(?^:\w+=(?^:("[^"]+"|[^ ,+"/<>;=#][^,+"/<>;=]*[^ ,+"/<>;=]|[^ ,+"/<>;=#]))(,\s*\w+=(?^:("[^"]+"|[^ ,+"/<>;=#][^,+"/<>;=]*[^ ,+"/<>;=]|[^ ,+"/<>;=#])))*)` :: +`--group_dn` `` :: LDAP base domain name for group sync. If not set, the base_dn will be used. diff --git a/vzdump.1-synopsis.adoc b/vzdump.1-synopsis.adoc index afed3d7..af5da88 100644 --- a/vzdump.1-synopsis.adoc +++ b/vzdump.1-synopsis.adoc @@ -42,11 +42,11 @@ Maximal time to wait for the global lock (minutes). `--mailnotification` `` ('default =' `always`):: -Specify when to send an email +Deprecated: use 'notification-policy' instead. `--mailto` `` :: -Comma-separated list of email addresses or users that should receive email notifications. +Comma-separated list of email addresses or users that should receive email notifications. Has no effect if the 'notification-target' option is set at the same time. `--maxfiles` ` (1 - N)` :: @@ -66,7 +66,15 @@ Template string for generating notes for the backup(s). It can contain variables + NOTE: Requires option(s): `storage` -`--performance` `[max-workers=]` :: +`--notification-policy` `` ('default =' `always`):: + +Specify when to send a notification + +`--notification-target` `` :: + +Determine the target to which notifications should be sent. Can either be a notification endpoint or a notification group. This option takes precedence over 'mailto', meaning that if both are set, the 'mailto' option will be ignored. + +`--performance` `[max-workers=] [,pbs-entries-max=]` :: Other performance-related settings. diff --git a/vzdump.conf.5-opts.adoc b/vzdump.conf.5-opts.adoc index d57e4fd..d50f573 100644 --- a/vzdump.conf.5-opts.adoc +++ b/vzdump.conf.5-opts.adoc @@ -24,11 +24,11 @@ Maximal time to wait for the global lock (minutes). `mailnotification`: `` ('default =' `always`):: -Specify when to send an email +Deprecated: use 'notification-policy' instead. `mailto`: `` :: -Comma-separated list of email addresses or users that should receive email notifications. +Comma-separated list of email addresses or users that should receive email notifications. Has no effect if the 'notification-target' option is set at the same time. `maxfiles`: ` (1 - N)` :: @@ -44,7 +44,15 @@ Template string for generating notes for the backup(s). It can contain variables + NOTE: Requires option(s): `storage` -`performance`: `[max-workers=]` :: +`notification-policy`: `` ('default =' `always`):: + +Specify when to send a notification + +`notification-target`: `` :: + +Determine the target to which notifications should be sent. Can either be a notification endpoint or a notification group. This option takes precedence over 'mailto', meaning that if both are set, the 'mailto' option will be ignored. + +`performance`: `[max-workers=] [,pbs-entries-max=]` :: Other performance-related settings. @@ -52,6 +60,10 @@ Other performance-related settings. Applies to VMs. Allow up to this many IO workers at the same time. +`pbs-entries-max`=` (1 - N)` ('default =' `1048576`);; + +Applies to container backups sent to PBS. Limits the number of entries allowed in memory at a given time to avoid unintended OOM situations. Increase it to enable backups of containers with a large amount of files. + `pigz`: `` ('default =' `0`):: Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count. -- 2.39.2