]> git.proxmox.com Git - pve-docs.git/blobdiff - api-viewer/apidata.js
update static/schema information
[pve-docs.git] / api-viewer / apidata.js
index b3a21f3f616f24af468a9ef10c4ed43928dac510..1d4f7a32e9ad3c0ce3d35d6a7506bcfa45a92208 100644 (file)
@@ -1,4 +1,4 @@
-var pveapi = [
+const apiSchema = [
    {
       "children" : [
          {
@@ -6,6 +6,7 @@ var pveapi = [
                {
                   "info" : {
                      "DELETE" : {
+                        "allowtoken" : 1,
                         "description" : "Mark replication job for removal.",
                         "method" : "DELETE",
                         "name" : "delete",
@@ -49,6 +50,7 @@ var pveapi = [
                         }
                      },
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read replication job configuration.",
                         "method" : "GET",
                         "name" : "read",
@@ -72,6 +74,7 @@ var pveapi = [
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Update replication job configuration.",
                         "method" : "PUT",
                         "name" : "update",
@@ -130,7 +133,7 @@ var pveapi = [
                               },
                               "schedule" : {
                                  "default" : "*/15",
-                                 "description" : "Storage replication schedule. The format is a subset of `systemd` calender events.",
+                                 "description" : "Storage replication schedule. The format is a subset of `systemd` calendar events.",
                                  "format" : "pve-calendar-event",
                                  "maxLength" : 128,
                                  "optional" : 1,
@@ -138,7 +141,7 @@ var pveapi = [
                                  "typetext" : "<string>"
                               },
                               "source" : {
-                                 "description" : "Source of the replication.",
+                                 "description" : "For internal use, to detect if the guest was stolen.",
                                  "format" : "pve-node",
                                  "optional" : 1,
                                  "type" : "string",
@@ -169,6 +172,7 @@ var pveapi = [
             ],
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "List replication jobs.",
                   "method" : "GET",
                   "name" : "index",
@@ -194,6 +198,7 @@ var pveapi = [
                   }
                },
                "POST" : {
+                  "allowtoken" : 1,
                   "description" : "Create a new replication job",
                   "method" : "POST",
                   "name" : "create",
@@ -237,7 +242,7 @@ var pveapi = [
                         },
                         "schedule" : {
                            "default" : "*/15",
-                           "description" : "Storage replication schedule. The format is a subset of `systemd` calender events.",
+                           "description" : "Storage replication schedule. The format is a subset of `systemd` calendar events.",
                            "format" : "pve-calendar-event",
                            "maxLength" : 128,
                            "optional" : 1,
@@ -245,7 +250,7 @@ var pveapi = [
                            "typetext" : "<string>"
                         },
                         "source" : {
-                           "description" : "Source of the replication.",
+                           "description" : "For internal use, to detect if the guest was stolen.",
                            "format" : "pve-node",
                            "optional" : 1,
                            "type" : "string",
@@ -294,6 +299,484 @@ var pveapi = [
                      {
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
+                              "description" : "Remove Metric server.",
+                              "method" : "DELETE",
+                              "name" : "delete",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "id" : {
+                                       "format" : "pve-configid",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "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" : "<string>"
+                                    }
+                                 }
+                              },
+                              "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 '<host>:<port>/' and '/api2/'. Can be useful if the InfluxDB service runs behind a reverse proxy.",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "bucket" : {
+                                       "description" : "The InfluxDB bucket/db. Only necessary when using the http v2 api.",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "disable" : {
+                                       "description" : "Flag to disable the plugin.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "id" : {
+                                       "description" : "The ID of the entry.",
+                                       "format" : "pve-configid",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "influxdbproto" : {
+                                       "default" : "udp",
+                                       "enum" : [
+                                          "udp",
+                                          "http",
+                                          "https"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "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" : "<integer> (1 - N)"
+                                    },
+                                    "mtu" : {
+                                       "default" : 1500,
+                                       "description" : "MTU for metrics transmission over UDP",
+                                       "maximum" : 65536,
+                                       "minimum" : 512,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (512 - 65536)"
+                                    },
+                                    "organization" : {
+                                       "description" : "The InfluxDB organization. Only necessary when using the http v2 api. Has no meaning when using v2 compatibility api.",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "path" : {
+                                       "description" : "root graphite path (ex: proxmox.mycluster.mykey)",
+                                       "format" : "graphite-path",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "port" : {
+                                       "description" : "server network port",
+                                       "maximum" : 65536,
+                                       "minimum" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (1 - 65536)"
+                                    },
+                                    "proto" : {
+                                       "description" : "Protocol to send graphite data. TCP or UDP (default)",
+                                       "enum" : [
+                                          "udp",
+                                          "tcp"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "server" : {
+                                       "description" : "server dns name or IP address",
+                                       "format" : "address",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "timeout" : {
+                                       "default" : 1,
+                                       "description" : "graphite TCP socket timeout (default=1)",
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (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" : "<string>"
+                                    },
+                                    "type" : {
+                                       "description" : "Plugin type.",
+                                       "enum" : [
+                                          "graphite",
+                                          "influxdb"
+                                       ],
+                                       "format" : "pve-configid",
+                                       "type" : "string"
+                                    },
+                                    "verify-certificate" : {
+                                       "default" : 1,
+                                       "description" : "Set to 0 to disable certificate verification for https endpoints.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    }
+                                 },
+                                 "type" : "object"
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Modify"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           },
+                           "PUT" : {
+                              "allowtoken" : 1,
+                              "description" : "Update metric server configuration.",
+                              "method" : "PUT",
+                              "name" : "update",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "api-path-prefix" : {
+                                       "description" : "An API path prefix inserted between '<host>:<port>/' and '/api2/'. Can be useful if the InfluxDB service runs behind a reverse proxy.",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "bucket" : {
+                                       "description" : "The InfluxDB bucket/db. Only necessary when using the http v2 api.",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "delete" : {
+                                       "description" : "A list of settings you want to delete.",
+                                       "format" : "pve-configid-list",
+                                       "maxLength" : 4096,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "digest" : {
+                                       "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                       "maxLength" : 40,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "disable" : {
+                                       "description" : "Flag to disable the plugin.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "id" : {
+                                       "description" : "The ID of the entry.",
+                                       "format" : "pve-configid",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "influxdbproto" : {
+                                       "default" : "udp",
+                                       "enum" : [
+                                          "udp",
+                                          "http",
+                                          "https"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "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" : "<integer> (1 - N)"
+                                    },
+                                    "mtu" : {
+                                       "default" : 1500,
+                                       "description" : "MTU for metrics transmission over UDP",
+                                       "maximum" : 65536,
+                                       "minimum" : 512,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (512 - 65536)"
+                                    },
+                                    "organization" : {
+                                       "description" : "The InfluxDB organization. Only necessary when using the http v2 api. Has no meaning when using v2 compatibility api.",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "path" : {
+                                       "description" : "root graphite path (ex: proxmox.mycluster.mykey)",
+                                       "format" : "graphite-path",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "port" : {
+                                       "description" : "server network port",
+                                       "maximum" : 65536,
+                                       "minimum" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (1 - 65536)"
+                                    },
+                                    "proto" : {
+                                       "description" : "Protocol to send graphite data. TCP or UDP (default)",
+                                       "enum" : [
+                                          "udp",
+                                          "tcp"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "server" : {
+                                       "description" : "server dns name or IP address",
+                                       "format" : "address",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "timeout" : {
+                                       "default" : 1,
+                                       "description" : "graphite TCP socket timeout (default=1)",
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (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" : "<string>"
+                                    },
+                                    "verify-certificate" : {
+                                       "default" : 1,
+                                       "description" : "Set to 0 to disable certificate verification for https endpoints.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    }
+                                 },
+                                 "type" : "object"
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Modify"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           }
+                        },
+                        "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" : [
+               {
+                  "info" : {
+                     "GET" : {
+                        "allowtoken" : 1,
+                        "description" : "Return the version of the cluster join API available on this node.",
+                        "method" : "GET",
+                        "name" : "join_api_version",
+                        "parameters" : {
+                           "additionalProperties" : 0
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Audit"
+                              ]
+                           ]
+                        },
+                        "returns" : {
+                           "description" : "Cluster Join API version, currently 1",
+                           "minimum" : 0,
+                           "type" : "integer"
+                        }
+                     }
+                  },
+                  "leaf" : 1,
+                  "path" : "/cluster/config/apiversion",
+                  "text" : "apiversion"
+               },
+               {
+                  "children" : [
+                     {
+                        "info" : {
+                           "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "Removes a node from the cluster configuration.",
                               "method" : "DELETE",
                               "name" : "delnode",
@@ -314,18 +797,55 @@ var pveapi = [
                               }
                            },
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Adds a node to the cluster configuration. This call is for internal use.",
                               "method" : "POST",
                               "name" : "addnode",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
+                                    "apiversion" : {
+                                       "description" : "The JOIN_API_VERSION of the new node.",
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer>"
+                                    },
                                     "force" : {
                                        "description" : "Do not throw error if node already exists.",
                                        "optional" : 1,
                                        "type" : "boolean",
                                        "typetext" : "<boolean>"
                                     },
+                                    "link[n]" : {
+                                       "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
+                                       "format" : {
+                                          "address" : {
+                                             "default_key" : 1,
+                                             "description" : "Hostname (or IP) of this corosync link address.",
+                                             "format" : "address",
+                                             "format_description" : "IP",
+                                             "type" : "string"
+                                          },
+                                          "priority" : {
+                                             "default" : 0,
+                                             "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
+                                             "maximum" : 255,
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer"
+                                          }
+                                       },
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "[address=]<IP> [,priority=<integer>]"
+                                    },
+                                    "new_node_ip" : {
+                                       "description" : "IP Address of node to add. Used as fallback if no links are given.",
+                                       "format" : "ip",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
@@ -339,21 +859,6 @@ var pveapi = [
                                        "type" : "integer",
                                        "typetext" : "<integer> (1 - N)"
                                     },
-                                    "ring0_addr" : {
-                                       "default" : "Hostname of the node",
-                                       "description" : "Hostname (or IP) of the corosync ring0 address of this node.",
-                                       "format" : "address",
-                                       "optional" : 1,
-                                       "type" : "string",
-                                       "typetext" : "<string>"
-                                    },
-                                    "ring1_addr" : {
-                                       "description" : "Hostname (or IP) of the corosync ring1 address of this node. Requires a valid configured ring 1 (bindnet1_addr) in the cluster.",
-                                       "format" : "address",
-                                       "optional" : 1,
-                                       "type" : "string",
-                                       "typetext" : "<string>"
-                                    },
                                     "votes" : {
                                        "description" : "Number of votes for this node",
                                        "minimum" : 0,
@@ -371,6 +876,12 @@ var pveapi = [
                                     },
                                     "corosync_conf" : {
                                        "type" : "string"
+                                    },
+                                    "warnings" : {
+                                       "items" : {
+                                          "type" : "string"
+                                       },
+                                       "type" : "array"
                                     }
                                  },
                                  "type" : "object"
@@ -384,6 +895,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Corosync node list.",
                         "method" : "GET",
                         "name" : "nodes",
@@ -425,6 +937,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get information needed to join this cluster over the connected node.",
                         "method" : "GET",
                         "name" : "join_info",
@@ -485,9 +998,24 @@ var pveapi = [
                                           "type" : "integer"
                                        },
                                        "ring0_addr" : {
-                                          "default" : "Hostname of the node",
-                                          "description" : "Hostname (or IP) of the corosync ring0 address of this node.",
-                                          "format" : "address",
+                                          "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
+                                          "format" : {
+                                             "address" : {
+                                                "default_key" : 1,
+                                                "description" : "Hostname (or IP) of this corosync link address.",
+                                                "format" : "address",
+                                                "format_description" : "IP",
+                                                "type" : "string"
+                                             },
+                                             "priority" : {
+                                                "default" : 0,
+                                                "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
+                                                "maximum" : 255,
+                                                "minimum" : 0,
+                                                "optional" : 1,
+                                                "type" : "integer"
+                                             }
+                                          },
                                           "optional" : 1,
                                           "type" : "string"
                                        }
@@ -509,7 +1037,8 @@ var pveapi = [
                         }
                      },
                      "POST" : {
-                        "description" : "Joins this node into an existing cluster.",
+                        "allowtoken" : 1,
+                        "description" : "Joins this node into an existing cluster. If no links are given, default to IP resolved by node's hostname on single link (fallback fails for clusters with multiple links).",
                         "method" : "POST",
                         "name" : "join",
                         "parameters" : {
@@ -531,6 +1060,29 @@ var pveapi = [
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
+                              "link[n]" : {
+                                 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
+                                 "format" : {
+                                    "address" : {
+                                       "default_key" : 1,
+                                       "description" : "Hostname (or IP) of this corosync link address.",
+                                       "format" : "address",
+                                       "format_description" : "IP",
+                                       "type" : "string"
+                                    },
+                                    "priority" : {
+                                       "default" : 0,
+                                       "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
+                                       "maximum" : 255,
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    }
+                                 },
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "[address=]<IP> [,priority=<integer>]"
+                              },
                               "nodeid" : {
                                  "description" : "Node id for this node.",
                                  "minimum" : 1,
@@ -544,21 +1096,6 @@ var pveapi = [
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
-                              "ring0_addr" : {
-                                 "default" : "IP resolved by node's hostname",
-                                 "description" : "Hostname (or IP) of the corosync ring0 address of this node.",
-                                 "format" : "address",
-                                 "optional" : 1,
-                                 "type" : "string",
-                                 "typetext" : "<string>"
-                              },
-                              "ring1_addr" : {
-                                 "description" : "Hostname (or IP) of the corosync ring1 address of this node. Requires a valid configured ring 1 (bindnet1_addr) in the cluster.",
-                                 "format" : "address",
-                                 "optional" : 1,
-                                 "type" : "string",
-                                 "typetext" : "<string>"
-                              },
                               "votes" : {
                                  "description" : "Number of votes for this node",
                                  "minimum" : 0,
@@ -581,6 +1118,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get corosync totem protocol settings.",
                         "method" : "GET",
                         "name" : "totem",
@@ -604,10 +1142,40 @@ var pveapi = [
                   "leaf" : 1,
                   "path" : "/cluster/config/totem",
                   "text" : "totem"
+               },
+               {
+                  "info" : {
+                     "GET" : {
+                        "allowtoken" : 1,
+                        "description" : "Get QDevice status",
+                        "method" : "GET",
+                        "name" : "status",
+                        "parameters" : {
+                           "additionalProperties" : 0
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Audit"
+                              ]
+                           ]
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "type" : "object"
+                        }
+                     }
+                  },
+                  "leaf" : 1,
+                  "path" : "/cluster/config/qdevice",
+                  "text" : "qdevice"
                }
             ],
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Directory index.",
                   "method" : "GET",
                   "name" : "index",
@@ -638,26 +1206,13 @@ var pveapi = [
                   }
                },
                "POST" : {
-                  "description" : "Generate new cluster configuration.",
+                  "allowtoken" : 1,
+                  "description" : "Generate new cluster configuration. If no links given, default to local IP address as link0.",
                   "method" : "POST",
                   "name" : "create",
                   "parameters" : {
                      "additionalProperties" : 0,
                      "properties" : {
-                        "bindnet0_addr" : {
-                           "description" : "This specifies the network address the corosync ring 0 executive should bind to and defaults to the local IP address of the node.",
-                           "format" : "ip",
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "bindnet1_addr" : {
-                           "description" : "This specifies the network address the corosync ring 1 executive should bind to and is optional.",
-                           "format" : "ip",
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
                         "clustername" : {
                            "description" : "The name of the cluster.",
                            "format" : "pve-node",
@@ -665,6 +1220,29 @@ var pveapi = [
                            "type" : "string",
                            "typetext" : "<string>"
                         },
+                        "link[n]" : {
+                           "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
+                           "format" : {
+                              "address" : {
+                                 "default_key" : 1,
+                                 "description" : "Hostname (or IP) of this corosync link address.",
+                                 "format" : "address",
+                                 "format_description" : "IP",
+                                 "type" : "string"
+                              },
+                              "priority" : {
+                                 "default" : 0,
+                                 "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
+                                 "maximum" : 255,
+                                 "minimum" : 0,
+                                 "optional" : 1,
+                                 "type" : "integer"
+                              }
+                           },
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "[address=]<IP> [,priority=<integer>]"
+                        },
                         "nodeid" : {
                            "description" : "Node id for this node.",
                            "minimum" : 1,
@@ -672,21 +1250,6 @@ var pveapi = [
                            "type" : "integer",
                            "typetext" : "<integer> (1 - N)"
                         },
-                        "ring0_addr" : {
-                           "default" : "Hostname of the node",
-                           "description" : "Hostname (or IP) of the corosync ring0 address of this node.",
-                           "format" : "address",
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "ring1_addr" : {
-                           "description" : "Hostname (or IP) of the corosync ring1 address of this node. Requires a valid configured ring 1 (bindnet1_addr) in the cluster.",
-                           "format" : "address",
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
                         "votes" : {
                            "description" : "Number of votes for this node.",
                            "minimum" : 1,
@@ -715,6 +1278,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "DELETE" : {
+                                    "allowtoken" : 1,
                                     "description" : "Delete rule.",
                                     "method" : "DELETE",
                                     "name" : "delete_rule",
@@ -760,6 +1324,7 @@ var pveapi = [
                                     }
                                  },
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Get single rule data.",
                                     "method" : "GET",
                                     "name" : "get_rule",
@@ -813,6 +1378,10 @@ var pveapi = [
                                              "optional" : 1,
                                              "type" : "integer"
                                           },
+                                          "icmp-type" : {
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
                                           "iface" : {
                                              "optional" : 1,
                                              "type" : "string"
@@ -864,6 +1433,7 @@ var pveapi = [
                                     }
                                  },
                                  "PUT" : {
+                                    "allowtoken" : 1,
                                     "description" : "Modify rule data.",
                                     "method" : "PUT",
                                     "name" : "update_rule",
@@ -894,6 +1464,7 @@ var pveapi = [
                                           "dest" : {
                                              "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                              "format" : "pve-fw-addr-spec",
+                                             "maxLength" : 512,
                                              "optional" : 1,
                                              "type" : "string",
                                              "typetext" : "<string>"
@@ -926,6 +1497,13 @@ var pveapi = [
                                              "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
                                              "type" : "string"
                                           },
+                                          "icmp-type" : {
+                                             "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+                                             "format" : "pve-fw-icmp-type-spec",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
                                           "iface" : {
                                              "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
                                              "format" : "pve-iface",
@@ -982,6 +1560,7 @@ var pveapi = [
                                           "source" : {
                                              "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                              "format" : "pve-fw-addr-spec",
+                                             "maxLength" : 512,
                                              "optional" : 1,
                                              "type" : "string",
                                              "typetext" : "<string>"
@@ -1028,6 +1607,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "Delete security group.",
                               "method" : "DELETE",
                               "name" : "delete_security_group",
@@ -1058,6 +1638,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List rules.",
                               "method" : "GET",
                               "name" : "get_rules",
@@ -1102,6 +1683,7 @@ var pveapi = [
                               }
                            },
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Create new rule.",
                               "method" : "POST",
                               "name" : "create_rule",
@@ -1125,6 +1707,7 @@ var pveapi = [
                                     "dest" : {
                                        "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                        "format" : "pve-fw-addr-spec",
+                                       "maxLength" : 512,
                                        "optional" : 1,
                                        "type" : "string",
                                        "typetext" : "<string>"
@@ -1157,6 +1740,13 @@ var pveapi = [
                                        "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
                                        "type" : "string"
                                     },
+                                    "icmp-type" : {
+                                       "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+                                       "format" : "pve-fw-icmp-type-spec",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
                                     "iface" : {
                                        "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
                                        "format" : "pve-iface",
@@ -1206,6 +1796,7 @@ var pveapi = [
                                     "source" : {
                                        "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                        "format" : "pve-fw-addr-spec",
+                                       "maxLength" : 512,
                                        "optional" : 1,
                                        "type" : "string",
                                        "typetext" : "<string>"
@@ -1252,6 +1843,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "List security groups.",
                         "method" : "GET",
                         "name" : "list_security_groups",
@@ -1294,6 +1886,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Create new security group.",
                         "method" : "POST",
                         "name" : "create_security_group",
@@ -1353,6 +1946,7 @@ var pveapi = [
                      {
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "Delete rule.",
                               "method" : "DELETE",
                               "name" : "delete_rule",
@@ -1391,6 +1985,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get single rule data.",
                               "method" : "GET",
                               "name" : "get_rule",
@@ -1437,6 +2032,10 @@ var pveapi = [
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "icmp-type" : {
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
                                     "iface" : {
                                        "optional" : 1,
                                        "type" : "string"
@@ -1488,6 +2087,7 @@ var pveapi = [
                               }
                            },
                            "PUT" : {
+                              "allowtoken" : 1,
                               "description" : "Modify rule data.",
                               "method" : "PUT",
                               "name" : "update_rule",
@@ -1518,6 +2118,7 @@ var pveapi = [
                                     "dest" : {
                                        "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                        "format" : "pve-fw-addr-spec",
+                                       "maxLength" : 512,
                                        "optional" : 1,
                                        "type" : "string",
                                        "typetext" : "<string>"
@@ -1543,6 +2144,13 @@ var pveapi = [
                                        "type" : "integer",
                                        "typetext" : "<integer> (0 - N)"
                                     },
+                                    "icmp-type" : {
+                                       "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+                                       "format" : "pve-fw-icmp-type-spec",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
                                     "iface" : {
                                        "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
                                        "format" : "pve-iface",
@@ -1599,6 +2207,7 @@ var pveapi = [
                                     "source" : {
                                        "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                        "format" : "pve-fw-addr-spec",
+                                       "maxLength" : 512,
                                        "optional" : 1,
                                        "type" : "string",
                                        "typetext" : "<string>"
@@ -1645,6 +2254,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "List rules.",
                         "method" : "GET",
                         "name" : "get_rules",
@@ -1680,6 +2290,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Create new rule.",
                         "method" : "POST",
                         "name" : "create_rule",
@@ -1703,6 +2314,7 @@ var pveapi = [
                               "dest" : {
                                  "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                  "format" : "pve-fw-addr-spec",
+                                 "maxLength" : 512,
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
@@ -1728,6 +2340,13 @@ var pveapi = [
                                  "type" : "integer",
                                  "typetext" : "<integer> (0 - N)"
                               },
+                              "icmp-type" : {
+                                 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+                                 "format" : "pve-fw-icmp-type-spec",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
                               "iface" : {
                                  "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
                                  "format" : "pve-iface",
@@ -1777,6 +2396,7 @@ var pveapi = [
                               "source" : {
                                  "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                  "format" : "pve-fw-addr-spec",
+                                 "maxLength" : 512,
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
@@ -1827,6 +2447,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "DELETE" : {
+                                    "allowtoken" : 1,
                                     "description" : "Remove IP or Network from IPSet.",
                                     "method" : "DELETE",
                                     "name" : "remove_ip",
@@ -1870,6 +2491,7 @@ var pveapi = [
                                     }
                                  },
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read IP or Network settings from IPSet.",
                                     "method" : "GET",
                                     "name" : "read_ip",
@@ -1906,6 +2528,7 @@ var pveapi = [
                                     }
                                  },
                                  "PUT" : {
+                                    "allowtoken" : 1,
                                     "description" : "Update IP or Network settings",
                                     "method" : "PUT",
                                     "name" : "update_ip",
@@ -1966,6 +2589,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "Delete IPSet",
                               "method" : "DELETE",
                               "name" : "delete_ipset",
@@ -1996,6 +2620,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List IPSet content",
                               "method" : "GET",
                               "name" : "get_ipset",
@@ -2053,6 +2678,7 @@ var pveapi = [
                               }
                            },
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Add IP or Network to IPSet.",
                               "method" : "POST",
                               "name" : "create_ip",
@@ -2106,6 +2732,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "List IPSets",
                         "method" : "GET",
                         "name" : "ipset_index",
@@ -2154,6 +2781,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Create new IPSet",
                         "method" : "POST",
                         "name" : "create_ipset",
@@ -2213,6 +2841,7 @@ var pveapi = [
                      {
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "Remove IP or Network alias.",
                               "method" : "DELETE",
                               "name" : "remove_alias",
@@ -2250,6 +2879,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Read alias.",
                               "method" : "GET",
                               "name" : "read_alias",
@@ -2279,6 +2909,7 @@ var pveapi = [
                               }
                            },
                            "PUT" : {
+                              "allowtoken" : 1,
                               "description" : "Update IP or Network alias.",
                               "method" : "PUT",
                               "name" : "update_alias",
@@ -2342,6 +2973,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "List aliases",
                         "method" : "GET",
                         "name" : "get_aliases",
@@ -2389,6 +3021,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Create IP or Network Alias.",
                         "method" : "POST",
                         "name" : "create_alias",
@@ -2437,6 +3070,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get Firewall options.",
                         "method" : "GET",
                         "name" : "get_options",
@@ -2471,7 +3105,7 @@ var pveapi = [
                                  "format" : {
                                     "burst" : {
                                        "default" : 5,
-                                       "description" : "Inital burst of packages which will get logged",
+                                       "description" : "Initial burst of packages which will always get logged before the rate is applied",
                                        "minimum" : 0,
                                        "optional" : 1,
                                        "type" : "integer"
@@ -2519,6 +3153,7 @@ var pveapi = [
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Set Firewall options.",
                         "method" : "PUT",
                         "name" : "set_options",
@@ -2558,7 +3193,7 @@ var pveapi = [
                                  "format" : {
                                     "burst" : {
                                        "default" : 5,
-                                       "description" : "Inital burst of packages which will get logged",
+                                       "description" : "Initial burst of packages which will always get logged before the rate is applied",
                                        "minimum" : 0,
                                        "optional" : 1,
                                        "type" : "integer"
@@ -2626,6 +3261,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "List available macros",
                         "method" : "GET",
                         "name" : "get_macros",
@@ -2660,6 +3296,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
                         "method" : "GET",
                         "name" : "refs",
@@ -2720,6 +3357,7 @@ var pveapi = [
             ],
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Directory index.",
                   "method" : "GET",
                   "name" : "index",
@@ -2751,8 +3389,103 @@ var pveapi = [
          {
             "children" : [
                {
+                  "children" : [
+                     {
+                        "info" : {
+                           "GET" : {
+                              "allowtoken" : 1,
+                              "description" : "Returns included guests and the backup status of their disks. Optimized to be used in ExtJS tree views.",
+                              "method" : "GET",
+                              "name" : "get_volume_backup_included",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "id" : {
+                                       "description" : "The job ID.",
+                                       "maxLength" : 50,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Audit"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "description" : "Root node of the tree object. Children represent guests, grandchildren represent volumes of that guest.",
+                                 "properties" : {
+                                    "children" : {
+                                       "items" : {
+                                          "properties" : {
+                                             "children" : {
+                                                "description" : "The volumes of the guest with the information if they will be included in backups.",
+                                                "items" : {
+                                                   "properties" : {
+                                                      "id" : {
+                                                         "description" : "Configuration key of the volume.",
+                                                         "type" : "string"
+                                                      },
+                                                      "included" : {
+                                                         "description" : "Whether the volume is included in the backup or not.",
+                                                         "type" : "boolean"
+                                                      },
+                                                      "name" : {
+                                                         "description" : "Name of the volume.",
+                                                         "type" : "string"
+                                                      },
+                                                      "reason" : {
+                                                         "description" : "The reason why the volume is included (or excluded).",
+                                                         "type" : "string"
+                                                      }
+                                                   },
+                                                   "type" : "object"
+                                                },
+                                                "optional" : 1,
+                                                "type" : "array"
+                                             },
+                                             "id" : {
+                                                "description" : "VMID of the guest.",
+                                                "type" : "integer"
+                                             },
+                                             "name" : {
+                                                "description" : "Name of the guest",
+                                                "optional" : 1,
+                                                "type" : "string"
+                                             },
+                                             "type" : {
+                                                "description" : "Type of the guest, VM, CT or unknown for removed but not purged guests.",
+                                                "enum" : [
+                                                   "qemu",
+                                                   "lxc",
+                                                   "unknown"
+                                                ],
+                                                "type" : "string"
+                                             }
+                                          },
+                                          "type" : "object"
+                                       },
+                                       "type" : "array"
+                                    }
+                                 },
+                                 "type" : "object"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/cluster/backup/{id}/included_volumes",
+                        "text" : "included_volumes"
+                     }
+                  ],
                   "info" : {
                      "DELETE" : {
+                        "allowtoken" : 1,
                         "description" : "Delete vzdump backup job definition.",
                         "method" : "DELETE",
                         "name" : "delete_job",
@@ -2782,6 +3515,7 @@ var pveapi = [
                         }
                      },
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read vzdump backup job definition.",
                         "method" : "GET",
                         "name" : "read_job",
@@ -2810,6 +3544,7 @@ var pveapi = [
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Update vzdump backup job definition.",
                         "method" : "PUT",
                         "name" : "update_job",
@@ -2831,6 +3566,13 @@ var pveapi = [
                                  "type" : "integer",
                                  "typetext" : "<integer> (0 - N)"
                               },
+                              "comment" : {
+                                 "description" : "Description for the Job.",
+                                 "maxLength" : 512,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
                               "compress" : {
                                  "default" : "0",
                                  "description" : "Compress dump file.",
@@ -2838,7 +3580,8 @@ var pveapi = [
                                     "0",
                                     "1",
                                     "gzip",
-                                    "lzo"
+                                    "lzo",
+                                    "zstd"
                                  ],
                                  "optional" : 1,
                                  "type" : "string"
@@ -2854,6 +3597,7 @@ var pveapi = [
                                  "description" : "Day of week selection.",
                                  "format" : "pve-day-of-week-list",
                                  "optional" : 1,
+                                 "requires" : "starttime",
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
@@ -2878,7 +3622,7 @@ var pveapi = [
                                  "typetext" : "<string>"
                               },
                               "exclude-path" : {
-                                 "description" : "Exclude certain files/directories (shell globs).",
+                                 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root,  other paths match relative to each subdirectory.",
                                  "format" : "string-alist",
                                  "optional" : 1,
                                  "type" : "string",
@@ -2918,15 +3662,14 @@ var pveapi = [
                                  "type" : "string"
                               },
                               "mailto" : {
-                                 "description" : "Comma-separated list of email addresses that should receive email notifications.",
-                                 "format" : "string-list",
+                                 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
+                                 "format" : "email-or-username-list",
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
                               "maxfiles" : {
-                                 "default" : 1,
-                                 "description" : "Maximal number of backup files per guest system.",
+                                 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
                                  "minimum" : 1,
                                  "optional" : 1,
                                  "type" : "integer",
@@ -2950,6 +3693,13 @@ var pveapi = [
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
+                              "notes-template" : {
+                                 "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future.",
+                                 "optional" : 1,
+                                 "requires" : "storage",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
                               "pigz" : {
                                  "default" : 0,
                                  "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
@@ -2957,6 +3707,27 @@ var pveapi = [
                                  "type" : "integer",
                                  "typetext" : "<integer>"
                               },
+                              "pool" : {
+                                 "description" : "Backup all known guest systems included in the specified pool.",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "protected" : {
+                                 "description" : "If true, mark backup(s) as protected.",
+                                 "optional" : 1,
+                                 "requires" : "storage",
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "prune-backups" : {
+                                 "default" : "keep-all=1",
+                                 "description" : "Use these retention options instead of those from the storage configuration.",
+                                 "format" : "prune-backups",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
+                              },
                               "quiet" : {
                                  "default" : 0,
                                  "description" : "Be quiet.",
@@ -2966,27 +3737,35 @@ var pveapi = [
                               },
                               "remove" : {
                                  "default" : 1,
-                                 "description" : "Remove old backup files if there are more than 'maxfiles' backup files.",
+                                 "description" : "Prune older backups according to 'prune-backups'.",
                                  "optional" : 1,
                                  "type" : "boolean",
                                  "typetext" : "<boolean>"
                               },
-                              "script" : {
-                                 "description" : "Use specified hook script.",
+                              "repeat-missed" : {
+                                 "default" : 0,
+                                 "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "schedule" : {
+                                 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
+                                 "format" : "pve-calendar-event",
+                                 "maxLength" : 128,
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
-                              "size" : {
-                                 "default" : 1024,
-                                 "description" : "Unused, will be removed in a future release.",
-                                 "minimum" : 500,
+                              "script" : {
+                                 "description" : "Use specified hook script.",
                                  "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "<integer> (500 - N)"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "starttime" : {
                                  "description" : "Job Start time.",
+                                 "optional" : 1,
                                  "pattern" : "\\d{1,2}:\\d{1,2}",
                                  "type" : "string",
                                  "typetext" : "HH:MM"
@@ -3000,7 +3779,7 @@ var pveapi = [
                               },
                               "stop" : {
                                  "default" : 0,
-                                 "description" : "Stop runnig backup jobs on this host.",
+                                 "description" : "Stop running backup jobs on this host.",
                                  "optional" : 1,
                                  "type" : "boolean",
                                  "typetext" : "<boolean>"
@@ -3032,6 +3811,13 @@ var pveapi = [
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
+                              },
+                              "zstd" : {
+                                 "default" : 1,
+                                 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer>"
                               }
                            }
                         },
@@ -3042,7 +3828,8 @@ var pveapi = [
                               [
                                  "Sys.Modify"
                               ]
-                           ]
+                           ],
+                           "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
                         },
                         "protected" : 1,
                         "returns" : {
@@ -3050,13 +3837,14 @@ var pveapi = [
                         }
                      }
                   },
-                  "leaf" : 1,
+                  "leaf" : 0,
                   "path" : "/cluster/backup/{id}",
                   "text" : "{id}"
                }
             ],
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "List vzdump backup schedule.",
                   "method" : "GET",
                   "name" : "index",
@@ -3076,6 +3864,8 @@ var pveapi = [
                      "items" : {
                         "properties" : {
                            "id" : {
+                              "description" : "The job ID.",
+                              "maxLength" : 50,
                               "type" : "string"
                            }
                         },
@@ -3091,6 +3881,7 @@ var pveapi = [
                   }
                },
                "POST" : {
+                  "allowtoken" : 1,
                   "description" : "Create new vzdump backup job.",
                   "method" : "POST",
                   "name" : "create_job",
@@ -3112,6 +3903,13 @@ var pveapi = [
                            "type" : "integer",
                            "typetext" : "<integer> (0 - N)"
                         },
+                        "comment" : {
+                           "description" : "Description for the Job.",
+                           "maxLength" : 512,
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
                         "compress" : {
                            "default" : "0",
                            "description" : "Compress dump file.",
@@ -3119,7 +3917,8 @@ var pveapi = [
                               "0",
                               "1",
                               "gzip",
-                              "lzo"
+                              "lzo",
+                              "zstd"
                            ],
                            "optional" : 1,
                            "type" : "string"
@@ -3129,6 +3928,7 @@ var pveapi = [
                            "description" : "Day of week selection.",
                            "format" : "pve-day-of-week-list",
                            "optional" : 1,
+                           "requires" : "starttime",
                            "type" : "string",
                            "typetext" : "<string>"
                         },
@@ -3153,12 +3953,19 @@ var pveapi = [
                            "typetext" : "<string>"
                         },
                         "exclude-path" : {
-                           "description" : "Exclude certain files/directories (shell globs).",
+                           "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root,  other paths match relative to each subdirectory.",
                            "format" : "string-alist",
                            "optional" : 1,
                            "type" : "string",
                            "typetext" : "<string>"
                         },
+                        "id" : {
+                           "description" : "Job ID (will be autogenerated).",
+                           "format" : "pve-configid",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
                         "ionice" : {
                            "default" : 7,
                            "description" : "Set CFQ ionice priority.",
@@ -3187,15 +3994,14 @@ var pveapi = [
                            "type" : "string"
                         },
                         "mailto" : {
-                           "description" : "Comma-separated list of email addresses that should receive email notifications.",
-                           "format" : "string-list",
+                           "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
+                           "format" : "email-or-username-list",
                            "optional" : 1,
                            "type" : "string",
                            "typetext" : "<string>"
                         },
                         "maxfiles" : {
-                           "default" : 1,
-                           "description" : "Maximal number of backup files per guest system.",
+                           "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
                            "minimum" : 1,
                            "optional" : 1,
                            "type" : "integer",
@@ -3219,6 +4025,13 @@ var pveapi = [
                            "type" : "string",
                            "typetext" : "<string>"
                         },
+                        "notes-template" : {
+                           "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future.",
+                           "optional" : 1,
+                           "requires" : "storage",
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
                         "pigz" : {
                            "default" : 0,
                            "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
@@ -3226,6 +4039,27 @@ var pveapi = [
                            "type" : "integer",
                            "typetext" : "<integer>"
                         },
+                        "pool" : {
+                           "description" : "Backup all known guest systems included in the specified pool.",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "protected" : {
+                           "description" : "If true, mark backup(s) as protected.",
+                           "optional" : 1,
+                           "requires" : "storage",
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
+                        },
+                        "prune-backups" : {
+                           "default" : "keep-all=1",
+                           "description" : "Use these retention options instead of those from the storage configuration.",
+                           "format" : "prune-backups",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
+                        },
                         "quiet" : {
                            "default" : 0,
                            "description" : "Be quiet.",
@@ -3235,27 +4069,35 @@ var pveapi = [
                         },
                         "remove" : {
                            "default" : 1,
-                           "description" : "Remove old backup files if there are more than 'maxfiles' backup files.",
+                           "description" : "Prune older backups according to 'prune-backups'.",
                            "optional" : 1,
                            "type" : "boolean",
                            "typetext" : "<boolean>"
                         },
-                        "script" : {
-                           "description" : "Use specified hook script.",
+                        "repeat-missed" : {
+                           "default" : 0,
+                           "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
+                        },
+                        "schedule" : {
+                           "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
+                           "format" : "pve-calendar-event",
+                           "maxLength" : 128,
                            "optional" : 1,
                            "type" : "string",
                            "typetext" : "<string>"
                         },
-                        "size" : {
-                           "default" : 1024,
-                           "description" : "Unused, will be removed in a future release.",
-                           "minimum" : 500,
+                        "script" : {
+                           "description" : "Use specified hook script.",
                            "optional" : 1,
-                           "type" : "integer",
-                           "typetext" : "<integer> (500 - N)"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "starttime" : {
                            "description" : "Job Start time.",
+                           "optional" : 1,
                            "pattern" : "\\d{1,2}:\\d{1,2}",
                            "type" : "string",
                            "typetext" : "HH:MM"
@@ -3269,7 +4111,7 @@ var pveapi = [
                         },
                         "stop" : {
                            "default" : 0,
-                           "description" : "Stop runnig backup jobs on this host.",
+                           "description" : "Stop running backup jobs on this host.",
                            "optional" : 1,
                            "type" : "boolean",
                            "typetext" : "<boolean>"
@@ -3301,6 +4143,13 @@ var pveapi = [
                            "optional" : 1,
                            "type" : "string",
                            "typetext" : "<string>"
+                        },
+                        "zstd" : {
+                           "default" : 1,
+                           "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
+                           "optional" : 1,
+                           "type" : "integer",
+                           "typetext" : "<integer>"
                         }
                      }
                   },
@@ -3324,6 +4173,95 @@ var pveapi = [
             "path" : "/cluster/backup",
             "text" : "backup"
          },
+         {
+            "children" : [
+               {
+                  "info" : {
+                     "GET" : {
+                        "allowtoken" : 1,
+                        "description" : "Shows all guests which are not covered by any backup job.",
+                        "method" : "GET",
+                        "name" : "get_guests_not_in_backup",
+                        "parameters" : {
+                           "additionalProperties" : 0
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Audit"
+                              ]
+                           ]
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "description" : "Contains the guest objects.",
+                           "items" : {
+                              "properties" : {
+                                 "name" : {
+                                    "description" : "Name of the guest",
+                                    "optional" : 1,
+                                    "type" : "string"
+                                 },
+                                 "type" : {
+                                    "description" : "Type of the guest.",
+                                    "enum" : [
+                                       "qemu",
+                                       "lxc"
+                                    ],
+                                    "type" : "string"
+                                 },
+                                 "vmid" : {
+                                    "description" : "VMID of the guest.",
+                                    "type" : "integer"
+                                 }
+                              },
+                              "type" : "object"
+                           },
+                           "type" : "array"
+                        }
+                     }
+                  },
+                  "leaf" : 1,
+                  "path" : "/cluster/backup-info/not-backed-up",
+                  "text" : "not-backed-up"
+               }
+            ],
+            "info" : {
+               "GET" : {
+                  "allowtoken" : 1,
+                  "description" : "Index for backup info related endpoints",
+                  "method" : "GET",
+                  "name" : "index",
+                  "parameters" : {
+                     "additionalProperties" : 0
+                  },
+                  "returns" : {
+                     "description" : "Directory index.",
+                     "items" : {
+                        "properties" : {
+                           "subdir" : {
+                              "description" : "API sub-directory endpoint",
+                              "type" : "string"
+                           }
+                        },
+                        "type" : "object"
+                     },
+                     "links" : [
+                        {
+                           "href" : "{subdir}",
+                           "rel" : "child"
+                        }
+                     ],
+                     "type" : "array"
+                  }
+               }
+            },
+            "leaf" : 0,
+            "path" : "/cluster/backup-info",
+            "text" : "backup-info"
+         },
          {
             "children" : [
                {
@@ -3333,6 +4271,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Request resource migration (online) to another node.",
                                     "method" : "POST",
                                     "name" : "migrate",
@@ -3375,6 +4314,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.",
                                     "method" : "POST",
                                     "name" : "relocate",
@@ -3417,6 +4357,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "Delete resource configuration.",
                               "method" : "DELETE",
                               "name" : "delete",
@@ -3446,6 +4387,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Read resource configuration.",
                               "method" : "GET",
                               "name" : "read",
@@ -3523,6 +4465,7 @@ var pveapi = [
                               }
                            },
                            "PUT" : {
+                              "allowtoken" : 1,
                               "description" : "Update resource configuration.",
                               "method" : "PUT",
                               "name" : "update",
@@ -3619,6 +4562,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "List HA resources.",
                         "method" : "GET",
                         "name" : "index",
@@ -3664,6 +4608,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Create a new HA resource.",
                         "method" : "POST",
                         "name" : "create",
@@ -3756,6 +4701,7 @@ var pveapi = [
                      {
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "Delete ha group configuration.",
                               "method" : "DELETE",
                               "name" : "delete",
@@ -3785,6 +4731,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Read ha group configuration.",
                               "method" : "GET",
                               "name" : "read",
@@ -3811,6 +4758,7 @@ var pveapi = [
                               "returns" : {}
                            },
                            "PUT" : {
+                              "allowtoken" : 1,
                               "description" : "Update ha group configuration.",
                               "method" : "PUT",
                               "name" : "update",
@@ -3893,6 +4841,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get HA groups.",
                         "method" : "GET",
                         "name" : "index",
@@ -3927,6 +4876,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Create a new HA group.",
                         "method" : "POST",
                         "name" : "create",
@@ -4004,6 +4954,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get HA manger status.",
                               "method" : "GET",
                               "name" : "status",
@@ -4031,6 +4982,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get full HA manger status, including LRM status.",
                               "method" : "GET",
                               "name" : "manager_status",
@@ -4058,6 +5010,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Directory index.",
                         "method" : "GET",
                         "name" : "index",
@@ -4089,6 +5042,7 @@ var pveapi = [
             ],
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Directory index.",
                   "method" : "GET",
                   "name" : "index",
@@ -4134,6 +5088,537 @@ var pveapi = [
                      {
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
+                              "description" : "Delete ACME plugin configuration.",
+                              "method" : "DELETE",
+                              "name" : "delete_plugin",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "id" : {
+                                       "description" : "Unique identifier for ACME plugin instance.",
+                                       "format" : "pve-configid",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Modify"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           },
+                           "GET" : {
+                              "allowtoken" : 1,
+                              "description" : "Get ACME plugin configuration.",
+                              "method" : "GET",
+                              "name" : "get_plugin_config",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "id" : {
+                                       "description" : "Unique identifier for ACME plugin instance.",
+                                       "format" : "pve-configid",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Modify"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "object"
+                              }
+                           },
+                           "PUT" : {
+                              "allowtoken" : 1,
+                              "description" : "Update ACME plugin configuration.",
+                              "method" : "PUT",
+                              "name" : "update_plugin",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "api" : {
+                                       "description" : "API plugin name",
+                                       "enum" : [
+                                          "1984hosting",
+                                          "acmedns",
+                                          "acmeproxy",
+                                          "active24",
+                                          "ad",
+                                          "ali",
+                                          "anx",
+                                          "arvan",
+                                          "aurora",
+                                          "autodns",
+                                          "aws",
+                                          "azion",
+                                          "azure",
+                                          "cf",
+                                          "clouddns",
+                                          "cloudns",
+                                          "cn",
+                                          "conoha",
+                                          "constellix",
+                                          "cx",
+                                          "cyon",
+                                          "da",
+                                          "ddnss",
+                                          "desec",
+                                          "df",
+                                          "dgon",
+                                          "dnsimple",
+                                          "do",
+                                          "doapi",
+                                          "domeneshop",
+                                          "dp",
+                                          "dpi",
+                                          "dreamhost",
+                                          "duckdns",
+                                          "durabledns",
+                                          "dyn",
+                                          "dynu",
+                                          "dynv6",
+                                          "easydns",
+                                          "edgedns",
+                                          "euserv",
+                                          "exoscale",
+                                          "freedns",
+                                          "gandi_livedns",
+                                          "gcloud",
+                                          "gd",
+                                          "gdnsdk",
+                                          "he",
+                                          "hetzner",
+                                          "hexonet",
+                                          "hostingde",
+                                          "huaweicloud",
+                                          "infoblox",
+                                          "infomaniak",
+                                          "internetbs",
+                                          "inwx",
+                                          "ionos",
+                                          "ispconfig",
+                                          "jd",
+                                          "joker",
+                                          "kappernet",
+                                          "kas",
+                                          "kinghost",
+                                          "knot",
+                                          "leaseweb",
+                                          "lexicon",
+                                          "linode",
+                                          "linode_v4",
+                                          "loopia",
+                                          "lua",
+                                          "maradns",
+                                          "me",
+                                          "miab",
+                                          "misaka",
+                                          "myapi",
+                                          "mydevil",
+                                          "mydnsjp",
+                                          "namecheap",
+                                          "namecom",
+                                          "namesilo",
+                                          "nederhost",
+                                          "neodigit",
+                                          "netcup",
+                                          "netlify",
+                                          "nic",
+                                          "njalla",
+                                          "nm",
+                                          "nsd",
+                                          "nsone",
+                                          "nsupdate",
+                                          "nw",
+                                          "oci",
+                                          "one",
+                                          "online",
+                                          "openprovider",
+                                          "openstack",
+                                          "opnsense",
+                                          "ovh",
+                                          "pdns",
+                                          "pleskxml",
+                                          "pointhq",
+                                          "porkbun",
+                                          "rackcorp",
+                                          "rackspace",
+                                          "rcode0",
+                                          "regru",
+                                          "scaleway",
+                                          "schlundtech",
+                                          "selectel",
+                                          "servercow",
+                                          "simply",
+                                          "tele3",
+                                          "transip",
+                                          "ultra",
+                                          "unoeuro",
+                                          "variomedia",
+                                          "veesp",
+                                          "vscale",
+                                          "vultr",
+                                          "websupport",
+                                          "world4you",
+                                          "yandex",
+                                          "zilore",
+                                          "zone",
+                                          "zonomi"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "data" : {
+                                       "description" : "DNS plugin data. (base64 encoded)",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "delete" : {
+                                       "description" : "A list of settings you want to delete.",
+                                       "format" : "pve-configid-list",
+                                       "maxLength" : 4096,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "digest" : {
+                                       "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                       "maxLength" : 40,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "disable" : {
+                                       "description" : "Flag to disable the config.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "id" : {
+                                       "description" : "ACME Plugin ID name",
+                                       "format" : "pve-configid",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "nodes" : {
+                                       "description" : "List of cluster node names.",
+                                       "format" : "pve-node-list",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "validation-delay" : {
+                                       "default" : 30,
+                                       "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
+                                       "maximum" : 172800,
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (0 - 172800)"
+                                    }
+                                 },
+                                 "type" : "object"
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Modify"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/cluster/acme/plugins/{id}",
+                        "text" : "{id}"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "allowtoken" : 1,
+                        "description" : "ACME plugin index.",
+                        "method" : "GET",
+                        "name" : "index",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "type" : {
+                                 "description" : "Only list ACME plugins of a specific type",
+                                 "enum" : [
+                                    "dns",
+                                    "standalone"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Modify"
+                              ]
+                           ]
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "items" : {
+                              "properties" : {
+                                 "plugin" : {
+                                    "description" : "Unique identifier for ACME plugin instance.",
+                                    "format" : "pve-configid",
+                                    "type" : "string"
+                                 }
+                              },
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{plugin}",
+                                 "rel" : "child"
+                              }
+                           ],
+                           "type" : "array"
+                        }
+                     },
+                     "POST" : {
+                        "allowtoken" : 1,
+                        "description" : "Add ACME plugin configuration.",
+                        "method" : "POST",
+                        "name" : "add_plugin",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "api" : {
+                                 "description" : "API plugin name",
+                                 "enum" : [
+                                    "1984hosting",
+                                    "acmedns",
+                                    "acmeproxy",
+                                    "active24",
+                                    "ad",
+                                    "ali",
+                                    "anx",
+                                    "arvan",
+                                    "aurora",
+                                    "autodns",
+                                    "aws",
+                                    "azion",
+                                    "azure",
+                                    "cf",
+                                    "clouddns",
+                                    "cloudns",
+                                    "cn",
+                                    "conoha",
+                                    "constellix",
+                                    "cx",
+                                    "cyon",
+                                    "da",
+                                    "ddnss",
+                                    "desec",
+                                    "df",
+                                    "dgon",
+                                    "dnsimple",
+                                    "do",
+                                    "doapi",
+                                    "domeneshop",
+                                    "dp",
+                                    "dpi",
+                                    "dreamhost",
+                                    "duckdns",
+                                    "durabledns",
+                                    "dyn",
+                                    "dynu",
+                                    "dynv6",
+                                    "easydns",
+                                    "edgedns",
+                                    "euserv",
+                                    "exoscale",
+                                    "freedns",
+                                    "gandi_livedns",
+                                    "gcloud",
+                                    "gd",
+                                    "gdnsdk",
+                                    "he",
+                                    "hetzner",
+                                    "hexonet",
+                                    "hostingde",
+                                    "huaweicloud",
+                                    "infoblox",
+                                    "infomaniak",
+                                    "internetbs",
+                                    "inwx",
+                                    "ionos",
+                                    "ispconfig",
+                                    "jd",
+                                    "joker",
+                                    "kappernet",
+                                    "kas",
+                                    "kinghost",
+                                    "knot",
+                                    "leaseweb",
+                                    "lexicon",
+                                    "linode",
+                                    "linode_v4",
+                                    "loopia",
+                                    "lua",
+                                    "maradns",
+                                    "me",
+                                    "miab",
+                                    "misaka",
+                                    "myapi",
+                                    "mydevil",
+                                    "mydnsjp",
+                                    "namecheap",
+                                    "namecom",
+                                    "namesilo",
+                                    "nederhost",
+                                    "neodigit",
+                                    "netcup",
+                                    "netlify",
+                                    "nic",
+                                    "njalla",
+                                    "nm",
+                                    "nsd",
+                                    "nsone",
+                                    "nsupdate",
+                                    "nw",
+                                    "oci",
+                                    "one",
+                                    "online",
+                                    "openprovider",
+                                    "openstack",
+                                    "opnsense",
+                                    "ovh",
+                                    "pdns",
+                                    "pleskxml",
+                                    "pointhq",
+                                    "porkbun",
+                                    "rackcorp",
+                                    "rackspace",
+                                    "rcode0",
+                                    "regru",
+                                    "scaleway",
+                                    "schlundtech",
+                                    "selectel",
+                                    "servercow",
+                                    "simply",
+                                    "tele3",
+                                    "transip",
+                                    "ultra",
+                                    "unoeuro",
+                                    "variomedia",
+                                    "veesp",
+                                    "vscale",
+                                    "vultr",
+                                    "websupport",
+                                    "world4you",
+                                    "yandex",
+                                    "zilore",
+                                    "zone",
+                                    "zonomi"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "data" : {
+                                 "description" : "DNS plugin data. (base64 encoded)",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "disable" : {
+                                 "description" : "Flag to disable the config.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "id" : {
+                                 "description" : "ACME Plugin ID name",
+                                 "format" : "pve-configid",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "nodes" : {
+                                 "description" : "List of cluster node names.",
+                                 "format" : "pve-node-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "type" : {
+                                 "description" : "ACME challenge type.",
+                                 "enum" : [
+                                    "dns",
+                                    "standalone"
+                                 ],
+                                 "type" : "string"
+                              },
+                              "validation-delay" : {
+                                 "default" : 30,
+                                 "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
+                                 "maximum" : 172800,
+                                 "minimum" : 0,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (0 - 172800)"
+                              }
+                           },
+                           "type" : "object"
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Modify"
+                              ]
+                           ]
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "type" : "null"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/cluster/acme/plugins",
+                  "text" : "plugins"
+               },
+               {
+                  "children" : [
+                     {
+                        "info" : {
+                           "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "Deactivate existing ACME account at CA.",
                               "method" : "DELETE",
                               "name" : "deactivate_account",
@@ -4157,6 +5642,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Return existing ACME account information.",
                               "method" : "GET",
                               "name" : "get_account",
@@ -4202,6 +5688,7 @@ var pveapi = [
                               }
                            },
                            "PUT" : {
+                              "allowtoken" : 1,
                               "description" : "Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.",
                               "method" : "PUT",
                               "name" : "update_account",
@@ -4239,6 +5726,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "ACMEAccount index.",
                         "method" : "GET",
                         "name" : "account_index",
@@ -4264,6 +5752,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Register a new ACME account with CA.",
                         "method" : "POST",
                         "name" : "register_account",
@@ -4313,6 +5802,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Retrieve ACME TermsOfService URL from CA.",
                         "method" : "GET",
                         "name" : "get_tos",
@@ -4333,6 +5823,7 @@ var pveapi = [
                         },
                         "returns" : {
                            "description" : "ACME TermsOfService URL.",
+                           "optional" : 1,
                            "type" : "string"
                         }
                      }
@@ -4344,6 +5835,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get named known ACME directory endpoints.",
                         "method" : "GET",
                         "name" : "get_directories",
@@ -4375,10 +5867,52 @@ var pveapi = [
                   "leaf" : 1,
                   "path" : "/cluster/acme/directories",
                   "text" : "directories"
+               },
+               {
+                  "info" : {
+                     "GET" : {
+                        "allowtoken" : 1,
+                        "description" : "Get schema of ACME challenge types.",
+                        "method" : "GET",
+                        "name" : "challengeschema",
+                        "parameters" : {
+                           "additionalProperties" : 0
+                        },
+                        "permissions" : {
+                           "user" : "all"
+                        },
+                        "returns" : {
+                           "items" : {
+                              "additionalProperties" : 0,
+                              "properties" : {
+                                 "id" : {
+                                    "type" : "string"
+                                 },
+                                 "name" : {
+                                    "description" : "Human readable name, falls back to id",
+                                    "type" : "string"
+                                 },
+                                 "schema" : {
+                                    "type" : "object"
+                                 },
+                                 "type" : {
+                                    "type" : "string"
+                                 }
+                              },
+                              "type" : "object"
+                           },
+                           "type" : "array"
+                        }
+                     }
+                  },
+                  "leaf" : 1,
+                  "path" : "/cluster/acme/challenge-schema",
+                  "text" : "challenge-schema"
                }
             ],
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "ACMEAccount index.",
                   "method" : "GET",
                   "name" : "index",
@@ -4408,170 +5942,427 @@ var pveapi = [
             "text" : "acme"
          },
          {
-            "info" : {
-               "GET" : {
-                  "description" : "Read cluster log",
-                  "method" : "GET",
-                  "name" : "log",
-                  "parameters" : {
-                     "additionalProperties" : 0,
-                     "properties" : {
-                        "max" : {
-                           "description" : "Maximum number of entries.",
-                           "minimum" : 1,
-                           "optional" : 1,
-                           "type" : "integer",
-                           "typetext" : "<integer> (1 - N)"
+            "children" : [
+               {
+                  "info" : {
+                     "GET" : {
+                        "allowtoken" : 1,
+                        "description" : "Get ceph metadata.",
+                        "method" : "GET",
+                        "name" : "metadata",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "scope" : {
+                                 "default" : "all",
+                                 "enum" : [
+                                    "all",
+                                    "versions"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Audit",
+                                 "Datastore.Audit"
+                              ],
+                              "any",
+                              1
+                           ]
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "type" : "object"
                         }
                      }
                   },
-                  "permissions" : {
-                     "user" : "all"
+                  "leaf" : 1,
+                  "path" : "/cluster/ceph/metadata",
+                  "text" : "metadata"
+               },
+               {
+                  "info" : {
+                     "GET" : {
+                        "allowtoken" : 1,
+                        "description" : "Get ceph status.",
+                        "method" : "GET",
+                        "name" : "status",
+                        "parameters" : {
+                           "additionalProperties" : 0
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Audit",
+                                 "Datastore.Audit"
+                              ],
+                              "any",
+                              1
+                           ]
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "type" : "object"
+                        }
+                     }
                   },
-                  "returns" : {
-                     "items" : {
-                        "properties" : {},
-                        "type" : "object"
+                  "leaf" : 1,
+                  "path" : "/cluster/ceph/status",
+                  "text" : "status"
+               },
+               {
+                  "children" : [
+                     {
+                        "info" : {
+                           "GET" : {
+                              "allowtoken" : 1,
+                              "description" : "Get the status of a specific ceph flag.",
+                              "method" : "GET",
+                              "name" : "get_flag",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "flag" : {
+                                       "description" : "The name of the flag name to get.",
+                                       "enum" : [
+                                          "nobackfill",
+                                          "nodeep-scrub",
+                                          "nodown",
+                                          "noin",
+                                          "noout",
+                                          "norebalance",
+                                          "norecover",
+                                          "noscrub",
+                                          "notieragent",
+                                          "noup",
+                                          "pause"
+                                       ],
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Audit"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "boolean"
+                              }
+                           },
+                           "PUT" : {
+                              "allowtoken" : 1,
+                              "description" : "Set or clear (unset) a specific ceph flag",
+                              "method" : "PUT",
+                              "name" : "update_flag",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "flag" : {
+                                       "description" : "The ceph flag to update",
+                                       "enum" : [
+                                          "nobackfill",
+                                          "nodeep-scrub",
+                                          "nodown",
+                                          "noin",
+                                          "noout",
+                                          "norebalance",
+                                          "norecover",
+                                          "noscrub",
+                                          "notieragent",
+                                          "noup",
+                                          "pause"
+                                       ],
+                                       "type" : "string"
+                                    },
+                                    "value" : {
+                                       "description" : "The new value of the flag",
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Modify"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/cluster/ceph/flags/{flag}",
+                        "text" : "{flag}"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "allowtoken" : 1,
+                        "description" : "get the status of all ceph flags",
+                        "method" : "GET",
+                        "name" : "get_all_flags",
+                        "parameters" : {
+                           "additionalProperties" : 0
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Audit"
+                              ]
+                           ]
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "items" : {
+                              "additionalProperties" : 1,
+                              "properties" : {
+                                 "name" : {
+                                    "description" : "Flag name.",
+                                    "enum" : [
+                                       "nobackfill",
+                                       "nodeep-scrub",
+                                       "nodown",
+                                       "noin",
+                                       "noout",
+                                       "norebalance",
+                                       "norecover",
+                                       "noscrub",
+                                       "notieragent",
+                                       "noup",
+                                       "pause"
+                                    ],
+                                    "type" : "string"
+                                 }
+                              },
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{name}",
+                                 "rel" : "child"
+                              }
+                           ],
+                           "type" : "array"
+                        }
                      },
-                     "type" : "array"
-                  }
+                     "PUT" : {
+                        "allowtoken" : 1,
+                        "description" : "Set/Unset multiple ceph flags at once.",
+                        "method" : "PUT",
+                        "name" : "set_flags",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "nobackfill" : {
+                                 "description" : "Backfilling of PGs is suspended.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "nodeep-scrub" : {
+                                 "description" : "Deep Scrubbing is disabled.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "nodown" : {
+                                 "description" : "OSD failure reports are being ignored, such that the monitors will not mark OSDs down.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "noin" : {
+                                 "description" : "OSDs that were previously marked out will not be marked back in when they start.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "noout" : {
+                                 "description" : "OSDs will not automatically be marked out after the configured interval.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "norebalance" : {
+                                 "description" : "Rebalancing of PGs is suspended.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "norecover" : {
+                                 "description" : "Recovery of PGs is suspended.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "noscrub" : {
+                                 "description" : "Scrubbing is disabled.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "notieragent" : {
+                                 "description" : "Cache tiering activity is suspended.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "noup" : {
+                                 "description" : "OSDs are not allowed to start.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "pause" : {
+                                 "description" : "Pauses read and writes.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Modify"
+                              ]
+                           ]
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "type" : "string"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/cluster/ceph/flags",
+                  "text" : "flags"
                }
-            },
-            "leaf" : 1,
-            "path" : "/cluster/log",
-            "text" : "log"
-         },
-         {
+            ],
             "info" : {
                "GET" : {
-                  "description" : "Resources index (cluster wide).",
+                  "allowtoken" : 1,
+                  "description" : "Cluster ceph index.",
                   "method" : "GET",
-                  "name" : "resources",
+                  "name" : "cephindex",
                   "parameters" : {
-                     "additionalProperties" : 0,
-                     "properties" : {
-                        "type" : {
-                           "enum" : [
-                              "vm",
-                              "storage",
-                              "node"
-                           ],
-                           "optional" : 1,
-                           "type" : "string"
-                        }
-                     }
+                     "additionalProperties" : 0
                   },
                   "permissions" : {
                      "user" : "all"
                   },
                   "returns" : {
                      "items" : {
-                        "properties" : {
-                           "cpu" : {
-                              "description" : "CPU utilization (when type in node,qemu,lxc).",
-                              "optional" : 1,
-                              "renderer" : "fraction_as_percentage",
-                              "type" : "number"
-                           },
-                           "disk" : {
-                              "description" : "Used disk space in bytes (when type in storage), used root image spave for VMs (type in qemu,lxc).",
-                              "optional" : 1,
-                              "renderer" : "bytes",
-                              "type" : "string"
-                           },
-                           "hastate" : {
-                              "description" : "HA service status (for HA managed VMs).",
-                              "optional" : 1,
-                              "type" : "string"
-                           },
-                           "id" : {
-                              "type" : "string"
-                           },
-                           "level" : {
-                              "description" : "Support level (when type == node).",
-                              "optional" : 1,
-                              "type" : "string"
-                           },
-                           "maxcpu" : {
-                              "description" : "Number of available CPUs (when type in node,qemu,lxc).",
-                              "optional" : 1,
-                              "type" : "number"
-                           },
-                           "maxdisk" : {
-                              "description" : "Storage size in bytes (when type in storage), root image size for VMs (type in qemu,lxc).",
-                              "optional" : 1,
-                              "renderer" : "bytes",
-                              "type" : "integer"
-                           },
-                           "maxmem" : {
-                              "description" : "Number of available memory in bytes (when type in node,qemu,lxc).",
-                              "optional" : 1,
-                              "renderer" : "bytes",
-                              "type" : "integer"
-                           },
-                           "mem" : {
-                              "description" : "Used memory in bytes (when type in node,qemu,lxc).",
-                              "optional" : 1,
-                              "renderer" : "bytes",
-                              "type" : "string"
-                           },
-                           "node" : {
-                              "description" : "The cluster node name (when type in node,storage,qemu,lxc).",
-                              "format" : "pve-node",
-                              "optional" : 1,
-                              "type" : "string"
-                           },
-                           "pool" : {
-                              "description" : "The pool name (when type in pool,qemu,lxc).",
-                              "optional" : 1,
-                              "type" : "string"
-                           },
-                           "status" : {
-                              "description" : "Resource type dependent status.",
-                              "optional" : 1,
-                              "type" : "string"
-                           },
-                           "storage" : {
-                              "description" : "The storage identifier (when type == storage).",
-                              "format" : "pve-storage-id",
-                              "optional" : 1,
-                              "type" : "string"
-                           },
-                           "type" : {
-                              "description" : "Resource type.",
-                              "enum" : [
-                                 "node",
-                                 "storage",
-                                 "pool",
-                                 "qemu",
-                                 "lxc",
-                                 "openvz"
-                              ],
-                              "type" : "string"
-                           },
-                           "uptime" : {
-                              "description" : "Node uptime in seconds (when type in node,qemu,lxc).",
-                              "optional" : 1,
-                              "renderer" : "duration",
-                              "type" : "integer"
-                           }
-                        },
+                        "properties" : {},
                         "type" : "object"
                      },
+                     "links" : [
+                        {
+                           "href" : "{name}",
+                           "rel" : "child"
+                        }
+                     ],
                      "type" : "array"
                   }
                }
             },
-            "leaf" : 1,
-            "path" : "/cluster/resources",
-            "text" : "resources"
+            "leaf" : 0,
+            "path" : "/cluster/ceph",
+            "text" : "ceph"
          },
          {
+            "children" : [
+               {
+                  "info" : {
+                     "GET" : {
+                        "allowtoken" : 1,
+                        "description" : "Returns a list of future schedule runtimes.",
+                        "method" : "GET",
+                        "name" : "schedule-analyze",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "iterations" : {
+                                 "default" : 10,
+                                 "description" : "Number of event-iteration to simulate and return.",
+                                 "maximum" : 100,
+                                 "minimum" : 1,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (1 - 100)"
+                              },
+                              "schedule" : {
+                                 "description" : "Job schedule. The format is a subset of `systemd` calendar events.",
+                                 "format" : "pve-calendar-event",
+                                 "maxLength" : 128,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "starttime" : {
+                                 "description" : "UNIX timestamp to start the calculation from. Defaults to the current time.",
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "user" : "all"
+                        },
+                        "returns" : {
+                           "description" : "An array of the next <iterations> events since <starttime>.",
+                           "items" : {
+                              "properties" : {
+                                 "timestamp" : {
+                                    "description" : "UNIX timestamp for the run.",
+                                    "type" : "integer"
+                                 },
+                                 "utc" : {
+                                    "description" : "UTC timestamp for the run.",
+                                    "type" : "string"
+                                 }
+                              },
+                              "type" : "object"
+                           },
+                           "type" : "array"
+                        }
+                     }
+                  },
+                  "leaf" : 1,
+                  "path" : "/cluster/jobs/schedule-analyze",
+                  "text" : "schedule-analyze"
+               }
+            ],
             "info" : {
                "GET" : {
-                  "description" : "List recent tasks (cluster wide).",
+                  "allowtoken" : 1,
+                  "description" : "Index for jobs related endpoints.",
                   "method" : "GET",
-                  "name" : "tasks",
+                  "name" : "index",
                   "parameters" : {
                      "additionalProperties" : 0
                   },
@@ -4579,74 +6370,2254 @@ var pveapi = [
                      "user" : "all"
                   },
                   "returns" : {
+                     "description" : "Directory index.",
                      "items" : {
                         "properties" : {
-                           "upid" : {
+                           "subdir" : {
+                              "description" : "API sub-directory endpoint",
                               "type" : "string"
                            }
                         },
                         "type" : "object"
                      },
+                     "links" : [
+                        {
+                           "href" : "{subdir}",
+                           "rel" : "child"
+                        }
+                     ],
                      "type" : "array"
                   }
                }
             },
-            "leaf" : 1,
-            "path" : "/cluster/tasks",
-            "text" : "tasks"
+            "leaf" : 0,
+            "path" : "/cluster/jobs",
+            "text" : "jobs"
          },
          {
-            "info" : {
-               "GET" : {
-                  "description" : "Get datacenter options.",
-                  "method" : "GET",
-                  "name" : "get_options",
-                  "parameters" : {
-                     "additionalProperties" : 0
-                  },
-                  "permissions" : {
-                     "check" : [
-                        "perm",
-                        "/",
-                        [
-                           "Sys.Audit"
-                        ]
-                     ]
-                  },
-                  "returns" : {
-                     "type" : "object"
-                  }
-               },
-               "PUT" : {
-                  "description" : "Set datacenter options.",
-                  "method" : "PUT",
-                  "name" : "set_options",
-                  "parameters" : {
-                     "additionalProperties" : 0,
-                     "properties" : {
-                        "bwlimit" : {
-                           "description" : "Set bandwidth/io limits various operations.",
-                           "format" : {
-                              "clone" : {
-                                 "description" : "bandwidth limit in KiB/s for cloning disks",
-                                 "format_description" : "LIMIT",
-                                 "minimum" : "0",
-                                 "optional" : 1,
-                                 "type" : "number"
-                              },
-                              "default" : {
-                                 "description" : "default bandwidth limit in KiB/s",
-                                 "format_description" : "LIMIT",
-                                 "minimum" : "0",
-                                 "optional" : 1,
-                                 "type" : "number"
-                              },
-                              "migration" : {
-                                 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
-                                 "format_description" : "LIMIT",
-                                 "minimum" : "0",
-                                 "optional" : 1,
-                                 "type" : "number"
+            "children" : [
+               {
+                  "children" : [
+                     {
+                        "children" : [
+                           {
+                              "children" : [
+                                 {
+                                    "info" : {
+                                       "DELETE" : {
+                                          "allowtoken" : 1,
+                                          "description" : "Delete sdn subnet object configuration.",
+                                          "method" : "DELETE",
+                                          "name" : "delete",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "subnet" : {
+                                                   "description" : "The SDN subnet object identifier.",
+                                                   "format" : "pve-sdn-subnet-id",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "vnet" : {
+                                                   "description" : "The SDN vnet object identifier.",
+                                                   "format" : "pve-sdn-vnet-id",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/sdn/vnets/{vnet}/subnets",
+                                                [
+                                                   "SDN.Allocate"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "returns" : {
+                                             "type" : "null"
+                                          }
+                                       },
+                                       "GET" : {
+                                          "allowtoken" : 1,
+                                          "description" : "Read sdn subnet configuration.",
+                                          "method" : "GET",
+                                          "name" : "read",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "pending" : {
+                                                   "description" : "Display pending config.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
+                                                "running" : {
+                                                   "description" : "Display running config.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
+                                                "subnet" : {
+                                                   "description" : "The SDN subnet object identifier.",
+                                                   "format" : "pve-sdn-subnet-id",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "vnet" : {
+                                                   "description" : "The SDN vnet object identifier.",
+                                                   "format" : "pve-sdn-vnet-id",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/sdn/vnets/{vnet}/subnets/{subnet}",
+                                                [
+                                                   "SDN.Allocate"
+                                                ]
+                                             ]
+                                          },
+                                          "returns" : {
+                                             "type" : "object"
+                                          }
+                                       },
+                                       "PUT" : {
+                                          "allowtoken" : 1,
+                                          "description" : "Update sdn subnet object configuration.",
+                                          "method" : "PUT",
+                                          "name" : "update",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "delete" : {
+                                                   "description" : "A list of settings you want to delete.",
+                                                   "format" : "pve-configid-list",
+                                                   "maxLength" : 4096,
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "digest" : {
+                                                   "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                                   "maxLength" : 40,
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "dnszoneprefix" : {
+                                                   "description" : "dns domain zone prefix  ex: 'adm' -> <hostname>.adm.mydomain.com",
+                                                   "format" : "dns-name",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "gateway" : {
+                                                   "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
+                                                   "format" : "ip",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "snat" : {
+                                                   "description" : "enable masquerade for this subnet if pve-firewall",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
+                                                "subnet" : {
+                                                   "description" : "The SDN subnet object identifier.",
+                                                   "format" : "pve-sdn-subnet-id",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "vnet" : {
+                                                   "description" : "associated vnet",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                }
+                                             },
+                                             "type" : "object"
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/sdn/vnets/{vnet}/subnets",
+                                                [
+                                                   "SDN.Allocate"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "returns" : {
+                                             "type" : "null"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/cluster/sdn/vnets/{vnet}/subnets/{subnet}",
+                                    "text" : "{subnet}"
+                                 }
+                              ],
+                              "info" : {
+                                 "GET" : {
+                                    "allowtoken" : 1,
+                                    "description" : "SDN subnets index.",
+                                    "method" : "GET",
+                                    "name" : "index",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "pending" : {
+                                             "description" : "Display pending config.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "running" : {
+                                             "description" : "Display running config.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "vnet" : {
+                                             "description" : "The SDN vnet object identifier.",
+                                             "format" : "pve-sdn-vnet-id",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/subnets/<subnet>'",
+                                       "user" : "all"
+                                    },
+                                    "returns" : {
+                                       "items" : {
+                                          "properties" : {},
+                                          "type" : "object"
+                                       },
+                                       "links" : [
+                                          {
+                                             "href" : "{subnet}",
+                                             "rel" : "child"
+                                          }
+                                       ],
+                                       "type" : "array"
+                                    }
+                                 },
+                                 "POST" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Create a new sdn subnet object.",
+                                    "method" : "POST",
+                                    "name" : "create",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "dnszoneprefix" : {
+                                             "description" : "dns domain zone prefix  ex: 'adm' -> <hostname>.adm.mydomain.com",
+                                             "format" : "dns-name",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "gateway" : {
+                                             "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
+                                             "format" : "ip",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "snat" : {
+                                             "description" : "enable masquerade for this subnet if pve-firewall",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "subnet" : {
+                                             "description" : "The SDN subnet object identifier.",
+                                             "format" : "pve-sdn-subnet-id",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "type" : {
+                                             "enum" : [
+                                                "subnet"
+                                             ],
+                                             "type" : "string"
+                                          },
+                                          "vnet" : {
+                                             "description" : "associated vnet",
+                                             "optional" : 0,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       },
+                                       "type" : "object"
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/sdn/vnets/{vnet}/subnets",
+                                          [
+                                             "SDN.Allocate"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "returns" : {
+                                       "type" : "null"
+                                    }
+                                 }
+                              },
+                              "leaf" : 0,
+                              "path" : "/cluster/sdn/vnets/{vnet}/subnets",
+                              "text" : "subnets"
+                           }
+                        ],
+                        "info" : {
+                           "DELETE" : {
+                              "allowtoken" : 1,
+                              "description" : "Delete sdn vnet object configuration.",
+                              "method" : "DELETE",
+                              "name" : "delete",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "vnet" : {
+                                       "description" : "The SDN vnet object identifier.",
+                                       "format" : "pve-sdn-vnet-id",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/sdn/vnets",
+                                    [
+                                       "SDN.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           },
+                           "GET" : {
+                              "allowtoken" : 1,
+                              "description" : "Read sdn vnet configuration.",
+                              "method" : "GET",
+                              "name" : "read",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "pending" : {
+                                       "description" : "Display pending config.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "running" : {
+                                       "description" : "Display running config.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "vnet" : {
+                                       "description" : "The SDN vnet object identifier.",
+                                       "format" : "pve-sdn-vnet-id",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/sdn/vnets/{vnet}",
+                                    [
+                                       "SDN.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "returns" : {
+                                 "type" : "object"
+                              }
+                           },
+                           "PUT" : {
+                              "allowtoken" : 1,
+                              "description" : "Update sdn vnet object configuration.",
+                              "method" : "PUT",
+                              "name" : "update",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "alias" : {
+                                       "description" : "alias name of the vnet",
+                                       "maxLength" : 256,
+                                       "optional" : 1,
+                                       "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
+                                       "type" : "string"
+                                    },
+                                    "delete" : {
+                                       "description" : "A list of settings you want to delete.",
+                                       "format" : "pve-configid-list",
+                                       "maxLength" : 4096,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "digest" : {
+                                       "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                       "maxLength" : 40,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "tag" : {
+                                       "description" : "vlan or vxlan id",
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer>"
+                                    },
+                                    "vlanaware" : {
+                                       "description" : "Allow vm VLANs to pass through this vnet.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "vnet" : {
+                                       "description" : "The SDN vnet object identifier.",
+                                       "format" : "pve-sdn-vnet-id",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "zone" : {
+                                       "description" : "zone id",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 },
+                                 "type" : "object"
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/sdn/vnets",
+                                    [
+                                       "SDN.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           }
+                        },
+                        "leaf" : 0,
+                        "path" : "/cluster/sdn/vnets/{vnet}",
+                        "text" : "{vnet}"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "allowtoken" : 1,
+                        "description" : "SDN vnets index.",
+                        "method" : "GET",
+                        "name" : "index",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "pending" : {
+                                 "description" : "Display pending config.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "running" : {
+                                 "description" : "Display running config.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/vnets/<vnet>'",
+                           "user" : "all"
+                        },
+                        "returns" : {
+                           "items" : {
+                              "properties" : {},
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{vnet}",
+                                 "rel" : "child"
+                              }
+                           ],
+                           "type" : "array"
+                        }
+                     },
+                     "POST" : {
+                        "allowtoken" : 1,
+                        "description" : "Create a new sdn vnet object.",
+                        "method" : "POST",
+                        "name" : "create",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "alias" : {
+                                 "description" : "alias name of the vnet",
+                                 "maxLength" : 256,
+                                 "optional" : 1,
+                                 "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
+                                 "type" : "string"
+                              },
+                              "tag" : {
+                                 "description" : "vlan or vxlan id",
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer>"
+                              },
+                              "type" : {
+                                 "description" : "Type",
+                                 "enum" : [
+                                    "vnet"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "vlanaware" : {
+                                 "description" : "Allow vm VLANs to pass through this vnet.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "vnet" : {
+                                 "description" : "The SDN vnet object identifier.",
+                                 "format" : "pve-sdn-vnet-id",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "zone" : {
+                                 "description" : "zone id",
+                                 "optional" : 0,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           },
+                           "type" : "object"
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/sdn/vnets",
+                              [
+                                 "SDN.Allocate"
+                              ]
+                           ]
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "type" : "null"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/cluster/sdn/vnets",
+                  "text" : "vnets"
+               },
+               {
+                  "children" : [
+                     {
+                        "info" : {
+                           "DELETE" : {
+                              "allowtoken" : 1,
+                              "description" : "Delete sdn zone object configuration.",
+                              "method" : "DELETE",
+                              "name" : "delete",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "zone" : {
+                                       "description" : "The SDN zone object identifier.",
+                                       "format" : "pve-sdn-zone-id",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/sdn/zones",
+                                    [
+                                       "SDN.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           },
+                           "GET" : {
+                              "allowtoken" : 1,
+                              "description" : "Read sdn zone configuration.",
+                              "method" : "GET",
+                              "name" : "read",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "pending" : {
+                                       "description" : "Display pending config.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "running" : {
+                                       "description" : "Display running config.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "zone" : {
+                                       "description" : "The SDN zone object identifier.",
+                                       "format" : "pve-sdn-zone-id",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/sdn/zones/{zone}",
+                                    [
+                                       "SDN.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "returns" : {
+                                 "type" : "object"
+                              }
+                           },
+                           "PUT" : {
+                              "allowtoken" : 1,
+                              "description" : "Update sdn zone object configuration.",
+                              "method" : "PUT",
+                              "name" : "update",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "advertise-subnets" : {
+                                       "description" : "Advertise evpn subnets if you have silent hosts",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "bridge" : {
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "bridge-disable-mac-learning" : {
+                                       "description" : "Disable auto mac learning.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "controller" : {
+                                       "description" : "Frr router name",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "delete" : {
+                                       "description" : "A list of settings you want to delete.",
+                                       "format" : "pve-configid-list",
+                                       "maxLength" : 4096,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "digest" : {
+                                       "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                       "maxLength" : 40,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "disable-arp-nd-suppression" : {
+                                       "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "dns" : {
+                                       "description" : "dns api server",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "dnszone" : {
+                                       "description" : "dns domain zone  ex: mydomain.com",
+                                       "format" : "dns-name",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "dp-id" : {
+                                       "description" : "Faucet dataplane id",
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer>"
+                                    },
+                                    "exitnodes" : {
+                                       "description" : "List of cluster node names.",
+                                       "format" : "pve-node-list",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "exitnodes-local-routing" : {
+                                       "description" : "Allow exitnodes to connect to evpn guests",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "exitnodes-primary" : {
+                                       "description" : "Force traffic to this exitnode first.",
+                                       "format" : "pve-node",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "ipam" : {
+                                       "description" : "use a specific ipam",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "mac" : {
+                                       "description" : "Anycast logical router mac address",
+                                       "format" : "mac-addr",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "mtu" : {
+                                       "description" : "MTU",
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer>"
+                                    },
+                                    "nodes" : {
+                                       "description" : "List of cluster node names.",
+                                       "format" : "pve-node-list",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "peers" : {
+                                       "description" : "peers address list.",
+                                       "format" : "ip-list",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "reversedns" : {
+                                       "description" : "reverse dns api server",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "rt-import" : {
+                                       "description" : "Route-Target import",
+                                       "format" : "pve-sdn-bgp-rt-list",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "tag" : {
+                                       "description" : "Service-VLAN Tag",
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (0 - N)"
+                                    },
+                                    "vlan-protocol" : {
+                                       "default" : "802.1q",
+                                       "enum" : [
+                                          "802.1q",
+                                          "802.1ad"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "vrf-vxlan" : {
+                                       "description" : "l3vni.",
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer>"
+                                    },
+                                    "zone" : {
+                                       "description" : "The SDN zone object identifier.",
+                                       "format" : "pve-sdn-zone-id",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 },
+                                 "type" : "object"
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/sdn/zones",
+                                    [
+                                       "SDN.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/cluster/sdn/zones/{zone}",
+                        "text" : "{zone}"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "allowtoken" : 1,
+                        "description" : "SDN zones index.",
+                        "method" : "GET",
+                        "name" : "index",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "pending" : {
+                                 "description" : "Display pending config.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "running" : {
+                                 "description" : "Display running config.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "type" : {
+                                 "description" : "Only list SDN zones of specific type",
+                                 "enum" : [
+                                    "evpn",
+                                    "faucet",
+                                    "qinq",
+                                    "simple",
+                                    "vlan",
+                                    "vxlan"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>'",
+                           "user" : "all"
+                        },
+                        "returns" : {
+                           "items" : {
+                              "properties" : {
+                                 "dns" : {
+                                    "optional" : 1,
+                                    "type" : "string"
+                                 },
+                                 "dnszone" : {
+                                    "optional" : 1,
+                                    "type" : "string"
+                                 },
+                                 "ipam" : {
+                                    "optional" : 1,
+                                    "type" : "string"
+                                 },
+                                 "mtu" : {
+                                    "optional" : 1,
+                                    "type" : "integer"
+                                 },
+                                 "nodes" : {
+                                    "optional" : 1,
+                                    "type" : "string"
+                                 },
+                                 "pending" : {
+                                    "optional" : 1
+                                 },
+                                 "reversedns" : {
+                                    "optional" : 1,
+                                    "type" : "string"
+                                 },
+                                 "state" : {
+                                    "optional" : 1,
+                                    "type" : "string"
+                                 },
+                                 "type" : {
+                                    "type" : "string"
+                                 },
+                                 "zone" : {
+                                    "type" : "string"
+                                 }
+                              },
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{zone}",
+                                 "rel" : "child"
+                              }
+                           ],
+                           "type" : "array"
+                        }
+                     },
+                     "POST" : {
+                        "allowtoken" : 1,
+                        "description" : "Create a new sdn zone object.",
+                        "method" : "POST",
+                        "name" : "create",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "advertise-subnets" : {
+                                 "description" : "Advertise evpn subnets if you have silent hosts",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "bridge" : {
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "bridge-disable-mac-learning" : {
+                                 "description" : "Disable auto mac learning.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "controller" : {
+                                 "description" : "Frr router name",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "disable-arp-nd-suppression" : {
+                                 "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "dns" : {
+                                 "description" : "dns api server",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "dnszone" : {
+                                 "description" : "dns domain zone  ex: mydomain.com",
+                                 "format" : "dns-name",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "dp-id" : {
+                                 "description" : "Faucet dataplane id",
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer>"
+                              },
+                              "exitnodes" : {
+                                 "description" : "List of cluster node names.",
+                                 "format" : "pve-node-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "exitnodes-local-routing" : {
+                                 "description" : "Allow exitnodes to connect to evpn guests",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "exitnodes-primary" : {
+                                 "description" : "Force traffic to this exitnode first.",
+                                 "format" : "pve-node",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "ipam" : {
+                                 "description" : "use a specific ipam",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "mac" : {
+                                 "description" : "Anycast logical router mac address",
+                                 "format" : "mac-addr",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "mtu" : {
+                                 "description" : "MTU",
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer>"
+                              },
+                              "nodes" : {
+                                 "description" : "List of cluster node names.",
+                                 "format" : "pve-node-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "peers" : {
+                                 "description" : "peers address list.",
+                                 "format" : "ip-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "reversedns" : {
+                                 "description" : "reverse dns api server",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "rt-import" : {
+                                 "description" : "Route-Target import",
+                                 "format" : "pve-sdn-bgp-rt-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "tag" : {
+                                 "description" : "Service-VLAN Tag",
+                                 "minimum" : 0,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (0 - N)"
+                              },
+                              "type" : {
+                                 "description" : "Plugin type.",
+                                 "enum" : [
+                                    "evpn",
+                                    "faucet",
+                                    "qinq",
+                                    "simple",
+                                    "vlan",
+                                    "vxlan"
+                                 ],
+                                 "format" : "pve-configid",
+                                 "type" : "string"
+                              },
+                              "vlan-protocol" : {
+                                 "default" : "802.1q",
+                                 "enum" : [
+                                    "802.1q",
+                                    "802.1ad"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "vrf-vxlan" : {
+                                 "description" : "l3vni.",
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer>"
+                              },
+                              "zone" : {
+                                 "description" : "The SDN zone object identifier.",
+                                 "format" : "pve-sdn-zone-id",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           },
+                           "type" : "object"
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/sdn/zones",
+                              [
+                                 "SDN.Allocate"
+                              ]
+                           ]
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "type" : "null"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/cluster/sdn/zones",
+                  "text" : "zones"
+               },
+               {
+                  "children" : [
+                     {
+                        "info" : {
+                           "DELETE" : {
+                              "allowtoken" : 1,
+                              "description" : "Delete sdn controller object configuration.",
+                              "method" : "DELETE",
+                              "name" : "delete",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "controller" : {
+                                       "description" : "The SDN controller object identifier.",
+                                       "format" : "pve-sdn-controller-id",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/sdn/controllers",
+                                    [
+                                       "SDN.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           },
+                           "GET" : {
+                              "allowtoken" : 1,
+                              "description" : "Read sdn controller configuration.",
+                              "method" : "GET",
+                              "name" : "read",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "controller" : {
+                                       "description" : "The SDN controller object identifier.",
+                                       "format" : "pve-sdn-controller-id",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "pending" : {
+                                       "description" : "Display pending config.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "running" : {
+                                       "description" : "Display running config.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/sdn/controllers/{controller}",
+                                    [
+                                       "SDN.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "returns" : {
+                                 "type" : "object"
+                              }
+                           },
+                           "PUT" : {
+                              "allowtoken" : 1,
+                              "description" : "Update sdn controller object configuration.",
+                              "method" : "PUT",
+                              "name" : "update",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "asn" : {
+                                       "description" : "autonomous system number",
+                                       "maximum" : 4294967296,
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (0 - 4294967296)"
+                                    },
+                                    "bgp-multipath-as-path-relax" : {
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "controller" : {
+                                       "description" : "The SDN controller object identifier.",
+                                       "format" : "pve-sdn-controller-id",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "delete" : {
+                                       "description" : "A list of settings you want to delete.",
+                                       "format" : "pve-configid-list",
+                                       "maxLength" : 4096,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "digest" : {
+                                       "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                       "maxLength" : 40,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "ebgp" : {
+                                       "description" : "Enable ebgp. (remote-as external)",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "ebgp-multihop" : {
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer>"
+                                    },
+                                    "loopback" : {
+                                       "description" : "source loopback interface.",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "peers" : {
+                                       "description" : "peers address list.",
+                                       "format" : "ip-list",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 },
+                                 "type" : "object"
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/sdn/controllers",
+                                    [
+                                       "SDN.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/cluster/sdn/controllers/{controller}",
+                        "text" : "{controller}"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "allowtoken" : 1,
+                        "description" : "SDN controllers index.",
+                        "method" : "GET",
+                        "name" : "index",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "pending" : {
+                                 "description" : "Display pending config.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "running" : {
+                                 "description" : "Display running config.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "type" : {
+                                 "description" : "Only list sdn controllers of specific type",
+                                 "enum" : [
+                                    "bgp",
+                                    "evpn",
+                                    "faucet"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/controllers/<controller>'",
+                           "user" : "all"
+                        },
+                        "returns" : {
+                           "items" : {
+                              "properties" : {
+                                 "controller" : {
+                                    "type" : "string"
+                                 },
+                                 "pending" : {
+                                    "optional" : 1
+                                 },
+                                 "state" : {
+                                    "optional" : 1,
+                                    "type" : "string"
+                                 },
+                                 "type" : {
+                                    "type" : "string"
+                                 }
+                              },
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{controller}",
+                                 "rel" : "child"
+                              }
+                           ],
+                           "type" : "array"
+                        }
+                     },
+                     "POST" : {
+                        "allowtoken" : 1,
+                        "description" : "Create a new sdn controller object.",
+                        "method" : "POST",
+                        "name" : "create",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "asn" : {
+                                 "description" : "autonomous system number",
+                                 "maximum" : 4294967296,
+                                 "minimum" : 0,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (0 - 4294967296)"
+                              },
+                              "bgp-multipath-as-path-relax" : {
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "controller" : {
+                                 "description" : "The SDN controller object identifier.",
+                                 "format" : "pve-sdn-controller-id",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "ebgp" : {
+                                 "description" : "Enable ebgp. (remote-as external)",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "ebgp-multihop" : {
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer>"
+                              },
+                              "loopback" : {
+                                 "description" : "source loopback interface.",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "node" : {
+                                 "description" : "The cluster node name.",
+                                 "format" : "pve-node",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "peers" : {
+                                 "description" : "peers address list.",
+                                 "format" : "ip-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "type" : {
+                                 "description" : "Plugin type.",
+                                 "enum" : [
+                                    "bgp",
+                                    "evpn",
+                                    "faucet"
+                                 ],
+                                 "format" : "pve-configid",
+                                 "type" : "string"
+                              }
+                           },
+                           "type" : "object"
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/sdn/controllers",
+                              [
+                                 "SDN.Allocate"
+                              ]
+                           ]
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "type" : "null"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/cluster/sdn/controllers",
+                  "text" : "controllers"
+               },
+               {
+                  "children" : [
+                     {
+                        "info" : {
+                           "DELETE" : {
+                              "allowtoken" : 1,
+                              "description" : "Delete sdn ipam object configuration.",
+                              "method" : "DELETE",
+                              "name" : "delete",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "ipam" : {
+                                       "description" : "The SDN ipam object identifier.",
+                                       "format" : "pve-sdn-ipam-id",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/sdn/ipams",
+                                    [
+                                       "SDN.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           },
+                           "GET" : {
+                              "allowtoken" : 1,
+                              "description" : "Read sdn ipam configuration.",
+                              "method" : "GET",
+                              "name" : "read",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "ipam" : {
+                                       "description" : "The SDN ipam object identifier.",
+                                       "format" : "pve-sdn-ipam-id",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/sdn/ipams/{ipam}",
+                                    [
+                                       "SDN.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "returns" : {
+                                 "type" : "object"
+                              }
+                           },
+                           "PUT" : {
+                              "allowtoken" : 1,
+                              "description" : "Update sdn ipam object configuration.",
+                              "method" : "PUT",
+                              "name" : "update",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "delete" : {
+                                       "description" : "A list of settings you want to delete.",
+                                       "format" : "pve-configid-list",
+                                       "maxLength" : 4096,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "digest" : {
+                                       "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                       "maxLength" : 40,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "ipam" : {
+                                       "description" : "The SDN ipam object identifier.",
+                                       "format" : "pve-sdn-ipam-id",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "section" : {
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer>"
+                                    },
+                                    "token" : {
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "url" : {
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 },
+                                 "type" : "object"
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/sdn/ipams",
+                                    [
+                                       "SDN.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/cluster/sdn/ipams/{ipam}",
+                        "text" : "{ipam}"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "allowtoken" : 1,
+                        "description" : "SDN ipams index.",
+                        "method" : "GET",
+                        "name" : "index",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "type" : {
+                                 "description" : "Only list sdn ipams of specific type",
+                                 "enum" : [
+                                    "netbox",
+                                    "phpipam",
+                                    "pve"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/ipams/<ipam>'",
+                           "user" : "all"
+                        },
+                        "returns" : {
+                           "items" : {
+                              "properties" : {
+                                 "ipam" : {
+                                    "type" : "string"
+                                 },
+                                 "type" : {
+                                    "type" : "string"
+                                 }
+                              },
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{ipam}",
+                                 "rel" : "child"
+                              }
+                           ],
+                           "type" : "array"
+                        }
+                     },
+                     "POST" : {
+                        "allowtoken" : 1,
+                        "description" : "Create a new sdn ipam object.",
+                        "method" : "POST",
+                        "name" : "create",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "ipam" : {
+                                 "description" : "The SDN ipam object identifier.",
+                                 "format" : "pve-sdn-ipam-id",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "section" : {
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer>"
+                              },
+                              "token" : {
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "type" : {
+                                 "description" : "Plugin type.",
+                                 "enum" : [
+                                    "netbox",
+                                    "phpipam",
+                                    "pve"
+                                 ],
+                                 "format" : "pve-configid",
+                                 "type" : "string"
+                              },
+                              "url" : {
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           },
+                           "type" : "object"
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/sdn/ipams",
+                              [
+                                 "SDN.Allocate"
+                              ]
+                           ]
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "type" : "null"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/cluster/sdn/ipams",
+                  "text" : "ipams"
+               },
+               {
+                  "children" : [
+                     {
+                        "info" : {
+                           "DELETE" : {
+                              "allowtoken" : 1,
+                              "description" : "Delete sdn dns object configuration.",
+                              "method" : "DELETE",
+                              "name" : "delete",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "dns" : {
+                                       "description" : "The SDN dns object identifier.",
+                                       "format" : "pve-sdn-dns-id",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/sdn/dns",
+                                    [
+                                       "SDN.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           },
+                           "GET" : {
+                              "allowtoken" : 1,
+                              "description" : "Read sdn dns configuration.",
+                              "method" : "GET",
+                              "name" : "read",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "dns" : {
+                                       "description" : "The SDN dns object identifier.",
+                                       "format" : "pve-sdn-dns-id",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/sdn/dns/{dns}",
+                                    [
+                                       "SDN.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "returns" : {
+                                 "type" : "object"
+                              }
+                           },
+                           "PUT" : {
+                              "allowtoken" : 1,
+                              "description" : "Update sdn dns object configuration.",
+                              "method" : "PUT",
+                              "name" : "update",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "delete" : {
+                                       "description" : "A list of settings you want to delete.",
+                                       "format" : "pve-configid-list",
+                                       "maxLength" : 4096,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "digest" : {
+                                       "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                       "maxLength" : 40,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "dns" : {
+                                       "description" : "The SDN dns object identifier.",
+                                       "format" : "pve-sdn-dns-id",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "key" : {
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "reversemaskv6" : {
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer>"
+                                    },
+                                    "ttl" : {
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer>"
+                                    },
+                                    "url" : {
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 },
+                                 "type" : "object"
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/sdn/dns",
+                                    [
+                                       "SDN.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/cluster/sdn/dns/{dns}",
+                        "text" : "{dns}"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "allowtoken" : 1,
+                        "description" : "SDN dns index.",
+                        "method" : "GET",
+                        "name" : "index",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "type" : {
+                                 "description" : "Only list sdn dns of specific type",
+                                 "enum" : [
+                                    "powerdns"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/dns/<dns>'",
+                           "user" : "all"
+                        },
+                        "returns" : {
+                           "items" : {
+                              "properties" : {
+                                 "dns" : {
+                                    "type" : "string"
+                                 },
+                                 "type" : {
+                                    "type" : "string"
+                                 }
+                              },
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{dns}",
+                                 "rel" : "child"
+                              }
+                           ],
+                           "type" : "array"
+                        }
+                     },
+                     "POST" : {
+                        "allowtoken" : 1,
+                        "description" : "Create a new sdn dns object.",
+                        "method" : "POST",
+                        "name" : "create",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "dns" : {
+                                 "description" : "The SDN dns object identifier.",
+                                 "format" : "pve-sdn-dns-id",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "key" : {
+                                 "optional" : 0,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "reversemaskv6" : {
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer>"
+                              },
+                              "reversev6mask" : {
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer>"
+                              },
+                              "ttl" : {
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer>"
+                              },
+                              "type" : {
+                                 "description" : "Plugin type.",
+                                 "enum" : [
+                                    "powerdns"
+                                 ],
+                                 "format" : "pve-configid",
+                                 "type" : "string"
+                              },
+                              "url" : {
+                                 "optional" : 0,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           },
+                           "type" : "object"
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/sdn/dns",
+                              [
+                                 "SDN.Allocate"
+                              ]
+                           ]
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "type" : "null"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/cluster/sdn/dns",
+                  "text" : "dns"
+               }
+            ],
+            "info" : {
+               "GET" : {
+                  "allowtoken" : 1,
+                  "description" : "Directory index.",
+                  "method" : "GET",
+                  "name" : "index",
+                  "parameters" : {
+                     "additionalProperties" : 0
+                  },
+                  "permissions" : {
+                     "check" : [
+                        "perm",
+                        "/",
+                        [
+                           "SDN.Audit"
+                        ]
+                     ]
+                  },
+                  "returns" : {
+                     "items" : {
+                        "properties" : {
+                           "id" : {
+                              "type" : "string"
+                           }
+                        },
+                        "type" : "object"
+                     },
+                     "links" : [
+                        {
+                           "href" : "{id}",
+                           "rel" : "child"
+                        }
+                     ],
+                     "type" : "array"
+                  }
+               },
+               "PUT" : {
+                  "allowtoken" : 1,
+                  "description" : "Apply sdn controller changes && reload.",
+                  "method" : "PUT",
+                  "name" : "reload",
+                  "parameters" : {
+                     "additionalProperties" : 0
+                  },
+                  "permissions" : {
+                     "check" : [
+                        "perm",
+                        "/sdn",
+                        [
+                           "SDN.Allocate"
+                        ]
+                     ]
+                  },
+                  "protected" : 1,
+                  "returns" : {
+                     "type" : "string"
+                  }
+               }
+            },
+            "leaf" : 0,
+            "path" : "/cluster/sdn",
+            "text" : "sdn"
+         },
+         {
+            "info" : {
+               "GET" : {
+                  "allowtoken" : 1,
+                  "description" : "Read cluster log",
+                  "method" : "GET",
+                  "name" : "log",
+                  "parameters" : {
+                     "additionalProperties" : 0,
+                     "properties" : {
+                        "max" : {
+                           "description" : "Maximum number of entries.",
+                           "minimum" : 1,
+                           "optional" : 1,
+                           "type" : "integer",
+                           "typetext" : "<integer> (1 - N)"
+                        }
+                     }
+                  },
+                  "permissions" : {
+                     "user" : "all"
+                  },
+                  "returns" : {
+                     "items" : {
+                        "properties" : {},
+                        "type" : "object"
+                     },
+                     "type" : "array"
+                  }
+               }
+            },
+            "leaf" : 1,
+            "path" : "/cluster/log",
+            "text" : "log"
+         },
+         {
+            "info" : {
+               "GET" : {
+                  "allowtoken" : 1,
+                  "description" : "Resources index (cluster wide).",
+                  "method" : "GET",
+                  "name" : "resources",
+                  "parameters" : {
+                     "additionalProperties" : 0,
+                     "properties" : {
+                        "type" : {
+                           "enum" : [
+                              "vm",
+                              "storage",
+                              "node",
+                              "sdn"
+                           ],
+                           "optional" : 1,
+                           "type" : "string"
+                        }
+                     }
+                  },
+                  "permissions" : {
+                     "user" : "all"
+                  },
+                  "returns" : {
+                     "items" : {
+                        "properties" : {
+                           "content" : {
+                              "description" : "Allowed storage content types (when type == storage).",
+                              "format" : "pve-storage-content-list",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "cpu" : {
+                              "description" : "CPU utilization (when type in node,qemu,lxc).",
+                              "optional" : 1,
+                              "renderer" : "fraction_as_percentage",
+                              "type" : "number"
+                           },
+                           "disk" : {
+                              "description" : "Used disk space in bytes (when type in storage), used root image spave for VMs (type in qemu,lxc).",
+                              "optional" : 1,
+                              "renderer" : "bytes",
+                              "type" : "string"
+                           },
+                           "hastate" : {
+                              "description" : "HA service status (for HA managed VMs).",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "id" : {
+                              "type" : "string"
+                           },
+                           "level" : {
+                              "description" : "Support level (when type == node).",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "maxcpu" : {
+                              "description" : "Number of available CPUs (when type in node,qemu,lxc).",
+                              "optional" : 1,
+                              "type" : "number"
+                           },
+                           "maxdisk" : {
+                              "description" : "Storage size in bytes (when type in storage), root image size for VMs (type in qemu,lxc).",
+                              "optional" : 1,
+                              "renderer" : "bytes",
+                              "type" : "integer"
+                           },
+                           "maxmem" : {
+                              "description" : "Number of available memory in bytes (when type in node,qemu,lxc).",
+                              "optional" : 1,
+                              "renderer" : "bytes",
+                              "type" : "integer"
+                           },
+                           "mem" : {
+                              "description" : "Used memory in bytes (when type in node,qemu,lxc).",
+                              "optional" : 1,
+                              "renderer" : "bytes",
+                              "type" : "string"
+                           },
+                           "name" : {
+                              "description" : "Name of the resource.",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "node" : {
+                              "description" : "The cluster node name (when type in node,storage,qemu,lxc).",
+                              "format" : "pve-node",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "plugintype" : {
+                              "description" : "More specific type, if available.",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "pool" : {
+                              "description" : "The pool name (when type in pool,qemu,lxc).",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "status" : {
+                              "description" : "Resource type dependent status.",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "storage" : {
+                              "description" : "The storage identifier (when type == storage).",
+                              "format" : "pve-storage-id",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "type" : {
+                              "description" : "Resource type.",
+                              "enum" : [
+                                 "node",
+                                 "storage",
+                                 "pool",
+                                 "qemu",
+                                 "lxc",
+                                 "openvz",
+                                 "sdn"
+                              ],
+                              "type" : "string"
+                           },
+                           "uptime" : {
+                              "description" : "Node uptime in seconds (when type in node,qemu,lxc).",
+                              "optional" : 1,
+                              "renderer" : "duration",
+                              "type" : "integer"
+                           }
+                        },
+                        "type" : "object"
+                     },
+                     "type" : "array"
+                  }
+               }
+            },
+            "leaf" : 1,
+            "path" : "/cluster/resources",
+            "text" : "resources"
+         },
+         {
+            "info" : {
+               "GET" : {
+                  "allowtoken" : 1,
+                  "description" : "List recent tasks (cluster wide).",
+                  "method" : "GET",
+                  "name" : "tasks",
+                  "parameters" : {
+                     "additionalProperties" : 0
+                  },
+                  "permissions" : {
+                     "user" : "all"
+                  },
+                  "returns" : {
+                     "items" : {
+                        "properties" : {
+                           "upid" : {
+                              "type" : "string"
+                           }
+                        },
+                        "type" : "object"
+                     },
+                     "type" : "array"
+                  }
+               }
+            },
+            "leaf" : 1,
+            "path" : "/cluster/tasks",
+            "text" : "tasks"
+         },
+         {
+            "info" : {
+               "GET" : {
+                  "allowtoken" : 1,
+                  "description" : "Get datacenter options.",
+                  "method" : "GET",
+                  "name" : "get_options",
+                  "parameters" : {
+                     "additionalProperties" : 0
+                  },
+                  "permissions" : {
+                     "check" : [
+                        "perm",
+                        "/",
+                        [
+                           "Sys.Audit"
+                        ]
+                     ]
+                  },
+                  "returns" : {
+                     "type" : "object"
+                  }
+               },
+               "PUT" : {
+                  "allowtoken" : 1,
+                  "description" : "Set datacenter options.",
+                  "method" : "PUT",
+                  "name" : "set_options",
+                  "parameters" : {
+                     "additionalProperties" : 0,
+                     "properties" : {
+                        "bwlimit" : {
+                           "description" : "Set bandwidth/io limits various operations.",
+                           "format" : {
+                              "clone" : {
+                                 "description" : "bandwidth limit in KiB/s for cloning disks",
+                                 "format_description" : "LIMIT",
+                                 "minimum" : "0",
+                                 "optional" : 1,
+                                 "type" : "number"
+                              },
+                              "default" : {
+                                 "description" : "default bandwidth limit in KiB/s",
+                                 "format_description" : "LIMIT",
+                                 "minimum" : "0",
+                                 "optional" : 1,
+                                 "type" : "number"
+                              },
+                              "migration" : {
+                                 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
+                                 "format_description" : "LIMIT",
+                                 "minimum" : "0",
+                                 "optional" : 1,
+                                 "type" : "number"
                               },
                               "move" : {
                                  "description" : "bandwidth limit in KiB/s for moving disks",
@@ -4685,6 +8656,13 @@ var pveapi = [
                            "type" : "string",
                            "typetext" : "<string>"
                         },
+                        "description" : {
+                           "description" : "Datacenter description. Shown in the web-interface datacenter notes panel. This is saved as comment inside the configuration file.",
+                           "maxLength" : 65536,
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
                         "email_from" : {
                            "description" : "Specify email address to send notification from (default is root@$hostname)",
                            "format" : "email-opt",
@@ -4708,19 +8686,20 @@ var pveapi = [
                            "format" : {
                               "shutdown_policy" : {
                                  "default" : "conditional",
-                                 "description" : "The policy for HA services on node shutdown. 'freeze' disables auto-recovery, 'failover' ensures recovery, 'conditional' recovers on poweroff and freezes on reboot. Running HA Services will always get stopped first on shutdown.",
+                                 "description" : "The policy for HA services on node shutdown. 'freeze' disables auto-recovery, 'failover' ensures recovery, 'conditional' recovers on poweroff and freezes on reboot. 'migrate' will migrate running services to other nodes, if possible. With 'freeze' or 'failover', HA Services will always get stopped first on shutdown.",
                                  "enum" : [
                                     "freeze",
                                     "failover",
-                                    "conditional"
+                                    "conditional",
+                                    "migrate"
                                  ],
                                  "type" : "string",
-                                 "verbose_description" : "Describes the policy for handling HA services on poweroff or reboot of a node. Freeze will always freeze services which are still located on the node on shutdown, those services won't be recovered by the HA manager. Failover will not mark the services as frozen and thus the services will get recovered to other nodes, if the shutdown node does not come up again quickly (< 1min). 'conditional' chooses automatically depending on the type of shutdown, i.e., on a reboot the service will be frozen but on a poweroff the service will stay as is, and thus get recovered after about 2 minutes."
+                                 "verbose_description" : "Describes the policy for handling HA services on poweroff or reboot of a node. Freeze will always freeze services which are still located on the node on shutdown, those services won't be recovered by the HA manager. Failover will not mark the services as frozen and thus the services will get recovered to other nodes, if the shutdown node does not come up again quickly (< 1min). 'conditional' chooses automatically depending on the type of shutdown, i.e., on a reboot the service will be frozen but on a poweroff the service will stay as is, and thus get recovered after about 2 minutes. Migrate will try to move all running services to another node when a reboot or shutdown was triggered. The poweroff process will only continue once no running services are located on the node anymore. If the node comes up again, the service will be moved back to the previously powered-off node, at least if no other migration, reloaction or recovery took place."
                               }
                            },
                            "optional" : 1,
                            "type" : "string",
-                           "typetext" : "shutdown_policy=<freeze|failover|conditional>"
+                           "typetext" : "shutdown_policy=<enum>"
                         },
                         "http_proxy" : {
                            "description" : "Specify external http proxy which is used for downloads (example: 'http://username:password@host:port/')",
@@ -4763,25 +8742,27 @@ var pveapi = [
                         "language" : {
                            "description" : "Default GUI language.",
                            "enum" : [
-                              "zh_CN",
-                              "zh_TW",
                               "ca",
+                              "da",
+                              "de",
                               "en",
+                              "es",
                               "eu",
+                              "fa",
                               "fr",
-                              "de",
+                              "he",
                               "it",
-                              "es",
                               "ja",
                               "nb",
                               "nn",
-                              "fa",
                               "pl",
                               "pt_BR",
                               "ru",
                               "sl",
                               "sv",
-                              "tr"
+                              "tr",
+                              "zh_CN",
+                              "zh_TW"
                            ],
                            "optional" : 1,
                            "type" : "string"
@@ -4831,6 +8812,30 @@ var pveapi = [
                            "type" : "boolean",
                            "typetext" : "<boolean>"
                         },
+                        "next-id" : {
+                           "description" : "Control the range for the free VMID auto-selection pool.",
+                           "format" : {
+                              "lower" : {
+                                 "default" : 100,
+                                 "description" : "Lower, inclusive boundary for free next-id API range.",
+                                 "max" : 999999999,
+                                 "min" : 100,
+                                 "optional" : 1,
+                                 "type" : "integer"
+                              },
+                              "upper" : {
+                                 "default" : 1000000,
+                                 "description" : "Upper, exclusive boundary for free next-id API range.",
+                                 "max" : 1000000000,
+                                 "min" : 100,
+                                 "optional" : 1,
+                                 "type" : "integer"
+                              }
+                           },
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "[lower=<integer>] [,upper=<integer>]"
+                        },
                         "u2f" : {
                            "description" : "u2f",
                            "format" : {
@@ -4850,6 +8855,32 @@ var pveapi = [
                            "optional" : 1,
                            "type" : "string",
                            "typetext" : "[appid=<APPID>] [,origin=<URL>]"
+                        },
+                        "webauthn" : {
+                           "description" : "webauthn configuration",
+                           "format" : {
+                              "id" : {
+                                 "description" : "Relying part ID. Must be the domain name without protocol, port or location. Changing this *will* break existing credentials.",
+                                 "format_description" : "DOMAINNAME",
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "origin" : {
+                                 "description" : "Site origin. Must be a `https://` URL (or `http://localhost`). Should contain the address users type in their browsers to access the web interface. Changing this *may* break existing credentials.",
+                                 "format_description" : "URL",
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "rp" : {
+                                 "description" : "Relying party name. Any text identifier. Changing this *may* break existing credentials.",
+                                 "format_description" : "RELYING_PARTY",
+                                 "optional" : 1,
+                                 "type" : "string"
+                              }
+                           },
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "[id=<DOMAINNAME>] [,origin=<URL>] [,rp=<RELYING_PARTY>]"
                         }
                      }
                   },
@@ -4875,7 +8906,8 @@ var pveapi = [
          {
             "info" : {
                "GET" : {
-                  "description" : "Get cluster status informations.",
+                  "allowtoken" : 1,
+                  "description" : "Get cluster status information.",
                   "method" : "GET",
                   "name" : "get_status",
                   "parameters" : {
@@ -4894,8 +8926,59 @@ var pveapi = [
                   "returns" : {
                      "items" : {
                         "properties" : {
+                           "id" : {
+                              "type" : "string"
+                           },
+                           "ip" : {
+                              "description" : "[node] IP of the resolved nodename.",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "level" : {
+                              "description" : "[node] Proxmox VE Subscription level, indicates if eligible for enterprise support as well as access to the stable Proxmox VE Enterprise Repository.",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "local" : {
+                              "description" : "[node] Indicates if this is the responding node.",
+                              "optional" : 1,
+                              "type" : "boolean"
+                           },
+                           "name" : {
+                              "type" : "string"
+                           },
+                           "nodeid" : {
+                              "description" : "[node] ID of the node from the corosync configuration.",
+                              "optional" : 1,
+                              "type" : "integer"
+                           },
+                           "nodes" : {
+                              "description" : "[cluster] Nodes count, including offline nodes.",
+                              "optional" : 1,
+                              "type" : "integer"
+                           },
+                           "online" : {
+                              "description" : "[node] Indicates if the node is online or offline.",
+                              "optional" : 1,
+                              "type" : "boolean"
+                           },
+                           "quorate" : {
+                              "description" : "[cluster] Indicates if there is a majority of nodes online to make decisions",
+                              "optional" : 1,
+                              "type" : "boolean"
+                           },
                            "type" : {
+                              "description" : "Indicates the type, either cluster or node. The type defines the object properties e.g. quorate available for type cluster.",
+                              "enum" : [
+                                 "cluster",
+                                 "node"
+                              ],
                               "type" : "string"
+                           },
+                           "version" : {
+                              "description" : "[cluster] Current version of the corosync configuration file.",
+                              "optional" : 1,
+                              "type" : "integer"
                            }
                         },
                         "type" : "object"
@@ -4911,7 +8994,8 @@ var pveapi = [
          {
             "info" : {
                "GET" : {
-                  "description" : "Get next free VMID. If you pass an VMID it will raise an error if the ID is already used.",
+                  "allowtoken" : 1,
+                  "description" : "Get next free VMID. Pass a VMID to assert that its free (at time of check).",
                   "method" : "GET",
                   "name" : "nextid",
                   "parameters" : {
@@ -4943,6 +9027,7 @@ var pveapi = [
       ],
       "info" : {
          "GET" : {
+            "allowtoken" : 1,
             "description" : "Cluster index.",
             "method" : "GET",
             "name" : "index",
@@ -4986,6 +9071,7 @@ var pveapi = [
                                        {
                                           "info" : {
                                              "DELETE" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Delete rule.",
                                                 "method" : "DELETE",
                                                 "name" : "delete_rule",
@@ -5037,6 +9123,7 @@ var pveapi = [
                                                 }
                                              },
                                              "GET" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Get single rule data.",
                                                 "method" : "GET",
                                                 "name" : "get_rule",
@@ -5096,6 +9183,10 @@ var pveapi = [
                                                          "optional" : 1,
                                                          "type" : "integer"
                                                       },
+                                                      "icmp-type" : {
+                                                         "optional" : 1,
+                                                         "type" : "string"
+                                                      },
                                                       "iface" : {
                                                          "optional" : 1,
                                                          "type" : "string"
@@ -5147,6 +9238,7 @@ var pveapi = [
                                                 }
                                              },
                                              "PUT" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Modify rule data.",
                                                 "method" : "PUT",
                                                 "name" : "update_rule",
@@ -5177,6 +9269,7 @@ var pveapi = [
                                                       "dest" : {
                                                          "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                                          "format" : "pve-fw-addr-spec",
+                                                         "maxLength" : 512,
                                                          "optional" : 1,
                                                          "type" : "string",
                                                          "typetext" : "<string>"
@@ -5202,6 +9295,13 @@ var pveapi = [
                                                          "type" : "integer",
                                                          "typetext" : "<integer> (0 - N)"
                                                       },
+                                                      "icmp-type" : {
+                                                         "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+                                                         "format" : "pve-fw-icmp-type-spec",
+                                                         "optional" : 1,
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
                                                       "iface" : {
                                                          "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
                                                          "format" : "pve-iface",
@@ -5264,6 +9364,7 @@ var pveapi = [
                                                       "source" : {
                                                          "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                                          "format" : "pve-fw-addr-spec",
+                                                         "maxLength" : 512,
                                                          "optional" : 1,
                                                          "type" : "string",
                                                          "typetext" : "<string>"
@@ -5317,6 +9418,7 @@ var pveapi = [
                                     ],
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "List rules.",
                                           "method" : "GET",
                                           "name" : "get_rules",
@@ -5367,6 +9469,7 @@ var pveapi = [
                                           }
                                        },
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Create new rule.",
                                           "method" : "POST",
                                           "name" : "create_rule",
@@ -5390,6 +9493,7 @@ var pveapi = [
                                                 "dest" : {
                                                    "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                                    "format" : "pve-fw-addr-spec",
+                                                   "maxLength" : 512,
                                                    "optional" : 1,
                                                    "type" : "string",
                                                    "typetext" : "<string>"
@@ -5415,6 +9519,13 @@ var pveapi = [
                                                    "type" : "integer",
                                                    "typetext" : "<integer> (0 - N)"
                                                 },
+                                                "icmp-type" : {
+                                                   "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+                                                   "format" : "pve-fw-icmp-type-spec",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
                                                 "iface" : {
                                                    "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
                                                    "format" : "pve-iface",
@@ -5470,6 +9581,7 @@ var pveapi = [
                                                 "source" : {
                                                    "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                                    "format" : "pve-fw-addr-spec",
+                                                   "maxLength" : 512,
                                                    "optional" : 1,
                                                    "type" : "string",
                                                    "typetext" : "<string>"
@@ -5525,6 +9637,7 @@ var pveapi = [
                                        {
                                           "info" : {
                                              "DELETE" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Remove IP or Network alias.",
                                                 "method" : "DELETE",
                                                 "name" : "remove_alias",
@@ -5575,6 +9688,7 @@ var pveapi = [
                                                 }
                                              },
                                              "GET" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Read alias.",
                                                 "method" : "GET",
                                                 "name" : "read_alias",
@@ -5617,6 +9731,7 @@ var pveapi = [
                                                 }
                                              },
                                              "PUT" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Update IP or Network alias.",
                                                 "method" : "PUT",
                                                 "name" : "update_alias",
@@ -5693,6 +9808,7 @@ var pveapi = [
                                     ],
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "List aliases",
                                           "method" : "GET",
                                           "name" : "get_aliases",
@@ -5755,6 +9871,7 @@ var pveapi = [
                                           }
                                        },
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Create IP or Network Alias.",
                                           "method" : "POST",
                                           "name" : "create_alias",
@@ -5820,6 +9937,7 @@ var pveapi = [
                                              {
                                                 "info" : {
                                                    "DELETE" : {
+                                                      "allowtoken" : 1,
                                                       "description" : "Remove IP or Network from IPSet.",
                                                       "method" : "DELETE",
                                                       "name" : "remove_ip",
@@ -5876,6 +9994,7 @@ var pveapi = [
                                                       }
                                                    },
                                                    "GET" : {
+                                                      "allowtoken" : 1,
                                                       "description" : "Read IP or Network settings from IPSet.",
                                                       "method" : "GET",
                                                       "name" : "read_ip",
@@ -5925,6 +10044,7 @@ var pveapi = [
                                                       }
                                                    },
                                                    "PUT" : {
+                                                      "allowtoken" : 1,
                                                       "description" : "Update IP or Network settings",
                                                       "method" : "PUT",
                                                       "name" : "update_ip",
@@ -5998,6 +10118,7 @@ var pveapi = [
                                           ],
                                           "info" : {
                                              "DELETE" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Delete IPSet",
                                                 "method" : "DELETE",
                                                 "name" : "delete_ipset",
@@ -6041,6 +10162,7 @@ var pveapi = [
                                                 }
                                              },
                                              "GET" : {
+                                                "allowtoken" : 1,
                                                 "description" : "List IPSet content",
                                                 "method" : "GET",
                                                 "name" : "get_ipset",
@@ -6111,6 +10233,7 @@ var pveapi = [
                                                 }
                                              },
                                              "POST" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Add IP or Network to IPSet.",
                                                 "method" : "POST",
                                                 "name" : "create_ip",
@@ -6177,6 +10300,7 @@ var pveapi = [
                                     ],
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "List IPSets",
                                           "method" : "GET",
                                           "name" : "ipset_index",
@@ -6240,6 +10364,7 @@ var pveapi = [
                                           }
                                        },
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Create new IPSet",
                                           "method" : "POST",
                                           "name" : "create_ipset",
@@ -6310,6 +10435,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Get VM firewall options.",
                                           "method" : "GET",
                                           "name" : "get_options",
@@ -6344,11 +10470,13 @@ var pveapi = [
                                           "returns" : {
                                              "properties" : {
                                                 "dhcp" : {
+                                                   "default" : 0,
                                                    "description" : "Enable DHCP.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
                                                 "enable" : {
+                                                   "default" : 0,
                                                    "description" : "Enable/disable firewall rules.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
@@ -6391,12 +10519,14 @@ var pveapi = [
                                                    "type" : "string"
                                                 },
                                                 "macfilter" : {
+                                                   "default" : 1,
                                                    "description" : "Enable/disable MAC address filter.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
                                                 "ndp" : {
-                                                   "description" : "Enable NDP.",
+                                                   "default" : 0,
+                                                   "description" : "Enable NDP (Neighbor Discovery Protocol).",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
@@ -6430,6 +10560,7 @@ var pveapi = [
                                           }
                                        },
                                        "PUT" : {
+                                          "allowtoken" : 1,
                                           "description" : "Set Firewall options.",
                                           "method" : "PUT",
                                           "name" : "set_options",
@@ -6444,6 +10575,7 @@ var pveapi = [
                                                    "typetext" : "<string>"
                                                 },
                                                 "dhcp" : {
+                                                   "default" : 0,
                                                    "description" : "Enable DHCP.",
                                                    "optional" : 1,
                                                    "type" : "boolean",
@@ -6457,6 +10589,7 @@ var pveapi = [
                                                    "typetext" : "<string>"
                                                 },
                                                 "enable" : {
+                                                   "default" : 0,
                                                    "description" : "Enable/disable firewall rules.",
                                                    "optional" : 1,
                                                    "type" : "boolean",
@@ -6501,13 +10634,15 @@ var pveapi = [
                                                    "type" : "string"
                                                 },
                                                 "macfilter" : {
+                                                   "default" : 1,
                                                    "description" : "Enable/disable MAC address filter.",
                                                    "optional" : 1,
                                                    "type" : "boolean",
                                                    "typetext" : "<boolean>"
                                                 },
                                                 "ndp" : {
-                                                   "description" : "Enable NDP.",
+                                                   "default" : 0,
+                                                   "description" : "Enable NDP (Neighbor Discovery Protocol).",
                                                    "optional" : 1,
                                                    "type" : "boolean",
                                                    "typetext" : "<boolean>"
@@ -6576,6 +10711,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Read firewall log",
                                           "method" : "GET",
                                           "name" : "log",
@@ -6645,6 +10781,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
                                           "method" : "GET",
                                           "name" : "refs",
@@ -6715,6 +10852,7 @@ var pveapi = [
                               ],
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Directory index.",
                                     "method" : "GET",
                                     "name" : "index",
@@ -6763,6 +10901,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute fsfreeze-freeze.",
                                           "method" : "POST",
                                           "name" : "fsfreeze-freeze",
@@ -6808,6 +10947,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute fsfreeze-status.",
                                           "method" : "POST",
                                           "name" : "fsfreeze-status",
@@ -6853,6 +10993,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute fsfreeze-thaw.",
                                           "method" : "POST",
                                           "name" : "fsfreeze-thaw",
@@ -6898,6 +11039,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute fstrim.",
                                           "method" : "POST",
                                           "name" : "fstrim",
@@ -6943,6 +11085,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute get-fsinfo.",
                                           "method" : "GET",
                                           "name" : "get-fsinfo",
@@ -6988,6 +11131,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute get-host-name.",
                                           "method" : "GET",
                                           "name" : "get-host-name",
@@ -7033,6 +11177,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute get-memory-block-info.",
                                           "method" : "GET",
                                           "name" : "get-memory-block-info",
@@ -7078,6 +11223,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute get-memory-blocks.",
                                           "method" : "GET",
                                           "name" : "get-memory-blocks",
@@ -7123,6 +11269,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute get-osinfo.",
                                           "method" : "GET",
                                           "name" : "get-osinfo",
@@ -7168,6 +11315,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute get-time.",
                                           "method" : "GET",
                                           "name" : "get-time",
@@ -7213,6 +11361,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute get-timezone.",
                                           "method" : "GET",
                                           "name" : "get-timezone",
@@ -7258,6 +11407,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute get-users.",
                                           "method" : "GET",
                                           "name" : "get-users",
@@ -7303,6 +11453,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute get-vcpus.",
                                           "method" : "GET",
                                           "name" : "get-vcpus",
@@ -7348,6 +11499,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute info.",
                                           "method" : "GET",
                                           "name" : "info",
@@ -7393,6 +11545,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute network-get-interfaces.",
                                           "method" : "GET",
                                           "name" : "network-get-interfaces",
@@ -7438,6 +11591,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute ping.",
                                           "method" : "POST",
                                           "name" : "ping",
@@ -7483,6 +11637,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute shutdown.",
                                           "method" : "POST",
                                           "name" : "shutdown",
@@ -7528,6 +11683,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute suspend-disk.",
                                           "method" : "POST",
                                           "name" : "suspend-disk",
@@ -7573,6 +11729,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute suspend-hybrid.",
                                           "method" : "POST",
                                           "name" : "suspend-hybrid",
@@ -7618,6 +11775,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute suspend-ram.",
                                           "method" : "POST",
                                           "name" : "suspend-ram",
@@ -7663,6 +11821,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Sets the password for the given user to the given password",
                                           "method" : "POST",
                                           "name" : "set-user-password",
@@ -7684,7 +11843,7 @@ var pveapi = [
                                                 },
                                                 "password" : {
                                                    "description" : "The new password.",
-                                                   "maxLength" : 64,
+                                                   "maxLength" : 1024,
                                                    "minLength" : 5,
                                                    "type" : "string",
                                                    "typetext" : "<string>"
@@ -7727,6 +11886,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Executes the given command in the vm via the guest-agent and returns an object with the pid.",
                                           "method" : "POST",
                                           "name" : "exec",
@@ -7736,6 +11896,14 @@ var pveapi = [
                                                 "command" : {
                                                    "description" : "The command as a list of program + arguments",
                                                    "format" : "string-alist",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "input-data" : {
+                                                   "description" : "Data to pass as 'input-data' to the guest. Usually treated as STDIN to 'command'.",
+                                                   "maxLength" : 65536,
+                                                   "optional" : 1,
                                                    "type" : "string",
                                                    "typetext" : "<string>"
                                                 },
@@ -7783,6 +11951,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Gets the status of the given pid started by the guest-agent",
                                           "method" : "GET",
                                           "name" : "exec-status",
@@ -7868,6 +12037,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Reads the given file via guest agent. Is limited to 16777216 bytes.",
                                           "method" : "GET",
                                           "name" : "file-read",
@@ -7929,6 +12099,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Writes the given file via guest agent.",
                                           "method" : "POST",
                                           "name" : "file-write",
@@ -7941,6 +12112,13 @@ var pveapi = [
                                                    "type" : "string",
                                                    "typetext" : "<string>"
                                                 },
+                                                "encode" : {
+                                                   "default" : 1,
+                                                   "description" : "If set, the content will be encoded as base64 (required by QEMU).Otherwise the content needs to be encoded beforehand - defaults to true.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
                                                 "file" : {
                                                    "description" : "The path to the file.",
                                                    "type" : "string",
@@ -7984,6 +12162,7 @@ var pveapi = [
                               ],
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Qemu Agent command index.",
                                     "method" : "GET",
                                     "name" : "index",
@@ -8025,6 +12204,7 @@ var pveapi = [
                                     }
                                  },
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Execute Qemu Guest Agent commands.",
                                     "method" : "POST",
                                     "name" : "agent",
@@ -8096,6 +12276,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read VM RRD statistics (returns PNG)",
                                     "method" : "GET",
                                     "name" : "rrd",
@@ -8170,6 +12351,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read VM RRD statistics",
                                     "method" : "GET",
                                     "name" : "rrddata",
@@ -8237,7 +12419,8 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
-                                    "description" : "Get current virtual machine configuration. This does not include pending configuration changes (see 'pending' API).",
+                                    "allowtoken" : 1,
+                                    "description" : "Get the virtual machine configuration with pending configuration changes applied. Set the 'current' parameter to get the current configuration instead.",
                                     "method" : "GET",
                                     "name" : "vm_config",
                                     "parameters" : {
@@ -8284,7 +12467,7 @@ var pveapi = [
                                     },
                                     "proxyto" : "node",
                                     "returns" : {
-                                       "description" : "The current VM configuration.",
+                                       "description" : "The VM configuration.",
                                        "properties" : {
                                           "acpi" : {
                                              "default" : 1,
@@ -8293,19 +12476,29 @@ var pveapi = [
                                              "type" : "boolean"
                                           },
                                           "agent" : {
-                                             "description" : "Enable/disable Qemu GuestAgent and its properties.",
+                                             "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
                                              "format" : {
                                                 "enabled" : {
                                                    "default" : 0,
                                                    "default_key" : 1,
-                                                   "description" : "Enable/disable Qemu GuestAgent.",
+                                                   "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
                                                    "type" : "boolean"
                                                 },
                                                 "fstrim_cloned_disks" : {
                                                    "default" : 0,
-                                                   "description" : "Run fstrim after cloning/moving a disk.",
+                                                   "description" : "Run fstrim after moving a disk or migrating the VM.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
+                                                },
+                                                "type" : {
+                                                   "default" : "virtio",
+                                                   "description" : "Select the agent type",
+                                                   "enum" : [
+                                                      "virtio",
+                                                      "isa"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
                                                 }
                                              },
                                              "optional" : 1,
@@ -8326,6 +12519,32 @@ var pveapi = [
                                              "type" : "string",
                                              "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
                                           },
+                                          "audio0" : {
+                                             "description" : "Configure a audio device, useful in combination with QXL/Spice.",
+                                             "format" : {
+                                                "device" : {
+                                                   "description" : "Configure an audio device.",
+                                                   "enum" : [
+                                                      "ich9-intel-hda",
+                                                      "intel-hda",
+                                                      "AC97"
+                                                   ],
+                                                   "type" : "string"
+                                                },
+                                                "driver" : {
+                                                   "default" : "spice",
+                                                   "description" : "Driver backend for the audio device.",
+                                                   "enum" : [
+                                                      "spice",
+                                                      "none"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
                                           "autostart" : {
                                              "default" : 0,
                                              "description" : "Automatic restart after crash (currently ignored).",
@@ -8349,14 +12568,13 @@ var pveapi = [
                                              "type" : "string"
                                           },
                                           "boot" : {
-                                             "default" : "cdn",
-                                             "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
+                                             "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
+                                             "format" : "pve-qm-boot",
                                              "optional" : 1,
-                                             "pattern" : "[acdn]{1,4}",
                                              "type" : "string"
                                           },
                                           "bootdisk" : {
-                                             "description" : "Enable booting from specified disk.",
+                                             "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
                                              "format" : "pve-qm-bootdisk",
                                              "optional" : 1,
                                              "pattern" : "(ide|sata|scsi|virtio)\\d+",
@@ -8384,7 +12602,8 @@ var pveapi = [
                                              "description" : "Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.",
                                              "enum" : [
                                                 "configdrive2",
-                                                "nocloud"
+                                                "nocloud",
+                                                "opennebula"
                                              ],
                                              "optional" : 1,
                                              "type" : "string"
@@ -8403,79 +12622,7 @@ var pveapi = [
                                           },
                                           "cpu" : {
                                              "description" : "Emulated CPU type.",
-                                             "format" : {
-                                                "cputype" : {
-                                                   "default" : "kvm64",
-                                                   "default_key" : 1,
-                                                   "description" : "Emulated CPU type.",
-                                                   "enum" : [
-                                                      "486",
-                                                      "athlon",
-                                                      "Broadwell",
-                                                      "Broadwell-IBRS",
-                                                      "Broadwell-noTSX",
-                                                      "Broadwell-noTSX-IBRS",
-                                                      "Conroe",
-                                                      "core2duo",
-                                                      "coreduo",
-                                                      "EPYC",
-                                                      "EPYC-IBPB",
-                                                      "Haswell",
-                                                      "Haswell-IBRS",
-                                                      "Haswell-noTSX",
-                                                      "Haswell-noTSX-IBRS",
-                                                      "host",
-                                                      "IvyBridge",
-                                                      "IvyBridge-IBRS",
-                                                      "kvm32",
-                                                      "kvm64",
-                                                      "max",
-                                                      "Nehalem",
-                                                      "Nehalem-IBRS",
-                                                      "Opteron_G1",
-                                                      "Opteron_G2",
-                                                      "Opteron_G3",
-                                                      "Opteron_G4",
-                                                      "Opteron_G5",
-                                                      "Penryn",
-                                                      "pentium",
-                                                      "pentium2",
-                                                      "pentium3",
-                                                      "phenom",
-                                                      "qemu32",
-                                                      "qemu64",
-                                                      "SandyBridge",
-                                                      "SandyBridge-IBRS",
-                                                      "Skylake-Client",
-                                                      "Skylake-Client-IBRS",
-                                                      "Skylake-Server",
-                                                      "Skylake-Server-IBRS",
-                                                      "Westmere",
-                                                      "Westmere-IBRS"
-                                                   ],
-                                                   "type" : "string"
-                                                },
-                                                "flags" : {
-                                                   "description" : "List of additional CPU flags separated by ';'. Use '+FLAG' to enable, '-FLAG' to disable a flag. Currently supported flags: 'pcid', 'spec-ctrl', 'ibpb', 'ssbd', 'virt-ssbd', 'amd-ssbd', 'amd-no-ssb', 'pdpe1gb'.",
-                                                   "format_description" : "+FLAG[;-FLAG...]",
-                                                   "optional" : 1,
-                                                   "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb))(;(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb)))*)",
-                                                   "type" : "string"
-                                                },
-                                                "hidden" : {
-                                                   "default" : 0,
-                                                   "description" : "Do not identify as a KVM virtual machine.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                },
-                                                "hv-vendor-id" : {
-                                                   "description" : "The Hyper-V vendor ID. Some drivers or programs inside Windows guests need a specific ID.",
-                                                   "format_description" : "vendor-id",
-                                                   "optional" : 1,
-                                                   "pattern" : "(?^:[a-zA-Z0-9]{1,12})",
-                                                   "type" : "string"
-                                                }
-                                             },
+                                             "format" : "pve-vm-cpu-conf",
                                              "optional" : 1,
                                              "type" : "string"
                                           },
@@ -8489,16 +12636,17 @@ var pveapi = [
                                              "verbose_description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit."
                                           },
                                           "cpuunits" : {
-                                             "default" : 1024,
-                                             "description" : "CPU weight for a VM.",
+                                             "default" : "cgroup v1: 1024, cgroup v2: 100",
+                                             "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
                                              "maximum" : 262144,
-                                             "minimum" : 2,
+                                             "minimum" : 1,
                                              "optional" : 1,
                                              "type" : "integer",
                                              "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs."
                                           },
                                           "description" : {
-                                             "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file.",
+                                             "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
+                                             "maxLength" : 8192,
                                              "optional" : 1,
                                              "type" : "string"
                                           },
@@ -8507,8 +12655,18 @@ var pveapi = [
                                              "type" : "string"
                                           },
                                           "efidisk0" : {
-                                             "description" : "Configure a Disk for storing EFI vars",
+                                             "description" : "Configure a Disk for storing EFI vars.",
                                              "format" : {
+                                                "efitype" : {
+                                                   "default" : "2m",
+                                                   "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified.",
+                                                   "enum" : [
+                                                      "2m",
+                                                      "4m"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
                                                 "file" : {
                                                    "default_key" : 1,
                                                    "description" : "The drive's backing volume.",
@@ -8530,6 +12688,12 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "pre-enrolled-keys" : {
+                                                   "default" : 0,
+                                                   "description" : "Use am EFI vars template with distribution-specific and Microsoft Standard keys enrolled, if used with 'efitype=4m'. Note that this will enable Secure Boot by default, though it can still be turned off from within the VM.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "size" : {
                                                    "description" : "Disk size. This is purely informational and has no effect.",
                                                    "format" : "disk-size",
@@ -8564,7 +12728,7 @@ var pveapi = [
                                           },
                                           "hotplug" : {
                                              "default" : "network,disk,usb",
-                                             "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Value '1' is an alias for the default 'network,disk,usb'.",
+                                             "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`.",
                                              "format" : "pve-hotplug-features",
                                              "optional" : 1,
                                              "type" : "string"
@@ -8586,7 +12750,8 @@ var pveapi = [
                                                    "description" : "AIO type to use.",
                                                    "enum" : [
                                                       "native",
-                                                      "threads"
+                                                      "threads",
+                                                      "io_uring"
                                                    ],
                                                    "optional" : 1,
                                                    "type" : "string"
@@ -8904,7 +13069,7 @@ var pveapi = [
                                              "type" : "string"
                                           },
                                           "ipconfig[n]" : {
-                                             "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit gateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using dhcp on IPv4.\n",
+                                             "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit\ngateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration. This requires\ncloud-init 19.4 or newer.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n",
                                              "format" : "pve-qm-ipconfig",
                                              "optional" : 1,
                                              "type" : "string"
@@ -8928,9 +13093,15 @@ var pveapi = [
                                              "optional" : 1,
                                              "type" : "string"
                                           },
+                                          "keephugepages" : {
+                                             "default" : 0,
+                                             "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
+                                             "optional" : 1,
+                                             "type" : "boolean"
+                                          },
                                           "keyboard" : {
                                              "default" : null,
-                                             "description" : "Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.cfg' configuration file.It should not be necessary to set it.",
+                                             "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
                                              "enum" : [
                                                 "de",
                                                 "de-ch",
@@ -8968,7 +13139,7 @@ var pveapi = [
                                              "type" : "boolean"
                                           },
                                           "localtime" : {
-                                             "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.",
+                                             "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
                                              "optional" : 1,
                                              "type" : "boolean"
                                           },
@@ -8992,7 +13163,7 @@ var pveapi = [
                                              "description" : "Specifies the Qemu machine type.",
                                              "maxLength" : 40,
                                              "optional" : 1,
-                                             "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?|virt(?:-\\d+\\.\\d+)?)",
+                                             "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
                                              "type" : "string"
                                           },
                                           "memory" : {
@@ -9033,6 +13204,7 @@ var pveapi = [
                                              "format" : {
                                                 "bridge" : {
                                                    "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2   Gateway\n 10.0.2.3   DNS Server\n 10.0.2.4   SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n",
+                                                   "format" : "pve-bridge-id",
                                                    "format_description" : "bridge",
                                                    "optional" : 1,
                                                    "type" : "string"
@@ -9053,6 +13225,10 @@ var pveapi = [
                                                    "alias" : "macaddr",
                                                    "keyAlias" : "model"
                                                 },
+                                                "e1000e" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
                                                 "firewall" : {
                                                    "description" : "Whether this interface should be protected by the firewall.",
                                                    "optional" : 1,
@@ -9087,22 +13263,30 @@ var pveapi = [
                                                    "default_key" : 1,
                                                    "description" : "Network Card Model. The 'virtio' model provides the best performance with very low CPU overhead. If your guest does not support this driver, it is usually best to use 'e1000'.",
                                                    "enum" : [
-                                                      "rtl8139",
-                                                      "ne2k_pci",
                                                       "e1000",
-                                                      "pcnet",
-                                                      "virtio",
-                                                      "ne2k_isa",
+                                                      "e1000-82540em",
+                                                      "e1000-82544gc",
+                                                      "e1000-82545em",
+                                                      "e1000e",
                                                       "i82551",
                                                       "i82557b",
                                                       "i82559er",
-                                                      "vmxnet3",
-                                                      "e1000-82540em",
-                                                      "e1000-82544gc",
-                                                      "e1000-82545em"
+                                                      "ne2k_isa",
+                                                      "ne2k_pci",
+                                                      "pcnet",
+                                                      "rtl8139",
+                                                      "virtio",
+                                                      "vmxnet3"
                                                    ],
                                                    "type" : "string"
                                                 },
+                                                "mtu" : {
+                                                   "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
+                                                   "maximum" : 65520,
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "ne2k_isa" : {
                                                    "alias" : "macaddr",
                                                    "keyAlias" : "model"
@@ -9217,20 +13401,21 @@ var pveapi = [
                                                 "win7",
                                                 "win8",
                                                 "win10",
+                                                "win11",
                                                 "l24",
                                                 "l26",
                                                 "solaris"
                                              ],
                                              "optional" : 1,
                                              "type" : "string",
-                                             "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6/3.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
+                                             "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 5.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
                                           },
                                           "parallel[n]" : {
                                              "description" : "Map host parallel devices (n is 0 to 2).",
                                              "optional" : 1,
                                              "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
                                              "type" : "string",
-                                             "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+                                             "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
                                           },
                                           "protection" : {
                                              "default" : 0,
@@ -9244,6 +13429,35 @@ var pveapi = [
                                              "optional" : 1,
                                              "type" : "boolean"
                                           },
+                                          "rng0" : {
+                                             "description" : "Configure a VirtIO-based Random Number Generator.",
+                                             "format" : {
+                                                "max_bytes" : {
+                                                   "default" : 1024,
+                                                   "description" : "Maximum bytes of entropy allowed to get injected into the guest every 'period' milliseconds. Prefer a lower value when using '/dev/random' as source. Use `0` to disable limiting (potentially dangerous!).",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "period" : {
+                                                   "default" : 1000,
+                                                   "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "source" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The file on the host to gather entropy from. In most cases '/dev/urandom' should be preferred over '/dev/random' to avoid entropy-starvation issues on the host. Using urandom does *not* decrease security in any meaningful way, as it's still seeded from real entropy, and the bytes provided will most likely be mixed with real entropy on the guest as well. '/dev/hwrng' can be used to pass through a hardware RNG from the host.",
+                                                   "enum" : [
+                                                      "/dev/urandom",
+                                                      "/dev/random",
+                                                      "/dev/hwrng"
+                                                   ],
+                                                   "type" : "string"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
                                           "sata[n]" : {
                                              "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
                                              "format" : {
@@ -9251,7 +13465,8 @@ var pveapi = [
                                                    "description" : "AIO type to use.",
                                                    "enum" : [
                                                       "native",
-                                                      "threads"
+                                                      "threads",
+                                                      "io_uring"
                                                    ],
                                                    "optional" : 1,
                                                    "type" : "string"
@@ -9561,13 +13776,14 @@ var pveapi = [
                                              "type" : "string"
                                           },
                                           "scsi[n]" : {
-                                             "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
+                                             "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).",
                                              "format" : {
                                                 "aio" : {
                                                    "description" : "AIO type to use.",
                                                    "enum" : [
                                                       "native",
-                                                      "threads"
+                                                      "threads",
+                                                      "io_uring"
                                                    ],
                                                    "optional" : 1,
                                                    "type" : "string"
@@ -9815,6 +14031,11 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "ro" : {
+                                                   "description" : "Whether the drive is read-only.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "scsiblock" : {
                                                    "default" : 0,
                                                    "description" : "whether to use scsi-block for full passthrough of host block device\n\nWARNING: can lead to I/O errors in combination with low memory or high memory fragmentation on host",
@@ -9917,7 +14138,7 @@ var pveapi = [
                                              "optional" : 1,
                                              "pattern" : "(/dev/.+|socket)",
                                              "type" : "string",
-                                             "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+                                             "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines -\nuse with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
                                           },
                                           "shares" : {
                                              "default" : 1000,
@@ -9930,7 +14151,7 @@ var pveapi = [
                                           "smbios1" : {
                                              "description" : "Specify SMBIOS type 1 fields.",
                                              "format" : "pve-qm-smbios1",
-                                             "maxLength" : 256,
+                                             "maxLength" : 512,
                                              "optional" : 1,
                                              "type" : "string"
                                           },
@@ -9948,6 +14169,30 @@ var pveapi = [
                                              "optional" : 1,
                                              "type" : "integer"
                                           },
+                                          "spice_enhancements" : {
+                                             "description" : "Configure additional enhancements for SPICE.",
+                                             "format" : {
+                                                "foldersharing" : {
+                                                   "default" : "0",
+                                                   "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "videostreaming" : {
+                                                   "default" : "off",
+                                                   "description" : "Enable video streaming. Uses compression for detected video streams.",
+                                                   "enum" : [
+                                                      "off",
+                                                      "all",
+                                                      "filter"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
                                           "sshkeys" : {
                                              "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
                                              "format" : "urlencoded",
@@ -9956,7 +14201,7 @@ var pveapi = [
                                           },
                                           "startdate" : {
                                              "default" : "now",
-                                             "description" : "Set the initial date of the real time clock. Valid format for date are: 'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
+                                             "description" : "Set the initial date of the real time clock. Valid format for date are:'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
                                              "optional" : 1,
                                              "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
                                              "type" : "string",
@@ -9974,7 +14219,13 @@ var pveapi = [
                                              "description" : "Enable/disable the USB tablet device.",
                                              "optional" : 1,
                                              "type" : "boolean",
-                                             "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (-vga=qxl)."
+                                             "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (`qm set <vmid> --vga qxl`)."
+                                          },
+                                          "tags" : {
+                                             "description" : "Tags of the VM. This is only meta information.",
+                                             "format" : "pve-tag-list",
+                                             "optional" : 1,
+                                             "type" : "string"
                                           },
                                           "tdf" : {
                                              "default" : 0,
@@ -9988,9 +14239,54 @@ var pveapi = [
                                              "optional" : 1,
                                              "type" : "boolean"
                                           },
+                                          "tpmstate0" : {
+                                             "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'.",
+                                             "format" : {
+                                                "file" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The drive's backing volume.",
+                                                   "format" : "pve-volume-id-or-qm-path",
+                                                   "format_description" : "volume",
+                                                   "type" : "string"
+                                                },
+                                                "size" : {
+                                                   "description" : "Disk size. This is purely informational and has no effect.",
+                                                   "format" : "disk-size",
+                                                   "format_description" : "DiskSize",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "version" : {
+                                                   "default" : "v2.0",
+                                                   "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
+                                                   "enum" : [
+                                                      "v1.2",
+                                                      "v2.0"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "volume" : {
+                                                   "alias" : "file"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
                                           "unused[n]" : {
                                              "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
-                                             "format" : "pve-volume-id",
+                                             "format" : {
+                                                "file" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The drive's backing volume.",
+                                                   "format" : "pve-volume-id",
+                                                   "format_description" : "volume",
+                                                   "type" : "string"
+                                                },
+                                                "volume" : {
+                                                   "alias" : "file"
+                                                }
+                                             },
                                              "optional" : 1,
                                              "type" : "string"
                                           },
@@ -9999,14 +14295,14 @@ var pveapi = [
                                              "format" : {
                                                 "host" : {
                                                    "default_key" : 1,
-                                                   "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
+                                                   "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
                                                    "format" : "pve-qm-usb-device",
                                                    "format_description" : "HOSTUSBDEVICE|spice",
                                                    "type" : "string"
                                                 },
                                                 "usb3" : {
                                                    "default" : 0,
-                                                   "description" : "Specifies whether if given host option is a USB3 device or port (this does currently not work reliably with spice redirection and is then ignored).",
+                                                   "description" : "Specifies whether if given host option is a USB3 device or port.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 }
@@ -10048,6 +14344,7 @@ var pveapi = [
                                                       "serial3",
                                                       "std",
                                                       "virtio",
+                                                      "virtio-gl",
                                                       "vmware"
                                                    ],
                                                    "optional" : 1,
@@ -10065,7 +14362,8 @@ var pveapi = [
                                                    "description" : "AIO type to use.",
                                                    "enum" : [
                                                       "native",
-                                                      "threads"
+                                                      "threads",
+                                                      "io_uring"
                                                    ],
                                                    "optional" : 1,
                                                    "type" : "string"
@@ -10307,6 +14605,11 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "ro" : {
+                                                   "description" : "Whether the drive is read-only.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "secs" : {
                                                    "description" : "Force the drive's physical geometry to have a specific sector count.",
                                                    "optional" : 1,
@@ -10374,7 +14677,7 @@ var pveapi = [
                                              "optional" : 1,
                                              "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
                                              "type" : "string",
-                                             "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done throug API/CLI create or update methods, but not when manually editing the config file."
+                                             "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done through API/CLI create or update methods, but not when manually editing the config file."
                                           },
                                           "vmstatestorage" : {
                                              "description" : "Default storage for VM state volumes/files.",
@@ -10394,6 +14697,7 @@ var pveapi = [
                                     }
                                  },
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Set virtual machine options (asynchrounous API).",
                                     "method" : "POST",
                                     "name" : "update_vm_async",
@@ -10408,24 +14712,34 @@ var pveapi = [
                                              "typetext" : "<boolean>"
                                           },
                                           "agent" : {
-                                             "description" : "Enable/disable Qemu GuestAgent and its properties.",
+                                             "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
                                              "format" : {
                                                 "enabled" : {
                                                    "default" : 0,
                                                    "default_key" : 1,
-                                                   "description" : "Enable/disable Qemu GuestAgent.",
+                                                   "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
                                                    "type" : "boolean"
                                                 },
                                                 "fstrim_cloned_disks" : {
                                                    "default" : 0,
-                                                   "description" : "Run fstrim after cloning/moving a disk.",
+                                                   "description" : "Run fstrim after moving a disk or migrating the VM.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
+                                                },
+                                                "type" : {
+                                                   "default" : "virtio",
+                                                   "description" : "Select the agent type",
+                                                   "enum" : [
+                                                      "virtio",
+                                                      "isa"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
                                                 }
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>]"
+                                             "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
                                           },
                                           "arch" : {
                                              "description" : "Virtual processor architecture. Defaults to the host.",
@@ -10443,6 +14757,33 @@ var pveapi = [
                                              "typetext" : "<string>",
                                              "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
                                           },
+                                          "audio0" : {
+                                             "description" : "Configure a audio device, useful in combination with QXL/Spice.",
+                                             "format" : {
+                                                "device" : {
+                                                   "description" : "Configure an audio device.",
+                                                   "enum" : [
+                                                      "ich9-intel-hda",
+                                                      "intel-hda",
+                                                      "AC97"
+                                                   ],
+                                                   "type" : "string"
+                                                },
+                                                "driver" : {
+                                                   "default" : "spice",
+                                                   "description" : "Driver backend for the audio device.",
+                                                   "enum" : [
+                                                      "spice",
+                                                      "none"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
+                                          },
                                           "autostart" : {
                                              "default" : 0,
                                              "description" : "Automatic restart after crash (currently ignored).",
@@ -10476,14 +14817,14 @@ var pveapi = [
                                              "type" : "string"
                                           },
                                           "boot" : {
-                                             "default" : "cdn",
-                                             "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
+                                             "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
+                                             "format" : "pve-qm-boot",
                                              "optional" : 1,
-                                             "pattern" : "[acdn]{1,4}",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
                                           },
                                           "bootdisk" : {
-                                             "description" : "Enable booting from specified disk.",
+                                             "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
                                              "format" : "pve-qm-bootdisk",
                                              "optional" : 1,
                                              "pattern" : "(ide|sata|scsi|virtio)\\d+",
@@ -10501,7 +14842,7 @@ var pveapi = [
                                              "format" : "pve-qm-cicustom",
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>]"
+                                             "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
                                           },
                                           "cipassword" : {
                                              "description" : "cloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.",
@@ -10513,7 +14854,8 @@ var pveapi = [
                                              "description" : "Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.",
                                              "enum" : [
                                                 "configdrive2",
-                                                "nocloud"
+                                                "nocloud",
+                                                "opennebula"
                                              ],
                                              "optional" : 1,
                                              "type" : "string"
@@ -10534,82 +14876,10 @@ var pveapi = [
                                           },
                                           "cpu" : {
                                              "description" : "Emulated CPU type.",
-                                             "format" : {
-                                                "cputype" : {
-                                                   "default" : "kvm64",
-                                                   "default_key" : 1,
-                                                   "description" : "Emulated CPU type.",
-                                                   "enum" : [
-                                                      "486",
-                                                      "athlon",
-                                                      "Broadwell",
-                                                      "Broadwell-IBRS",
-                                                      "Broadwell-noTSX",
-                                                      "Broadwell-noTSX-IBRS",
-                                                      "Conroe",
-                                                      "core2duo",
-                                                      "coreduo",
-                                                      "EPYC",
-                                                      "EPYC-IBPB",
-                                                      "Haswell",
-                                                      "Haswell-IBRS",
-                                                      "Haswell-noTSX",
-                                                      "Haswell-noTSX-IBRS",
-                                                      "host",
-                                                      "IvyBridge",
-                                                      "IvyBridge-IBRS",
-                                                      "kvm32",
-                                                      "kvm64",
-                                                      "max",
-                                                      "Nehalem",
-                                                      "Nehalem-IBRS",
-                                                      "Opteron_G1",
-                                                      "Opteron_G2",
-                                                      "Opteron_G3",
-                                                      "Opteron_G4",
-                                                      "Opteron_G5",
-                                                      "Penryn",
-                                                      "pentium",
-                                                      "pentium2",
-                                                      "pentium3",
-                                                      "phenom",
-                                                      "qemu32",
-                                                      "qemu64",
-                                                      "SandyBridge",
-                                                      "SandyBridge-IBRS",
-                                                      "Skylake-Client",
-                                                      "Skylake-Client-IBRS",
-                                                      "Skylake-Server",
-                                                      "Skylake-Server-IBRS",
-                                                      "Westmere",
-                                                      "Westmere-IBRS"
-                                                   ],
-                                                   "type" : "string"
-                                                },
-                                                "flags" : {
-                                                   "description" : "List of additional CPU flags separated by ';'. Use '+FLAG' to enable, '-FLAG' to disable a flag. Currently supported flags: 'pcid', 'spec-ctrl', 'ibpb', 'ssbd', 'virt-ssbd', 'amd-ssbd', 'amd-no-ssb', 'pdpe1gb'.",
-                                                   "format_description" : "+FLAG[;-FLAG...]",
-                                                   "optional" : 1,
-                                                   "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb))(;(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb)))*)",
-                                                   "type" : "string"
-                                                },
-                                                "hidden" : {
-                                                   "default" : 0,
-                                                   "description" : "Do not identify as a KVM virtual machine.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                },
-                                                "hv-vendor-id" : {
-                                                   "description" : "The Hyper-V vendor ID. Some drivers or programs inside Windows guests need a specific ID.",
-                                                   "format_description" : "vendor-id",
-                                                   "optional" : 1,
-                                                   "pattern" : "(?^:[a-zA-Z0-9]{1,12})",
-                                                   "type" : "string"
-                                                }
-                                             },
+                                             "format" : "pve-vm-cpu-conf",
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[cputype=]<enum> [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>]"
+                                             "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
                                           },
                                           "cpulimit" : {
                                              "default" : 0,
@@ -10622,13 +14892,13 @@ var pveapi = [
                                              "verbose_description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit."
                                           },
                                           "cpuunits" : {
-                                             "default" : 1024,
-                                             "description" : "CPU weight for a VM.",
+                                             "default" : "cgroup v1: 1024, cgroup v2: 100",
+                                             "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
                                              "maximum" : 262144,
-                                             "minimum" : 2,
+                                             "minimum" : 1,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "<integer> (2 - 262144)",
+                                             "typetext" : "<integer> (1 - 262144)",
                                              "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs."
                                           },
                                           "delete" : {
@@ -10639,7 +14909,8 @@ var pveapi = [
                                              "typetext" : "<string>"
                                           },
                                           "description" : {
-                                             "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file.",
+                                             "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
+                                             "maxLength" : 8192,
                                              "optional" : 1,
                                              "type" : "string",
                                              "typetext" : "<string>"
@@ -10652,8 +14923,18 @@ var pveapi = [
                                              "typetext" : "<string>"
                                           },
                                           "efidisk0" : {
-                                             "description" : "Configure a Disk for storing EFI vars",
+                                             "description" : "Configure a Disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
                                              "format" : {
+                                                "efitype" : {
+                                                   "default" : "2m",
+                                                   "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified.",
+                                                   "enum" : [
+                                                      "2m",
+                                                      "4m"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
                                                 "file" : {
                                                    "default_key" : 1,
                                                    "description" : "The drive's backing volume.",
@@ -10675,6 +14956,19 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "import-from" : {
+                                                   "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+                                                   "format" : "pve-volume-id-or-absolute-path",
+                                                   "format_description" : "source volume",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "pre-enrolled-keys" : {
+                                                   "default" : 0,
+                                                   "description" : "Use am EFI vars template with distribution-specific and Microsoft Standard keys enrolled, if used with 'efitype=4m'. Note that this will enable Secure Boot by default, though it can still be turned off from within the VM.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "size" : {
                                                    "description" : "Disk size. This is purely informational and has no effect.",
                                                    "format" : "disk-size",
@@ -10688,7 +14982,7 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,format=<enum>] [,size=<DiskSize>]"
+                                             "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
                                           },
                                           "force" : {
                                              "description" : "Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.",
@@ -10715,12 +15009,12 @@ var pveapi = [
                                              "format" : "pve-qm-hostpci",
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,x-vga=<1|0>]",
+                                             "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
                                              "verbose_description" : "Map host PCI devices into guest.\n\nNOTE: This option allows direct access to host hardware. So it is no longer\npossible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
                                           },
                                           "hotplug" : {
                                              "default" : "network,disk,usb",
-                                             "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Value '1' is an alias for the default 'network,disk,usb'.",
+                                             "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`.",
                                              "format" : "pve-hotplug-features",
                                              "optional" : 1,
                                              "type" : "string",
@@ -10737,13 +15031,14 @@ var pveapi = [
                                              "type" : "string"
                                           },
                                           "ide[n]" : {
-                                             "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
+                                             "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
                                              "format" : {
                                                 "aio" : {
                                                    "description" : "AIO type to use.",
                                                    "enum" : [
                                                       "native",
-                                                      "threads"
+                                                      "threads",
+                                                      "io_uring"
                                                    ],
                                                    "optional" : 1,
                                                    "type" : "string"
@@ -10855,6 +15150,13 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "import-from" : {
+                                                   "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+                                                   "format" : "pve-volume-id-or-absolute-path",
+                                                   "format_description" : "source volume",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
                                                 "iops" : {
                                                    "description" : "Maximum r/w I/O in operations per second.",
                                                    "format_description" : "iops",
@@ -11059,10 +15361,10 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
                                           },
                                           "ipconfig[n]" : {
-                                             "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit gateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using dhcp on IPv4.\n",
+                                             "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit\ngateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration. This requires\ncloud-init 19.4 or newer.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n",
                                              "format" : "pve-qm-ipconfig",
                                              "optional" : 1,
                                              "type" : "string",
@@ -11088,9 +15390,16 @@ var pveapi = [
                                              "type" : "string",
                                              "typetext" : "size=<integer> [,name=<string>]"
                                           },
+                                          "keephugepages" : {
+                                             "default" : 0,
+                                             "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
                                           "keyboard" : {
                                              "default" : null,
-                                             "description" : "Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.cfg' configuration file.It should not be necessary to set it.",
+                                             "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
                                              "enum" : [
                                                 "de",
                                                 "de-ch",
@@ -11129,7 +15438,7 @@ var pveapi = [
                                              "typetext" : "<boolean>"
                                           },
                                           "localtime" : {
-                                             "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.",
+                                             "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
                                              "optional" : 1,
                                              "type" : "boolean",
                                              "typetext" : "<boolean>"
@@ -11154,7 +15463,7 @@ var pveapi = [
                                              "description" : "Specifies the Qemu machine type.",
                                              "maxLength" : 40,
                                              "optional" : 1,
-                                             "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?|virt(?:-\\d+\\.\\d+)?)",
+                                             "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
                                              "type" : "string"
                                           },
                                           "memory" : {
@@ -11200,6 +15509,7 @@ var pveapi = [
                                              "format" : {
                                                 "bridge" : {
                                                    "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2   Gateway\n 10.0.2.3   DNS Server\n 10.0.2.4   SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n",
+                                                   "format" : "pve-bridge-id",
                                                    "format_description" : "bridge",
                                                    "optional" : 1,
                                                    "type" : "string"
@@ -11220,6 +15530,10 @@ var pveapi = [
                                                    "alias" : "macaddr",
                                                    "keyAlias" : "model"
                                                 },
+                                                "e1000e" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
                                                 "firewall" : {
                                                    "description" : "Whether this interface should be protected by the firewall.",
                                                    "optional" : 1,
@@ -11254,22 +15568,30 @@ var pveapi = [
                                                    "default_key" : 1,
                                                    "description" : "Network Card Model. The 'virtio' model provides the best performance with very low CPU overhead. If your guest does not support this driver, it is usually best to use 'e1000'.",
                                                    "enum" : [
-                                                      "rtl8139",
-                                                      "ne2k_pci",
                                                       "e1000",
-                                                      "pcnet",
-                                                      "virtio",
-                                                      "ne2k_isa",
+                                                      "e1000-82540em",
+                                                      "e1000-82544gc",
+                                                      "e1000-82545em",
+                                                      "e1000e",
                                                       "i82551",
                                                       "i82557b",
                                                       "i82559er",
-                                                      "vmxnet3",
-                                                      "e1000-82540em",
-                                                      "e1000-82544gc",
-                                                      "e1000-82545em"
+                                                      "ne2k_isa",
+                                                      "ne2k_pci",
+                                                      "pcnet",
+                                                      "rtl8139",
+                                                      "virtio",
+                                                      "vmxnet3"
                                                    ],
                                                    "type" : "string"
                                                 },
+                                                "mtu" : {
+                                                   "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
+                                                   "maximum" : 65520,
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "ne2k_isa" : {
                                                    "alias" : "macaddr",
                                                    "keyAlias" : "model"
@@ -11324,7 +15646,7 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
+                                             "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,mtu=<integer>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
@@ -11394,20 +15716,21 @@ var pveapi = [
                                                 "win7",
                                                 "win8",
                                                 "win10",
+                                                "win11",
                                                 "l24",
                                                 "l26",
                                                 "solaris"
                                              ],
                                              "optional" : 1,
                                              "type" : "string",
-                                             "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6/3.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
+                                             "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 5.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
                                           },
                                           "parallel[n]" : {
                                              "description" : "Map host parallel devices (n is 0 to 2).",
                                              "optional" : 1,
                                              "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
                                              "type" : "string",
-                                             "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+                                             "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
                                           },
                                           "protection" : {
                                              "default" : 0,
@@ -11430,14 +15753,45 @@ var pveapi = [
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           },
+                                          "rng0" : {
+                                             "description" : "Configure a VirtIO-based Random Number Generator.",
+                                             "format" : {
+                                                "max_bytes" : {
+                                                   "default" : 1024,
+                                                   "description" : "Maximum bytes of entropy allowed to get injected into the guest every 'period' milliseconds. Prefer a lower value when using '/dev/random' as source. Use `0` to disable limiting (potentially dangerous!).",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "period" : {
+                                                   "default" : 1000,
+                                                   "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "source" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The file on the host to gather entropy from. In most cases '/dev/urandom' should be preferred over '/dev/random' to avoid entropy-starvation issues on the host. Using urandom does *not* decrease security in any meaningful way, as it's still seeded from real entropy, and the bytes provided will most likely be mixed with real entropy on the guest as well. '/dev/hwrng' can be used to pass through a hardware RNG from the host.",
+                                                   "enum" : [
+                                                      "/dev/urandom",
+                                                      "/dev/random",
+                                                      "/dev/hwrng"
+                                                   ],
+                                                   "type" : "string"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
+                                          },
                                           "sata[n]" : {
-                                             "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
+                                             "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
                                              "format" : {
                                                 "aio" : {
                                                    "description" : "AIO type to use.",
                                                    "enum" : [
                                                       "native",
-                                                      "threads"
+                                                      "threads",
+                                                      "io_uring"
                                                    ],
                                                    "optional" : 1,
                                                    "type" : "string"
@@ -11549,6 +15903,13 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "import-from" : {
+                                                   "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+                                                   "format" : "pve-volume-id-or-absolute-path",
+                                                   "format_description" : "source volume",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
                                                 "iops" : {
                                                    "description" : "Maximum r/w I/O in operations per second.",
                                                    "format_description" : "iops",
@@ -11745,16 +16106,17 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
                                           },
                                           "scsi[n]" : {
-                                             "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
+                                             "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
                                              "format" : {
                                                 "aio" : {
                                                    "description" : "AIO type to use.",
                                                    "enum" : [
                                                       "native",
-                                                      "threads"
+                                                      "threads",
+                                                      "io_uring"
                                                    ],
                                                    "optional" : 1,
                                                    "type" : "string"
@@ -11866,6 +16228,13 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "import-from" : {
+                                                   "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+                                                   "format" : "pve-volume-id-or-absolute-path",
+                                                   "format_description" : "source volume",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
                                                 "iops" : {
                                                    "description" : "Maximum r/w I/O in operations per second.",
                                                    "format_description" : "iops",
@@ -12002,6 +16371,11 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "ro" : {
+                                                   "description" : "Whether the drive is read-only.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "scsiblock" : {
                                                    "default" : 0,
                                                    "description" : "whether to use scsi-block for full passthrough of host block device\n\nWARNING: can lead to I/O errors in combination with low memory or high memory fragmentation on host",
@@ -12079,7 +16453,7 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
                                           },
                                           "scsihw" : {
                                              "default" : "lsi",
@@ -12106,7 +16480,7 @@ var pveapi = [
                                              "optional" : 1,
                                              "pattern" : "(/dev/.+|socket)",
                                              "type" : "string",
-                                             "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+                                             "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines -\nuse with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
                                           },
                                           "shares" : {
                                              "default" : 1000,
@@ -12126,10 +16500,10 @@ var pveapi = [
                                           "smbios1" : {
                                              "description" : "Specify SMBIOS type 1 fields.",
                                              "format" : "pve-qm-smbios1",
-                                             "maxLength" : 256,
+                                             "maxLength" : 512,
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[family=<string>] [,manufacturer=<string>] [,product=<string>] [,serial=<string>] [,sku=<string>] [,uuid=<UUID>] [,version=<string>]"
+                                             "typetext" : "[base64=<1|0>] [,family=<Base64 encoded string>] [,manufacturer=<Base64 encoded string>] [,product=<Base64 encoded string>] [,serial=<Base64 encoded string>] [,sku=<Base64 encoded string>] [,uuid=<UUID>] [,version=<Base64 encoded string>]"
                                           },
                                           "smp" : {
                                              "default" : 1,
@@ -12147,6 +16521,31 @@ var pveapi = [
                                              "type" : "integer",
                                              "typetext" : "<integer> (1 - N)"
                                           },
+                                          "spice_enhancements" : {
+                                             "description" : "Configure additional enhancements for SPICE.",
+                                             "format" : {
+                                                "foldersharing" : {
+                                                   "default" : "0",
+                                                   "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "videostreaming" : {
+                                                   "default" : "off",
+                                                   "description" : "Enable video streaming. Uses compression for detected video streams.",
+                                                   "enum" : [
+                                                      "off",
+                                                      "all",
+                                                      "filter"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
+                                          },
                                           "sshkeys" : {
                                              "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
                                              "format" : "urlencoded",
@@ -12156,7 +16555,7 @@ var pveapi = [
                                           },
                                           "startdate" : {
                                              "default" : "now",
-                                             "description" : "Set the initial date of the real time clock. Valid format for date are: 'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
+                                             "description" : "Set the initial date of the real time clock. Valid format for date are:'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
                                              "optional" : 1,
                                              "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
                                              "type" : "string",
@@ -12175,7 +16574,14 @@ var pveapi = [
                                              "optional" : 1,
                                              "type" : "boolean",
                                              "typetext" : "<boolean>",
-                                             "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (-vga=qxl)."
+                                             "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (`qm set <vmid> --vga qxl`)."
+                                          },
+                                          "tags" : {
+                                             "description" : "Tags of the VM. This is only meta information.",
+                                             "format" : "pve-tag-list",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "tdf" : {
                                              "default" : 0,
@@ -12191,26 +16597,79 @@ var pveapi = [
                                              "type" : "boolean",
                                              "typetext" : "<boolean>"
                                           },
+                                          "tpmstate0" : {
+                                             "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and 4 MiB will be used instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+                                             "format" : {
+                                                "file" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The drive's backing volume.",
+                                                   "format" : "pve-volume-id-or-qm-path",
+                                                   "format_description" : "volume",
+                                                   "type" : "string"
+                                                },
+                                                "import-from" : {
+                                                   "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+                                                   "format" : "pve-volume-id-or-absolute-path",
+                                                   "format_description" : "source volume",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "size" : {
+                                                   "description" : "Disk size. This is purely informational and has no effect.",
+                                                   "format" : "disk-size",
+                                                   "format_description" : "DiskSize",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "version" : {
+                                                   "default" : "v2.0",
+                                                   "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
+                                                   "enum" : [
+                                                      "v1.2",
+                                                      "v2.0"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "volume" : {
+                                                   "alias" : "file"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
+                                          },
                                           "unused[n]" : {
                                              "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
-                                             "format" : "pve-volume-id",
+                                             "format" : {
+                                                "file" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The drive's backing volume.",
+                                                   "format" : "pve-volume-id",
+                                                   "format_description" : "volume",
+                                                   "type" : "string"
+                                                },
+                                                "volume" : {
+                                                   "alias" : "file"
+                                                }
+                                             },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "<string>"
+                                             "typetext" : "[file=]<volume>"
                                           },
                                           "usb[n]" : {
                                              "description" : "Configure an USB device (n is 0 to 4).",
                                              "format" : {
                                                 "host" : {
                                                    "default_key" : 1,
-                                                   "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
+                                                   "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
                                                    "format" : "pve-qm-usb-device",
                                                    "format_description" : "HOSTUSBDEVICE|spice",
                                                    "type" : "string"
                                                 },
                                                 "usb3" : {
                                                    "default" : 0,
-                                                   "description" : "Specifies whether if given host option is a USB3 device or port (this does currently not work reliably with spice redirection and is then ignored).",
+                                                   "description" : "Specifies whether if given host option is a USB3 device or port.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 }
@@ -12254,6 +16713,7 @@ var pveapi = [
                                                       "serial3",
                                                       "std",
                                                       "virtio",
+                                                      "virtio-gl",
                                                       "vmware"
                                                    ],
                                                    "optional" : 1,
@@ -12266,13 +16726,14 @@ var pveapi = [
                                              "verbose_description" : "Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is 'std' for all OS types besides some Windows versions (XP and older) which use 'cirrus'. The 'qxl' option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays them self.\nYou can also run without any graphic card, using a serial device as terminal."
                                           },
                                           "virtio[n]" : {
-                                             "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
+                                             "description" : "Use volume as VIRTIO hard disk (n is 0 to 15). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
                                              "format" : {
                                                 "aio" : {
                                                    "description" : "AIO type to use.",
                                                    "enum" : [
                                                       "native",
-                                                      "threads"
+                                                      "threads",
+                                                      "io_uring"
                                                    ],
                                                    "optional" : 1,
                                                    "type" : "string"
@@ -12384,6 +16845,13 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "import-from" : {
+                                                   "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+                                                   "format" : "pve-volume-id-or-absolute-path",
+                                                   "format_description" : "source volume",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
                                                 "iops" : {
                                                    "description" : "Maximum r/w I/O in operations per second.",
                                                    "format_description" : "iops",
@@ -12514,6 +16982,11 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "ro" : {
+                                                   "description" : "Whether the drive is read-only.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "secs" : {
                                                    "description" : "Force the drive's physical geometry to have a specific sector count.",
                                                    "optional" : 1,
@@ -12573,7 +17046,7 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
                                           },
                                           "vmgenid" : {
                                              "default" : "1 (autogenerated)",
@@ -12582,7 +17055,7 @@ var pveapi = [
                                              "optional" : 1,
                                              "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
                                              "type" : "string",
-                                             "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done throug API/CLI create or update methods, but not when manually editing the config file."
+                                             "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done through API/CLI create or update methods, but not when manually editing the config file."
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
@@ -12619,7 +17092,8 @@ var pveapi = [
                                              "VM.Config.Memory",
                                              "VM.Config.Network",
                                              "VM.Config.HWType",
-                                             "VM.Config.Options"
+                                             "VM.Config.Options",
+                                             "VM.Config.Cloudinit"
                                           ],
                                           "any",
                                           1
@@ -12633,6 +17107,7 @@ var pveapi = [
                                     }
                                  },
                                  "PUT" : {
+                                    "allowtoken" : 1,
                                     "description" : "Set virtual machine options (synchrounous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.",
                                     "method" : "PUT",
                                     "name" : "update_vm",
@@ -12647,24 +17122,34 @@ var pveapi = [
                                              "typetext" : "<boolean>"
                                           },
                                           "agent" : {
-                                             "description" : "Enable/disable Qemu GuestAgent and its properties.",
+                                             "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
                                              "format" : {
                                                 "enabled" : {
                                                    "default" : 0,
                                                    "default_key" : 1,
-                                                   "description" : "Enable/disable Qemu GuestAgent.",
+                                                   "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
                                                    "type" : "boolean"
                                                 },
                                                 "fstrim_cloned_disks" : {
                                                    "default" : 0,
-                                                   "description" : "Run fstrim after cloning/moving a disk.",
+                                                   "description" : "Run fstrim after moving a disk or migrating the VM.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
+                                                },
+                                                "type" : {
+                                                   "default" : "virtio",
+                                                   "description" : "Select the agent type",
+                                                   "enum" : [
+                                                      "virtio",
+                                                      "isa"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
                                                 }
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>]"
+                                             "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
                                           },
                                           "arch" : {
                                              "description" : "Virtual processor architecture. Defaults to the host.",
@@ -12682,6 +17167,33 @@ var pveapi = [
                                              "typetext" : "<string>",
                                              "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
                                           },
+                                          "audio0" : {
+                                             "description" : "Configure a audio device, useful in combination with QXL/Spice.",
+                                             "format" : {
+                                                "device" : {
+                                                   "description" : "Configure an audio device.",
+                                                   "enum" : [
+                                                      "ich9-intel-hda",
+                                                      "intel-hda",
+                                                      "AC97"
+                                                   ],
+                                                   "type" : "string"
+                                                },
+                                                "driver" : {
+                                                   "default" : "spice",
+                                                   "description" : "Driver backend for the audio device.",
+                                                   "enum" : [
+                                                      "spice",
+                                                      "none"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
+                                          },
                                           "autostart" : {
                                              "default" : 0,
                                              "description" : "Automatic restart after crash (currently ignored).",
@@ -12707,14 +17219,14 @@ var pveapi = [
                                              "type" : "string"
                                           },
                                           "boot" : {
-                                             "default" : "cdn",
-                                             "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
+                                             "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
+                                             "format" : "pve-qm-boot",
                                              "optional" : 1,
-                                             "pattern" : "[acdn]{1,4}",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
                                           },
                                           "bootdisk" : {
-                                             "description" : "Enable booting from specified disk.",
+                                             "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
                                              "format" : "pve-qm-bootdisk",
                                              "optional" : 1,
                                              "pattern" : "(ide|sata|scsi|virtio)\\d+",
@@ -12732,7 +17244,7 @@ var pveapi = [
                                              "format" : "pve-qm-cicustom",
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>]"
+                                             "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
                                           },
                                           "cipassword" : {
                                              "description" : "cloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.",
@@ -12744,7 +17256,8 @@ var pveapi = [
                                              "description" : "Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.",
                                              "enum" : [
                                                 "configdrive2",
-                                                "nocloud"
+                                                "nocloud",
+                                                "opennebula"
                                              ],
                                              "optional" : 1,
                                              "type" : "string"
@@ -12765,82 +17278,10 @@ var pveapi = [
                                           },
                                           "cpu" : {
                                              "description" : "Emulated CPU type.",
-                                             "format" : {
-                                                "cputype" : {
-                                                   "default" : "kvm64",
-                                                   "default_key" : 1,
-                                                   "description" : "Emulated CPU type.",
-                                                   "enum" : [
-                                                      "486",
-                                                      "athlon",
-                                                      "Broadwell",
-                                                      "Broadwell-IBRS",
-                                                      "Broadwell-noTSX",
-                                                      "Broadwell-noTSX-IBRS",
-                                                      "Conroe",
-                                                      "core2duo",
-                                                      "coreduo",
-                                                      "EPYC",
-                                                      "EPYC-IBPB",
-                                                      "Haswell",
-                                                      "Haswell-IBRS",
-                                                      "Haswell-noTSX",
-                                                      "Haswell-noTSX-IBRS",
-                                                      "host",
-                                                      "IvyBridge",
-                                                      "IvyBridge-IBRS",
-                                                      "kvm32",
-                                                      "kvm64",
-                                                      "max",
-                                                      "Nehalem",
-                                                      "Nehalem-IBRS",
-                                                      "Opteron_G1",
-                                                      "Opteron_G2",
-                                                      "Opteron_G3",
-                                                      "Opteron_G4",
-                                                      "Opteron_G5",
-                                                      "Penryn",
-                                                      "pentium",
-                                                      "pentium2",
-                                                      "pentium3",
-                                                      "phenom",
-                                                      "qemu32",
-                                                      "qemu64",
-                                                      "SandyBridge",
-                                                      "SandyBridge-IBRS",
-                                                      "Skylake-Client",
-                                                      "Skylake-Client-IBRS",
-                                                      "Skylake-Server",
-                                                      "Skylake-Server-IBRS",
-                                                      "Westmere",
-                                                      "Westmere-IBRS"
-                                                   ],
-                                                   "type" : "string"
-                                                },
-                                                "flags" : {
-                                                   "description" : "List of additional CPU flags separated by ';'. Use '+FLAG' to enable, '-FLAG' to disable a flag. Currently supported flags: 'pcid', 'spec-ctrl', 'ibpb', 'ssbd', 'virt-ssbd', 'amd-ssbd', 'amd-no-ssb', 'pdpe1gb'.",
-                                                   "format_description" : "+FLAG[;-FLAG...]",
-                                                   "optional" : 1,
-                                                   "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb))(;(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb)))*)",
-                                                   "type" : "string"
-                                                },
-                                                "hidden" : {
-                                                   "default" : 0,
-                                                   "description" : "Do not identify as a KVM virtual machine.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                },
-                                                "hv-vendor-id" : {
-                                                   "description" : "The Hyper-V vendor ID. Some drivers or programs inside Windows guests need a specific ID.",
-                                                   "format_description" : "vendor-id",
-                                                   "optional" : 1,
-                                                   "pattern" : "(?^:[a-zA-Z0-9]{1,12})",
-                                                   "type" : "string"
-                                                }
-                                             },
+                                             "format" : "pve-vm-cpu-conf",
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[cputype=]<enum> [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>]"
+                                             "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
                                           },
                                           "cpulimit" : {
                                              "default" : 0,
@@ -12853,13 +17294,13 @@ var pveapi = [
                                              "verbose_description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit."
                                           },
                                           "cpuunits" : {
-                                             "default" : 1024,
-                                             "description" : "CPU weight for a VM.",
+                                             "default" : "cgroup v1: 1024, cgroup v2: 100",
+                                             "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
                                              "maximum" : 262144,
-                                             "minimum" : 2,
+                                             "minimum" : 1,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "<integer> (2 - 262144)",
+                                             "typetext" : "<integer> (1 - 262144)",
                                              "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs."
                                           },
                                           "delete" : {
@@ -12870,7 +17311,8 @@ var pveapi = [
                                              "typetext" : "<string>"
                                           },
                                           "description" : {
-                                             "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file.",
+                                             "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
+                                             "maxLength" : 8192,
                                              "optional" : 1,
                                              "type" : "string",
                                              "typetext" : "<string>"
@@ -12883,8 +17325,18 @@ var pveapi = [
                                              "typetext" : "<string>"
                                           },
                                           "efidisk0" : {
-                                             "description" : "Configure a Disk for storing EFI vars",
+                                             "description" : "Configure a Disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
                                              "format" : {
+                                                "efitype" : {
+                                                   "default" : "2m",
+                                                   "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified.",
+                                                   "enum" : [
+                                                      "2m",
+                                                      "4m"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
                                                 "file" : {
                                                    "default_key" : 1,
                                                    "description" : "The drive's backing volume.",
@@ -12906,6 +17358,19 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "import-from" : {
+                                                   "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+                                                   "format" : "pve-volume-id-or-absolute-path",
+                                                   "format_description" : "source volume",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "pre-enrolled-keys" : {
+                                                   "default" : 0,
+                                                   "description" : "Use am EFI vars template with distribution-specific and Microsoft Standard keys enrolled, if used with 'efitype=4m'. Note that this will enable Secure Boot by default, though it can still be turned off from within the VM.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "size" : {
                                                    "description" : "Disk size. This is purely informational and has no effect.",
                                                    "format" : "disk-size",
@@ -12919,7 +17384,7 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,format=<enum>] [,size=<DiskSize>]"
+                                             "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
                                           },
                                           "force" : {
                                              "description" : "Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.",
@@ -12946,12 +17411,12 @@ var pveapi = [
                                              "format" : "pve-qm-hostpci",
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,x-vga=<1|0>]",
+                                             "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
                                              "verbose_description" : "Map host PCI devices into guest.\n\nNOTE: This option allows direct access to host hardware. So it is no longer\npossible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
                                           },
                                           "hotplug" : {
                                              "default" : "network,disk,usb",
-                                             "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Value '1' is an alias for the default 'network,disk,usb'.",
+                                             "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`.",
                                              "format" : "pve-hotplug-features",
                                              "optional" : 1,
                                              "type" : "string",
@@ -12968,13 +17433,14 @@ var pveapi = [
                                              "type" : "string"
                                           },
                                           "ide[n]" : {
-                                             "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
+                                             "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
                                              "format" : {
                                                 "aio" : {
                                                    "description" : "AIO type to use.",
                                                    "enum" : [
                                                       "native",
-                                                      "threads"
+                                                      "threads",
+                                                      "io_uring"
                                                    ],
                                                    "optional" : 1,
                                                    "type" : "string"
@@ -13086,6 +17552,13 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "import-from" : {
+                                                   "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+                                                   "format" : "pve-volume-id-or-absolute-path",
+                                                   "format_description" : "source volume",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
                                                 "iops" : {
                                                    "description" : "Maximum r/w I/O in operations per second.",
                                                    "format_description" : "iops",
@@ -13290,10 +17763,10 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
                                           },
                                           "ipconfig[n]" : {
-                                             "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit gateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using dhcp on IPv4.\n",
+                                             "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit\ngateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration. This requires\ncloud-init 19.4 or newer.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n",
                                              "format" : "pve-qm-ipconfig",
                                              "optional" : 1,
                                              "type" : "string",
@@ -13319,9 +17792,16 @@ var pveapi = [
                                              "type" : "string",
                                              "typetext" : "size=<integer> [,name=<string>]"
                                           },
+                                          "keephugepages" : {
+                                             "default" : 0,
+                                             "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
                                           "keyboard" : {
                                              "default" : null,
-                                             "description" : "Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.cfg' configuration file.It should not be necessary to set it.",
+                                             "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
                                              "enum" : [
                                                 "de",
                                                 "de-ch",
@@ -13360,7 +17840,7 @@ var pveapi = [
                                              "typetext" : "<boolean>"
                                           },
                                           "localtime" : {
-                                             "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.",
+                                             "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
                                              "optional" : 1,
                                              "type" : "boolean",
                                              "typetext" : "<boolean>"
@@ -13385,7 +17865,7 @@ var pveapi = [
                                              "description" : "Specifies the Qemu machine type.",
                                              "maxLength" : 40,
                                              "optional" : 1,
-                                             "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?|virt(?:-\\d+\\.\\d+)?)",
+                                             "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
                                              "type" : "string"
                                           },
                                           "memory" : {
@@ -13431,6 +17911,7 @@ var pveapi = [
                                              "format" : {
                                                 "bridge" : {
                                                    "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2   Gateway\n 10.0.2.3   DNS Server\n 10.0.2.4   SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n",
+                                                   "format" : "pve-bridge-id",
                                                    "format_description" : "bridge",
                                                    "optional" : 1,
                                                    "type" : "string"
@@ -13451,6 +17932,10 @@ var pveapi = [
                                                    "alias" : "macaddr",
                                                    "keyAlias" : "model"
                                                 },
+                                                "e1000e" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
                                                 "firewall" : {
                                                    "description" : "Whether this interface should be protected by the firewall.",
                                                    "optional" : 1,
@@ -13485,22 +17970,30 @@ var pveapi = [
                                                    "default_key" : 1,
                                                    "description" : "Network Card Model. The 'virtio' model provides the best performance with very low CPU overhead. If your guest does not support this driver, it is usually best to use 'e1000'.",
                                                    "enum" : [
-                                                      "rtl8139",
-                                                      "ne2k_pci",
                                                       "e1000",
-                                                      "pcnet",
-                                                      "virtio",
-                                                      "ne2k_isa",
+                                                      "e1000-82540em",
+                                                      "e1000-82544gc",
+                                                      "e1000-82545em",
+                                                      "e1000e",
                                                       "i82551",
                                                       "i82557b",
                                                       "i82559er",
-                                                      "vmxnet3",
-                                                      "e1000-82540em",
-                                                      "e1000-82544gc",
-                                                      "e1000-82545em"
+                                                      "ne2k_isa",
+                                                      "ne2k_pci",
+                                                      "pcnet",
+                                                      "rtl8139",
+                                                      "virtio",
+                                                      "vmxnet3"
                                                    ],
                                                    "type" : "string"
                                                 },
+                                                "mtu" : {
+                                                   "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
+                                                   "maximum" : 65520,
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "ne2k_isa" : {
                                                    "alias" : "macaddr",
                                                    "keyAlias" : "model"
@@ -13555,7 +18048,7 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
+                                             "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,mtu=<integer>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
@@ -13625,20 +18118,21 @@ var pveapi = [
                                                 "win7",
                                                 "win8",
                                                 "win10",
+                                                "win11",
                                                 "l24",
                                                 "l26",
                                                 "solaris"
                                              ],
                                              "optional" : 1,
                                              "type" : "string",
-                                             "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6/3.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
+                                             "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 5.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
                                           },
                                           "parallel[n]" : {
                                              "description" : "Map host parallel devices (n is 0 to 2).",
                                              "optional" : 1,
                                              "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
                                              "type" : "string",
-                                             "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+                                             "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
                                           },
                                           "protection" : {
                                              "default" : 0,
@@ -13661,14 +18155,45 @@ var pveapi = [
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           },
+                                          "rng0" : {
+                                             "description" : "Configure a VirtIO-based Random Number Generator.",
+                                             "format" : {
+                                                "max_bytes" : {
+                                                   "default" : 1024,
+                                                   "description" : "Maximum bytes of entropy allowed to get injected into the guest every 'period' milliseconds. Prefer a lower value when using '/dev/random' as source. Use `0` to disable limiting (potentially dangerous!).",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "period" : {
+                                                   "default" : 1000,
+                                                   "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "source" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The file on the host to gather entropy from. In most cases '/dev/urandom' should be preferred over '/dev/random' to avoid entropy-starvation issues on the host. Using urandom does *not* decrease security in any meaningful way, as it's still seeded from real entropy, and the bytes provided will most likely be mixed with real entropy on the guest as well. '/dev/hwrng' can be used to pass through a hardware RNG from the host.",
+                                                   "enum" : [
+                                                      "/dev/urandom",
+                                                      "/dev/random",
+                                                      "/dev/hwrng"
+                                                   ],
+                                                   "type" : "string"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
+                                          },
                                           "sata[n]" : {
-                                             "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
+                                             "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
                                              "format" : {
                                                 "aio" : {
                                                    "description" : "AIO type to use.",
                                                    "enum" : [
                                                       "native",
-                                                      "threads"
+                                                      "threads",
+                                                      "io_uring"
                                                    ],
                                                    "optional" : 1,
                                                    "type" : "string"
@@ -13780,6 +18305,13 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "import-from" : {
+                                                   "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+                                                   "format" : "pve-volume-id-or-absolute-path",
+                                                   "format_description" : "source volume",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
                                                 "iops" : {
                                                    "description" : "Maximum r/w I/O in operations per second.",
                                                    "format_description" : "iops",
@@ -13976,16 +18508,17 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
                                           },
                                           "scsi[n]" : {
-                                             "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
+                                             "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
                                              "format" : {
                                                 "aio" : {
                                                    "description" : "AIO type to use.",
                                                    "enum" : [
                                                       "native",
-                                                      "threads"
+                                                      "threads",
+                                                      "io_uring"
                                                    ],
                                                    "optional" : 1,
                                                    "type" : "string"
@@ -14097,6 +18630,13 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "import-from" : {
+                                                   "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+                                                   "format" : "pve-volume-id-or-absolute-path",
+                                                   "format_description" : "source volume",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
                                                 "iops" : {
                                                    "description" : "Maximum r/w I/O in operations per second.",
                                                    "format_description" : "iops",
@@ -14233,6 +18773,11 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "ro" : {
+                                                   "description" : "Whether the drive is read-only.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "scsiblock" : {
                                                    "default" : 0,
                                                    "description" : "whether to use scsi-block for full passthrough of host block device\n\nWARNING: can lead to I/O errors in combination with low memory or high memory fragmentation on host",
@@ -14310,7 +18855,7 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
                                           },
                                           "scsihw" : {
                                              "default" : "lsi",
@@ -14337,7 +18882,7 @@ var pveapi = [
                                              "optional" : 1,
                                              "pattern" : "(/dev/.+|socket)",
                                              "type" : "string",
-                                             "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+                                             "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines -\nuse with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
                                           },
                                           "shares" : {
                                              "default" : 1000,
@@ -14357,10 +18902,10 @@ var pveapi = [
                                           "smbios1" : {
                                              "description" : "Specify SMBIOS type 1 fields.",
                                              "format" : "pve-qm-smbios1",
-                                             "maxLength" : 256,
+                                             "maxLength" : 512,
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[family=<string>] [,manufacturer=<string>] [,product=<string>] [,serial=<string>] [,sku=<string>] [,uuid=<UUID>] [,version=<string>]"
+                                             "typetext" : "[base64=<1|0>] [,family=<Base64 encoded string>] [,manufacturer=<Base64 encoded string>] [,product=<Base64 encoded string>] [,serial=<Base64 encoded string>] [,sku=<Base64 encoded string>] [,uuid=<UUID>] [,version=<Base64 encoded string>]"
                                           },
                                           "smp" : {
                                              "default" : 1,
@@ -14378,6 +18923,31 @@ var pveapi = [
                                              "type" : "integer",
                                              "typetext" : "<integer> (1 - N)"
                                           },
+                                          "spice_enhancements" : {
+                                             "description" : "Configure additional enhancements for SPICE.",
+                                             "format" : {
+                                                "foldersharing" : {
+                                                   "default" : "0",
+                                                   "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "videostreaming" : {
+                                                   "default" : "off",
+                                                   "description" : "Enable video streaming. Uses compression for detected video streams.",
+                                                   "enum" : [
+                                                      "off",
+                                                      "all",
+                                                      "filter"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
+                                          },
                                           "sshkeys" : {
                                              "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
                                              "format" : "urlencoded",
@@ -14387,7 +18957,7 @@ var pveapi = [
                                           },
                                           "startdate" : {
                                              "default" : "now",
-                                             "description" : "Set the initial date of the real time clock. Valid format for date are: 'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
+                                             "description" : "Set the initial date of the real time clock. Valid format for date are:'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
                                              "optional" : 1,
                                              "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
                                              "type" : "string",
@@ -14406,7 +18976,14 @@ var pveapi = [
                                              "optional" : 1,
                                              "type" : "boolean",
                                              "typetext" : "<boolean>",
-                                             "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (-vga=qxl)."
+                                             "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (`qm set <vmid> --vga qxl`)."
+                                          },
+                                          "tags" : {
+                                             "description" : "Tags of the VM. This is only meta information.",
+                                             "format" : "pve-tag-list",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "tdf" : {
                                              "default" : 0,
@@ -14422,26 +18999,79 @@ var pveapi = [
                                              "type" : "boolean",
                                              "typetext" : "<boolean>"
                                           },
+                                          "tpmstate0" : {
+                                             "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and 4 MiB will be used instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+                                             "format" : {
+                                                "file" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The drive's backing volume.",
+                                                   "format" : "pve-volume-id-or-qm-path",
+                                                   "format_description" : "volume",
+                                                   "type" : "string"
+                                                },
+                                                "import-from" : {
+                                                   "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+                                                   "format" : "pve-volume-id-or-absolute-path",
+                                                   "format_description" : "source volume",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "size" : {
+                                                   "description" : "Disk size. This is purely informational and has no effect.",
+                                                   "format" : "disk-size",
+                                                   "format_description" : "DiskSize",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "version" : {
+                                                   "default" : "v2.0",
+                                                   "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
+                                                   "enum" : [
+                                                      "v1.2",
+                                                      "v2.0"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "volume" : {
+                                                   "alias" : "file"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
+                                          },
                                           "unused[n]" : {
                                              "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
-                                             "format" : "pve-volume-id",
+                                             "format" : {
+                                                "file" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The drive's backing volume.",
+                                                   "format" : "pve-volume-id",
+                                                   "format_description" : "volume",
+                                                   "type" : "string"
+                                                },
+                                                "volume" : {
+                                                   "alias" : "file"
+                                                }
+                                             },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "<string>"
+                                             "typetext" : "[file=]<volume>"
                                           },
                                           "usb[n]" : {
                                              "description" : "Configure an USB device (n is 0 to 4).",
                                              "format" : {
                                                 "host" : {
                                                    "default_key" : 1,
-                                                   "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
+                                                   "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
                                                    "format" : "pve-qm-usb-device",
                                                    "format_description" : "HOSTUSBDEVICE|spice",
                                                    "type" : "string"
                                                 },
                                                 "usb3" : {
                                                    "default" : 0,
-                                                   "description" : "Specifies whether if given host option is a USB3 device or port (this does currently not work reliably with spice redirection and is then ignored).",
+                                                   "description" : "Specifies whether if given host option is a USB3 device or port.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 }
@@ -14485,6 +19115,7 @@ var pveapi = [
                                                       "serial3",
                                                       "std",
                                                       "virtio",
+                                                      "virtio-gl",
                                                       "vmware"
                                                    ],
                                                    "optional" : 1,
@@ -14497,13 +19128,14 @@ var pveapi = [
                                              "verbose_description" : "Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is 'std' for all OS types besides some Windows versions (XP and older) which use 'cirrus'. The 'qxl' option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays them self.\nYou can also run without any graphic card, using a serial device as terminal."
                                           },
                                           "virtio[n]" : {
-                                             "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
+                                             "description" : "Use volume as VIRTIO hard disk (n is 0 to 15). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
                                              "format" : {
                                                 "aio" : {
                                                    "description" : "AIO type to use.",
                                                    "enum" : [
                                                       "native",
-                                                      "threads"
+                                                      "threads",
+                                                      "io_uring"
                                                    ],
                                                    "optional" : 1,
                                                    "type" : "string"
@@ -14615,6 +19247,13 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "import-from" : {
+                                                   "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+                                                   "format" : "pve-volume-id-or-absolute-path",
+                                                   "format_description" : "source volume",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
                                                 "iops" : {
                                                    "description" : "Maximum r/w I/O in operations per second.",
                                                    "format_description" : "iops",
@@ -14745,6 +19384,11 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "ro" : {
+                                                   "description" : "Whether the drive is read-only.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "secs" : {
                                                    "description" : "Force the drive's physical geometry to have a specific sector count.",
                                                    "optional" : 1,
@@ -14804,7 +19448,7 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
                                           },
                                           "vmgenid" : {
                                              "default" : "1 (autogenerated)",
@@ -14813,7 +19457,7 @@ var pveapi = [
                                              "optional" : 1,
                                              "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
                                              "type" : "string",
-                                             "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done throug API/CLI create or update methods, but not when manually editing the config file."
+                                             "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done through API/CLI create or update methods, but not when manually editing the config file."
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
@@ -14850,7 +19494,8 @@ var pveapi = [
                                              "VM.Config.Memory",
                                              "VM.Config.Network",
                                              "VM.Config.HWType",
-                                             "VM.Config.Options"
+                                             "VM.Config.Options",
+                                             "VM.Config.Cloudinit"
                                           ],
                                           "any",
                                           1
@@ -14870,7 +19515,8 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
-                                    "description" : "Get virtual machine configuration, including pending changes.",
+                                    "allowtoken" : 1,
+                                    "description" : "Get the virtual machine configuration with both current and pending values.",
                                     "method" : "GET",
                                     "name" : "vm_pending",
                                     "parameters" : {
@@ -14939,6 +19585,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "PUT" : {
+                                    "allowtoken" : 1,
                                     "description" : "Unlink/delete disk images.",
                                     "method" : "PUT",
                                     "name" : "unlink",
@@ -14995,12 +19642,20 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Creates a TCP VNC proxy connections.",
                                     "method" : "POST",
                                     "name" : "vncproxy",
                                     "parameters" : {
                                        "additionalProperties" : 0,
                                        "properties" : {
+                                          "generate-password" : {
+                                             "default" : 0,
+                                             "description" : "Generates a random password to be used as ticket instead of the API ticket.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
@@ -15038,6 +19693,11 @@ var pveapi = [
                                           "cert" : {
                                              "type" : "string"
                                           },
+                                          "password" : {
+                                             "description" : "Returned if requested with 'generate-password' param. Consists of printable ASCII characters ('!' .. '~').",
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
                                           "port" : {
                                              "type" : "integer"
                                           },
@@ -15061,6 +19721,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Creates a TCP proxy connections.",
                                     "method" : "POST",
                                     "name" : "termproxy",
@@ -15129,6 +19790,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Opens a weksocket for VNC traffic.",
                                     "method" : "GET",
                                     "name" : "vncwebsocket",
@@ -15190,6 +19852,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Returns a SPICE configuration to connect to the VM.",
                                     "method" : "POST",
                                     "name" : "spiceproxy",
@@ -15261,6 +19924,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Get virtual machine status.",
                                           "method" : "GET",
                                           "name" : "vm_status",
@@ -15341,6 +20005,16 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "running-machine" : {
+                                                   "description" : "The currently running machine type (if running).",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "running-qemu" : {
+                                                   "description" : "The currently running QEMU version (if running).",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
                                                 "spice" : {
                                                    "description" : "Qemu VGA configuration supports spice.",
                                                    "optional" : 1,
@@ -15354,6 +20028,11 @@ var pveapi = [
                                                    ],
                                                    "type" : "string"
                                                 },
+                                                "tags" : {
+                                                   "description" : "The current configured tags, if any",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
                                                 "uptime" : {
                                                    "description" : "Uptime.",
                                                    "optional" : 1,
@@ -15378,17 +20057,24 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Start virtual machine.",
                                           "method" : "POST",
                                           "name" : "vm_start",
                                           "parameters" : {
                                              "additionalProperties" : 0,
                                              "properties" : {
+                                                "force-cpu" : {
+                                                   "description" : "Override QEMU's -cpu argument with the given string.",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
                                                 "machine" : {
                                                    "description" : "Specifies the Qemu machine type.",
                                                    "maxLength" : 40,
                                                    "optional" : 1,
-                                                   "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?|virt(?:-\\d+\\.\\d+)?)",
+                                                   "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
                                                    "type" : "string"
                                                 },
                                                 "migratedfrom" : {
@@ -15434,11 +20120,20 @@ var pveapi = [
                                                    "typetext" : "<string>"
                                                 },
                                                 "targetstorage" : {
-                                                   "description" : "Target storage for the migration. (Can be '1' to use the same storage id as on the source node.)",
+                                                   "description" : "Mapping from source to target storages. Providing only a single storage ID maps all source storages to that storage. Providing the special value '1' will map each source storage to itself.",
+                                                   "format" : "storage-pair-list",
                                                    "optional" : 1,
                                                    "type" : "string",
                                                    "typetext" : "<string>"
                                                 },
+                                                "timeout" : {
+                                                   "default" : "max(30, vm memory in GiB)",
+                                                   "description" : "Wait maximal timeout seconds.",
+                                                   "minimum" : 0,
+                                                   "optional" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (0 - N)"
+                                                },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
@@ -15471,6 +20166,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Stop virtual machine. The qemu process will exit immediately. Thisis akin to pulling the power plug of a running computer and may damage the VM data",
                                           "method" : "POST",
                                           "name" : "vm_stop",
@@ -15542,6 +20238,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Reset virtual machine.",
                                           "method" : "POST",
                                           "name" : "vm_reset",
@@ -15592,6 +20289,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Shutdown virtual machine. This is similar to pressing the power button on a physical machine.This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown.",
                                           "method" : "POST",
                                           "name" : "vm_shutdown",
@@ -15663,6 +20361,59 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
+                                          "description" : "Reboot the VM by shutting it down, and starting it again. Applies pending changes.",
+                                          "method" : "POST",
+                                          "name" : "vm_reboot",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "timeout" : {
+                                                   "description" : "Wait maximal timeout seconds for the shutdown.",
+                                                   "minimum" : 0,
+                                                   "optional" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (0 - N)"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.PowerMgmt"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "type" : "string"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/status/reboot",
+                                    "text" : "reboot"
+                                 },
+                                 {
+                                    "info" : {
+                                       "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Suspend virtual machine.",
                                           "method" : "POST",
                                           "name" : "vm_suspend",
@@ -15712,7 +20463,8 @@ var pveapi = [
                                                 [
                                                    "VM.PowerMgmt"
                                                 ]
-                                             ]
+                                             ],
+                                             "description" : "You need 'VM.PowerMgmt' on /vms/{vmid}, and if you have set 'todisk', you need also 'VM.Config.Disk' on /vms/{vmid} and 'Datastore.AllocateSpace' on the storage for the vmstate."
                                           },
                                           "protected" : 1,
                                           "proxyto" : "node",
@@ -15728,6 +20480,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Resume virtual machine.",
                                           "method" : "POST",
                                           "name" : "vm_resume",
@@ -15783,6 +20536,7 @@ var pveapi = [
                               ],
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Directory index",
                                     "method" : "GET",
                                     "name" : "vmcmdidx",
@@ -15834,6 +20588,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "PUT" : {
+                                    "allowtoken" : 1,
                                     "description" : "Send key event to virtual machine.",
                                     "method" : "PUT",
                                     "name" : "vm_sendkey",
@@ -15889,6 +20644,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Check if feature for virtual machine is available.",
                                     "method" : "GET",
                                     "name" : "vm_feature",
@@ -15961,6 +20717,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Create a copy of virtual machine/template.",
                                     "method" : "POST",
                                     "name" : "clone_vm",
@@ -16101,7 +20858,8 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
-                                    "description" : "Move volume to different storage.",
+                                    "allowtoken" : 1,
+                                    "description" : "Move volume to different storage or to a different VM.",
                                     "method" : "POST",
                                     "name" : "move_vm_disk",
                                     "parameters" : {
@@ -16123,7 +20881,7 @@ var pveapi = [
                                              "typetext" : "<boolean>"
                                           },
                                           "digest" : {
-                                             "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                             "description" : "Prevent changes if current configuration file has different SHA1\"\n\t\t    .\" digest. This can be used to prevent concurrent modifications.",
                                              "maxLength" : 40,
                                              "optional" : 1,
                                              "type" : "string",
@@ -16150,6 +20908,374 @@ var pveapi = [
                                                 "scsi11",
                                                 "scsi12",
                                                 "scsi13",
+                                                "scsi14",
+                                                "scsi15",
+                                                "scsi16",
+                                                "scsi17",
+                                                "scsi18",
+                                                "scsi19",
+                                                "scsi20",
+                                                "scsi21",
+                                                "scsi22",
+                                                "scsi23",
+                                                "scsi24",
+                                                "scsi25",
+                                                "scsi26",
+                                                "scsi27",
+                                                "scsi28",
+                                                "scsi29",
+                                                "scsi30",
+                                                "virtio0",
+                                                "virtio1",
+                                                "virtio2",
+                                                "virtio3",
+                                                "virtio4",
+                                                "virtio5",
+                                                "virtio6",
+                                                "virtio7",
+                                                "virtio8",
+                                                "virtio9",
+                                                "virtio10",
+                                                "virtio11",
+                                                "virtio12",
+                                                "virtio13",
+                                                "virtio14",
+                                                "virtio15",
+                                                "sata0",
+                                                "sata1",
+                                                "sata2",
+                                                "sata3",
+                                                "sata4",
+                                                "sata5",
+                                                "efidisk0",
+                                                "tpmstate0",
+                                                "unused0",
+                                                "unused1",
+                                                "unused2",
+                                                "unused3",
+                                                "unused4",
+                                                "unused5",
+                                                "unused6",
+                                                "unused7",
+                                                "unused8",
+                                                "unused9",
+                                                "unused10",
+                                                "unused11",
+                                                "unused12",
+                                                "unused13",
+                                                "unused14",
+                                                "unused15",
+                                                "unused16",
+                                                "unused17",
+                                                "unused18",
+                                                "unused19",
+                                                "unused20",
+                                                "unused21",
+                                                "unused22",
+                                                "unused23",
+                                                "unused24",
+                                                "unused25",
+                                                "unused26",
+                                                "unused27",
+                                                "unused28",
+                                                "unused29",
+                                                "unused30",
+                                                "unused31",
+                                                "unused32",
+                                                "unused33",
+                                                "unused34",
+                                                "unused35",
+                                                "unused36",
+                                                "unused37",
+                                                "unused38",
+                                                "unused39",
+                                                "unused40",
+                                                "unused41",
+                                                "unused42",
+                                                "unused43",
+                                                "unused44",
+                                                "unused45",
+                                                "unused46",
+                                                "unused47",
+                                                "unused48",
+                                                "unused49",
+                                                "unused50",
+                                                "unused51",
+                                                "unused52",
+                                                "unused53",
+                                                "unused54",
+                                                "unused55",
+                                                "unused56",
+                                                "unused57",
+                                                "unused58",
+                                                "unused59",
+                                                "unused60",
+                                                "unused61",
+                                                "unused62",
+                                                "unused63",
+                                                "unused64",
+                                                "unused65",
+                                                "unused66",
+                                                "unused67",
+                                                "unused68",
+                                                "unused69",
+                                                "unused70",
+                                                "unused71",
+                                                "unused72",
+                                                "unused73",
+                                                "unused74",
+                                                "unused75",
+                                                "unused76",
+                                                "unused77",
+                                                "unused78",
+                                                "unused79",
+                                                "unused80",
+                                                "unused81",
+                                                "unused82",
+                                                "unused83",
+                                                "unused84",
+                                                "unused85",
+                                                "unused86",
+                                                "unused87",
+                                                "unused88",
+                                                "unused89",
+                                                "unused90",
+                                                "unused91",
+                                                "unused92",
+                                                "unused93",
+                                                "unused94",
+                                                "unused95",
+                                                "unused96",
+                                                "unused97",
+                                                "unused98",
+                                                "unused99",
+                                                "unused100",
+                                                "unused101",
+                                                "unused102",
+                                                "unused103",
+                                                "unused104",
+                                                "unused105",
+                                                "unused106",
+                                                "unused107",
+                                                "unused108",
+                                                "unused109",
+                                                "unused110",
+                                                "unused111",
+                                                "unused112",
+                                                "unused113",
+                                                "unused114",
+                                                "unused115",
+                                                "unused116",
+                                                "unused117",
+                                                "unused118",
+                                                "unused119",
+                                                "unused120",
+                                                "unused121",
+                                                "unused122",
+                                                "unused123",
+                                                "unused124",
+                                                "unused125",
+                                                "unused126",
+                                                "unused127",
+                                                "unused128",
+                                                "unused129",
+                                                "unused130",
+                                                "unused131",
+                                                "unused132",
+                                                "unused133",
+                                                "unused134",
+                                                "unused135",
+                                                "unused136",
+                                                "unused137",
+                                                "unused138",
+                                                "unused139",
+                                                "unused140",
+                                                "unused141",
+                                                "unused142",
+                                                "unused143",
+                                                "unused144",
+                                                "unused145",
+                                                "unused146",
+                                                "unused147",
+                                                "unused148",
+                                                "unused149",
+                                                "unused150",
+                                                "unused151",
+                                                "unused152",
+                                                "unused153",
+                                                "unused154",
+                                                "unused155",
+                                                "unused156",
+                                                "unused157",
+                                                "unused158",
+                                                "unused159",
+                                                "unused160",
+                                                "unused161",
+                                                "unused162",
+                                                "unused163",
+                                                "unused164",
+                                                "unused165",
+                                                "unused166",
+                                                "unused167",
+                                                "unused168",
+                                                "unused169",
+                                                "unused170",
+                                                "unused171",
+                                                "unused172",
+                                                "unused173",
+                                                "unused174",
+                                                "unused175",
+                                                "unused176",
+                                                "unused177",
+                                                "unused178",
+                                                "unused179",
+                                                "unused180",
+                                                "unused181",
+                                                "unused182",
+                                                "unused183",
+                                                "unused184",
+                                                "unused185",
+                                                "unused186",
+                                                "unused187",
+                                                "unused188",
+                                                "unused189",
+                                                "unused190",
+                                                "unused191",
+                                                "unused192",
+                                                "unused193",
+                                                "unused194",
+                                                "unused195",
+                                                "unused196",
+                                                "unused197",
+                                                "unused198",
+                                                "unused199",
+                                                "unused200",
+                                                "unused201",
+                                                "unused202",
+                                                "unused203",
+                                                "unused204",
+                                                "unused205",
+                                                "unused206",
+                                                "unused207",
+                                                "unused208",
+                                                "unused209",
+                                                "unused210",
+                                                "unused211",
+                                                "unused212",
+                                                "unused213",
+                                                "unused214",
+                                                "unused215",
+                                                "unused216",
+                                                "unused217",
+                                                "unused218",
+                                                "unused219",
+                                                "unused220",
+                                                "unused221",
+                                                "unused222",
+                                                "unused223",
+                                                "unused224",
+                                                "unused225",
+                                                "unused226",
+                                                "unused227",
+                                                "unused228",
+                                                "unused229",
+                                                "unused230",
+                                                "unused231",
+                                                "unused232",
+                                                "unused233",
+                                                "unused234",
+                                                "unused235",
+                                                "unused236",
+                                                "unused237",
+                                                "unused238",
+                                                "unused239",
+                                                "unused240",
+                                                "unused241",
+                                                "unused242",
+                                                "unused243",
+                                                "unused244",
+                                                "unused245",
+                                                "unused246",
+                                                "unused247",
+                                                "unused248",
+                                                "unused249",
+                                                "unused250",
+                                                "unused251",
+                                                "unused252",
+                                                "unused253",
+                                                "unused254",
+                                                "unused255"
+                                             ],
+                                             "type" : "string"
+                                          },
+                                          "format" : {
+                                             "description" : "Target Format.",
+                                             "enum" : [
+                                                "raw",
+                                                "qcow2",
+                                                "vmdk"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "storage" : {
+                                             "description" : "Target storage.",
+                                             "format" : "pve-storage-id",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "target-digest" : {
+                                             "description" : "Prevent changes if the current config file of the target VM has a\"\n\t\t    .\" different SHA1 digest. This can be used to detect concurrent modifications.",
+                                             "maxLength" : 40,
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "target-disk" : {
+                                             "description" : "The config key the disk will be moved to on the target VM (for example, ide0 or scsi1). Default is the source disk key.",
+                                             "enum" : [
+                                                "ide0",
+                                                "ide1",
+                                                "ide2",
+                                                "ide3",
+                                                "scsi0",
+                                                "scsi1",
+                                                "scsi2",
+                                                "scsi3",
+                                                "scsi4",
+                                                "scsi5",
+                                                "scsi6",
+                                                "scsi7",
+                                                "scsi8",
+                                                "scsi9",
+                                                "scsi10",
+                                                "scsi11",
+                                                "scsi12",
+                                                "scsi13",
+                                                "scsi14",
+                                                "scsi15",
+                                                "scsi16",
+                                                "scsi17",
+                                                "scsi18",
+                                                "scsi19",
+                                                "scsi20",
+                                                "scsi21",
+                                                "scsi22",
+                                                "scsi23",
+                                                "scsi24",
+                                                "scsi25",
+                                                "scsi26",
+                                                "scsi27",
+                                                "scsi28",
+                                                "scsi29",
+                                                "scsi30",
                                                 "virtio0",
                                                 "virtio1",
                                                 "virtio2",
@@ -16172,31 +21298,275 @@ var pveapi = [
                                                 "sata3",
                                                 "sata4",
                                                 "sata5",
-                                                "efidisk0"
-                                             ],
-                                             "type" : "string"
-                                          },
-                                          "format" : {
-                                             "description" : "Target Format.",
-                                             "enum" : [
-                                                "raw",
-                                                "qcow2",
-                                                "vmdk"
+                                                "efidisk0",
+                                                "tpmstate0",
+                                                "unused0",
+                                                "unused1",
+                                                "unused2",
+                                                "unused3",
+                                                "unused4",
+                                                "unused5",
+                                                "unused6",
+                                                "unused7",
+                                                "unused8",
+                                                "unused9",
+                                                "unused10",
+                                                "unused11",
+                                                "unused12",
+                                                "unused13",
+                                                "unused14",
+                                                "unused15",
+                                                "unused16",
+                                                "unused17",
+                                                "unused18",
+                                                "unused19",
+                                                "unused20",
+                                                "unused21",
+                                                "unused22",
+                                                "unused23",
+                                                "unused24",
+                                                "unused25",
+                                                "unused26",
+                                                "unused27",
+                                                "unused28",
+                                                "unused29",
+                                                "unused30",
+                                                "unused31",
+                                                "unused32",
+                                                "unused33",
+                                                "unused34",
+                                                "unused35",
+                                                "unused36",
+                                                "unused37",
+                                                "unused38",
+                                                "unused39",
+                                                "unused40",
+                                                "unused41",
+                                                "unused42",
+                                                "unused43",
+                                                "unused44",
+                                                "unused45",
+                                                "unused46",
+                                                "unused47",
+                                                "unused48",
+                                                "unused49",
+                                                "unused50",
+                                                "unused51",
+                                                "unused52",
+                                                "unused53",
+                                                "unused54",
+                                                "unused55",
+                                                "unused56",
+                                                "unused57",
+                                                "unused58",
+                                                "unused59",
+                                                "unused60",
+                                                "unused61",
+                                                "unused62",
+                                                "unused63",
+                                                "unused64",
+                                                "unused65",
+                                                "unused66",
+                                                "unused67",
+                                                "unused68",
+                                                "unused69",
+                                                "unused70",
+                                                "unused71",
+                                                "unused72",
+                                                "unused73",
+                                                "unused74",
+                                                "unused75",
+                                                "unused76",
+                                                "unused77",
+                                                "unused78",
+                                                "unused79",
+                                                "unused80",
+                                                "unused81",
+                                                "unused82",
+                                                "unused83",
+                                                "unused84",
+                                                "unused85",
+                                                "unused86",
+                                                "unused87",
+                                                "unused88",
+                                                "unused89",
+                                                "unused90",
+                                                "unused91",
+                                                "unused92",
+                                                "unused93",
+                                                "unused94",
+                                                "unused95",
+                                                "unused96",
+                                                "unused97",
+                                                "unused98",
+                                                "unused99",
+                                                "unused100",
+                                                "unused101",
+                                                "unused102",
+                                                "unused103",
+                                                "unused104",
+                                                "unused105",
+                                                "unused106",
+                                                "unused107",
+                                                "unused108",
+                                                "unused109",
+                                                "unused110",
+                                                "unused111",
+                                                "unused112",
+                                                "unused113",
+                                                "unused114",
+                                                "unused115",
+                                                "unused116",
+                                                "unused117",
+                                                "unused118",
+                                                "unused119",
+                                                "unused120",
+                                                "unused121",
+                                                "unused122",
+                                                "unused123",
+                                                "unused124",
+                                                "unused125",
+                                                "unused126",
+                                                "unused127",
+                                                "unused128",
+                                                "unused129",
+                                                "unused130",
+                                                "unused131",
+                                                "unused132",
+                                                "unused133",
+                                                "unused134",
+                                                "unused135",
+                                                "unused136",
+                                                "unused137",
+                                                "unused138",
+                                                "unused139",
+                                                "unused140",
+                                                "unused141",
+                                                "unused142",
+                                                "unused143",
+                                                "unused144",
+                                                "unused145",
+                                                "unused146",
+                                                "unused147",
+                                                "unused148",
+                                                "unused149",
+                                                "unused150",
+                                                "unused151",
+                                                "unused152",
+                                                "unused153",
+                                                "unused154",
+                                                "unused155",
+                                                "unused156",
+                                                "unused157",
+                                                "unused158",
+                                                "unused159",
+                                                "unused160",
+                                                "unused161",
+                                                "unused162",
+                                                "unused163",
+                                                "unused164",
+                                                "unused165",
+                                                "unused166",
+                                                "unused167",
+                                                "unused168",
+                                                "unused169",
+                                                "unused170",
+                                                "unused171",
+                                                "unused172",
+                                                "unused173",
+                                                "unused174",
+                                                "unused175",
+                                                "unused176",
+                                                "unused177",
+                                                "unused178",
+                                                "unused179",
+                                                "unused180",
+                                                "unused181",
+                                                "unused182",
+                                                "unused183",
+                                                "unused184",
+                                                "unused185",
+                                                "unused186",
+                                                "unused187",
+                                                "unused188",
+                                                "unused189",
+                                                "unused190",
+                                                "unused191",
+                                                "unused192",
+                                                "unused193",
+                                                "unused194",
+                                                "unused195",
+                                                "unused196",
+                                                "unused197",
+                                                "unused198",
+                                                "unused199",
+                                                "unused200",
+                                                "unused201",
+                                                "unused202",
+                                                "unused203",
+                                                "unused204",
+                                                "unused205",
+                                                "unused206",
+                                                "unused207",
+                                                "unused208",
+                                                "unused209",
+                                                "unused210",
+                                                "unused211",
+                                                "unused212",
+                                                "unused213",
+                                                "unused214",
+                                                "unused215",
+                                                "unused216",
+                                                "unused217",
+                                                "unused218",
+                                                "unused219",
+                                                "unused220",
+                                                "unused221",
+                                                "unused222",
+                                                "unused223",
+                                                "unused224",
+                                                "unused225",
+                                                "unused226",
+                                                "unused227",
+                                                "unused228",
+                                                "unused229",
+                                                "unused230",
+                                                "unused231",
+                                                "unused232",
+                                                "unused233",
+                                                "unused234",
+                                                "unused235",
+                                                "unused236",
+                                                "unused237",
+                                                "unused238",
+                                                "unused239",
+                                                "unused240",
+                                                "unused241",
+                                                "unused242",
+                                                "unused243",
+                                                "unused244",
+                                                "unused245",
+                                                "unused246",
+                                                "unused247",
+                                                "unused248",
+                                                "unused249",
+                                                "unused250",
+                                                "unused251",
+                                                "unused252",
+                                                "unused253",
+                                                "unused254",
+                                                "unused255"
                                              ],
                                              "optional" : 1,
                                              "type" : "string"
                                           },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "storage" : {
-                                             "description" : "Target storage.",
-                                             "format" : "pve-storage-id",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
+                                          "target-vmid" : {
+                                             "description" : "The (unique) ID of the VM.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
@@ -16209,23 +21579,13 @@ var pveapi = [
                                     },
                                     "permissions" : {
                                        "check" : [
-                                          "and",
-                                          [
-                                             "perm",
-                                             "/vms/{vmid}",
-                                             [
-                                                "VM.Config.Disk"
-                                             ]
-                                          ],
+                                          "perm",
+                                          "/vms/{vmid}",
                                           [
-                                             "perm",
-                                             "/storage/{storage}",
-                                             [
-                                                "Datastore.AllocateSpace"
-                                             ]
+                                             "VM.Config.Disk"
                                           ]
                                        ],
-                                       "description" : "You need 'VM.Config.Disk' permissions on /vms/{vmid}, and 'Datastore.AllocateSpace' permissions on the storage."
+                                       "description" : "You need 'VM.Config.Disk' permissions on /vms/{vmid}, and 'Datastore.AllocateSpace' permissions on the storage. To move a disk to another VM, you need the permissions on the target VM as well."
                                     },
                                     "protected" : 1,
                                     "proxyto" : "node",
@@ -16241,7 +21601,76 @@ var pveapi = [
                            },
                            {
                               "info" : {
+                                 "GET" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Get preconditions for migration.",
+                                    "method" : "GET",
+                                    "name" : "migrate_vm_precondition",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "target" : {
+                                             "description" : "Target node.",
+                                             "format" : "pve-node",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "vmid" : {
+                                             "description" : "The (unique) ID of the VM.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/vms/{vmid}",
+                                          [
+                                             "VM.Migrate"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "properties" : {
+                                          "allowed_nodes" : {
+                                             "description" : "List nodes allowed for offline migration, only passed if VM is offline",
+                                             "optional" : 1,
+                                             "type" : "array"
+                                          },
+                                          "local_disks" : {
+                                             "description" : "List local disks including CD-Rom, unsused and not referenced disks",
+                                             "type" : "array"
+                                          },
+                                          "local_resources" : {
+                                             "description" : "List local resources e.g. pci, usb",
+                                             "type" : "array"
+                                          },
+                                          "not_allowed_nodes" : {
+                                             "description" : "List not allowed nodes with additional informations, only passed if VM is offline",
+                                             "optional" : 1,
+                                             "type" : "object"
+                                          },
+                                          "running" : {
+                                             "type" : "boolean"
+                                          }
+                                       },
+                                       "type" : "object"
+                                    }
+                                 },
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Migrate virtual machine. Creates a new migration task.",
                                     "method" : "POST",
                                     "name" : "migrate_vm",
@@ -16285,7 +21714,7 @@ var pveapi = [
                                              "typetext" : "<string>"
                                           },
                                           "online" : {
-                                             "description" : "Use online/live migration.",
+                                             "description" : "Use online/live migration if VM is running. Ignored if VM is stopped.",
                                              "optional" : 1,
                                              "type" : "boolean",
                                              "typetext" : "<boolean>"
@@ -16297,8 +21726,8 @@ var pveapi = [
                                              "typetext" : "<string>"
                                           },
                                           "targetstorage" : {
-                                             "description" : "Default target storage.",
-                                             "format" : "pve-storage-id",
+                                             "description" : "Mapping from source to target storages. Providing only a single storage ID maps all source storages to that storage. Providing the special value '1' will map each source storage to itself.",
+                                             "format" : "storage-pair-list",
                                              "optional" : 1,
                                              "type" : "string",
                                              "typetext" : "<string>"
@@ -16342,6 +21771,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Execute Qemu monitor commands.",
                                     "method" : "POST",
                                     "name" : "monitor",
@@ -16392,6 +21822,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "PUT" : {
+                                    "allowtoken" : 1,
                                     "description" : "Extend volume size.",
                                     "method" : "PUT",
                                     "name" : "resize_vm",
@@ -16426,6 +21857,23 @@ var pveapi = [
                                                 "scsi11",
                                                 "scsi12",
                                                 "scsi13",
+                                                "scsi14",
+                                                "scsi15",
+                                                "scsi16",
+                                                "scsi17",
+                                                "scsi18",
+                                                "scsi19",
+                                                "scsi20",
+                                                "scsi21",
+                                                "scsi22",
+                                                "scsi23",
+                                                "scsi24",
+                                                "scsi25",
+                                                "scsi26",
+                                                "scsi27",
+                                                "scsi28",
+                                                "scsi29",
+                                                "scsi30",
                                                 "virtio0",
                                                 "virtio1",
                                                 "virtio2",
@@ -16448,7 +21896,8 @@ var pveapi = [
                                                 "sata3",
                                                 "sata4",
                                                 "sata5",
-                                                "efidisk0"
+                                                "efidisk0",
+                                                "tpmstate0"
                                              ],
                                              "type" : "string"
                                           },
@@ -16505,6 +21954,7 @@ var pveapi = [
                                        {
                                           "info" : {
                                              "GET" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Get snapshot configuration",
                                                 "method" : "GET",
                                                 "name" : "get_snapshot_config",
@@ -16539,7 +21989,8 @@ var pveapi = [
                                                       "/vms/{vmid}",
                                                       [
                                                          "VM.Snapshot",
-                                                         "VM.Snapshot.Rollback"
+                                                         "VM.Snapshot.Rollback",
+                                                         "VM.Audit"
                                                       ],
                                                       "any",
                                                       1
@@ -16551,6 +22002,7 @@ var pveapi = [
                                                 }
                                              },
                                              "PUT" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Update snapshot metadata.",
                                                 "method" : "PUT",
                                                 "name" : "update_snapshot_config",
@@ -16608,6 +22060,7 @@ var pveapi = [
                                        {
                                           "info" : {
                                              "POST" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Rollback VM state to specified snapshot.",
                                                 "method" : "POST",
                                                 "name" : "rollback",
@@ -16663,6 +22116,7 @@ var pveapi = [
                                     ],
                                     "info" : {
                                        "DELETE" : {
+                                          "allowtoken" : 1,
                                           "description" : "Delete a VM snapshot.",
                                           "method" : "DELETE",
                                           "name" : "delsnapshot",
@@ -16714,6 +22168,7 @@ var pveapi = [
                                           }
                                        },
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "",
                                           "method" : "GET",
                                           "name" : "snapshot_cmd_idx",
@@ -16767,6 +22222,7 @@ var pveapi = [
                               ],
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "List all snapshots.",
                                     "method" : "GET",
                                     "name" : "snapshot_list",
@@ -16839,6 +22295,7 @@ var pveapi = [
                                     }
                                  },
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Snapshot a VM.",
                                     "method" : "POST",
                                     "name" : "snapshot",
@@ -16903,6 +22360,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Create a Template.",
                                     "method" : "POST",
                                     "name" : "template",
@@ -16930,6 +22388,23 @@ var pveapi = [
                                                 "scsi11",
                                                 "scsi12",
                                                 "scsi13",
+                                                "scsi14",
+                                                "scsi15",
+                                                "scsi16",
+                                                "scsi17",
+                                                "scsi18",
+                                                "scsi19",
+                                                "scsi20",
+                                                "scsi21",
+                                                "scsi22",
+                                                "scsi23",
+                                                "scsi24",
+                                                "scsi25",
+                                                "scsi26",
+                                                "scsi27",
+                                                "scsi28",
+                                                "scsi29",
+                                                "scsi30",
                                                 "virtio0",
                                                 "virtio1",
                                                 "virtio2",
@@ -16952,7 +22427,8 @@ var pveapi = [
                                                 "sata3",
                                                 "sata4",
                                                 "sata5",
-                                                "efidisk0"
+                                                "efidisk0",
+                                                "tpmstate0"
                                              ],
                                              "optional" : 1,
                                              "type" : "string"
@@ -16985,29 +22461,104 @@ var pveapi = [
                                     "protected" : 1,
                                     "proxyto" : "node",
                                     "returns" : {
-                                       "type" : "null"
+                                       "description" : "the task ID.",
+                                       "type" : "string"
                                     }
                                  }
                               },
                               "leaf" : 1,
                               "path" : "/nodes/{node}/qemu/{vmid}/template",
                               "text" : "template"
+                           },
+                           {
+                              "children" : [
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "allowtoken" : 1,
+                                          "description" : "Get automatically generated cloudinit config.",
+                                          "method" : "GET",
+                                          "name" : "cloudinit_generated_config_dump",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "type" : {
+                                                   "description" : "Config type.",
+                                                   "enum" : [
+                                                      "user",
+                                                      "network",
+                                                      "meta"
+                                                   ],
+                                                   "type" : "string"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Audit"
+                                                ]
+                                             ]
+                                          },
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "type" : "string"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/cloudinit/dump",
+                                    "text" : "dump"
+                                 }
+                              ],
+                              "leaf" : 0,
+                              "path" : "/nodes/{node}/qemu/{vmid}/cloudinit",
+                              "text" : "cloudinit"
                            }
                         ],
                         "info" : {
                            "DELETE" : {
-                              "description" : "Destroy the vm (also delete all used/owned volumes).",
+                              "allowtoken" : 1,
+                              "description" : "Destroy the VM and  all used/owned volumes. Removes any VM specific permissions and firewall rules",
                               "method" : "DELETE",
                               "name" : "destroy_vm",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
+                                    "destroy-unreferenced-disks" : {
+                                       "default" : 0,
+                                       "description" : "If set, destroy additionally all disks not referenced in the config but with a matching VMID from all enabled storages.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
                                        "type" : "string",
                                        "typetext" : "<string>"
                                     },
+                                    "purge" : {
+                                       "description" : "Remove VMID from configurations, like backup & replication jobs and HA.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
                                     "skiplock" : {
                                        "description" : "Ignore locks - only root is allowed to use this option.",
                                        "optional" : 1,
@@ -17039,6 +22590,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Directory index",
                               "method" : "GET",
                               "name" : "vmdiridx",
@@ -17090,6 +22642,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Virtual machine index (per node).",
                         "method" : "GET",
                         "name" : "vmlist",
@@ -17156,6 +22709,16 @@ var pveapi = [
                                     "optional" : 1,
                                     "type" : "string"
                                  },
+                                 "running-machine" : {
+                                    "description" : "The currently running machine type (if running).",
+                                    "optional" : 1,
+                                    "type" : "string"
+                                 },
+                                 "running-qemu" : {
+                                    "description" : "The currently running QEMU version (if running).",
+                                    "optional" : 1,
+                                    "type" : "string"
+                                 },
                                  "status" : {
                                     "description" : "Qemu process status.",
                                     "enum" : [
@@ -17164,6 +22727,11 @@ var pveapi = [
                                     ],
                                     "type" : "string"
                                  },
+                                 "tags" : {
+                                    "description" : "The current configured tags, if any",
+                                    "optional" : 1,
+                                    "type" : "string"
+                                 },
                                  "uptime" : {
                                     "description" : "Uptime.",
                                     "optional" : 1,
@@ -17189,6 +22757,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Create or restore a virtual machine.",
                         "method" : "POST",
                         "name" : "create_vm",
@@ -17203,24 +22772,34 @@ var pveapi = [
                                  "typetext" : "<boolean>"
                               },
                               "agent" : {
-                                 "description" : "Enable/disable Qemu GuestAgent and its properties.",
+                                 "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
                                  "format" : {
                                     "enabled" : {
                                        "default" : 0,
                                        "default_key" : 1,
-                                       "description" : "Enable/disable Qemu GuestAgent.",
+                                       "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
                                        "type" : "boolean"
                                     },
                                     "fstrim_cloned_disks" : {
                                        "default" : 0,
-                                       "description" : "Run fstrim after cloning/moving a disk.",
+                                       "description" : "Run fstrim after moving a disk or migrating the VM.",
                                        "optional" : 1,
                                        "type" : "boolean"
+                                    },
+                                    "type" : {
+                                       "default" : "virtio",
+                                       "description" : "Select the agent type",
+                                       "enum" : [
+                                          "virtio",
+                                          "isa"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
                                     }
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>]"
+                                 "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
                               },
                               "arch" : {
                                  "description" : "Virtual processor architecture. Defaults to the host.",
@@ -17232,7 +22811,7 @@ var pveapi = [
                                  "type" : "string"
                               },
                               "archive" : {
-                                 "description" : "The backup file.",
+                                 "description" : "The backup archive. Either the file system path to a .tar or .vma file (use '-' to pipe data from stdin) or a proxmox storage backup volume identifier.",
                                  "maxLength" : 255,
                                  "optional" : 1,
                                  "type" : "string",
@@ -17245,6 +22824,33 @@ var pveapi = [
                                  "typetext" : "<string>",
                                  "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
                               },
+                              "audio0" : {
+                                 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
+                                 "format" : {
+                                    "device" : {
+                                       "description" : "Configure an audio device.",
+                                       "enum" : [
+                                          "ich9-intel-hda",
+                                          "intel-hda",
+                                          "AC97"
+                                       ],
+                                       "type" : "string"
+                                    },
+                                    "driver" : {
+                                       "default" : "spice",
+                                       "description" : "Driver backend for the audio device.",
+                                       "enum" : [
+                                          "spice",
+                                          "none"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
+                              },
                               "autostart" : {
                                  "default" : 0,
                                  "description" : "Automatic restart after crash (currently ignored).",
@@ -17270,14 +22876,14 @@ var pveapi = [
                                  "type" : "string"
                               },
                               "boot" : {
-                                 "default" : "cdn",
-                                 "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
+                                 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
+                                 "format" : "pve-qm-boot",
                                  "optional" : 1,
-                                 "pattern" : "[acdn]{1,4}",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
                               },
                               "bootdisk" : {
-                                 "description" : "Enable booting from specified disk.",
+                                 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
                                  "format" : "pve-qm-bootdisk",
                                  "optional" : 1,
                                  "pattern" : "(ide|sata|scsi|virtio)\\d+",
@@ -17303,7 +22909,7 @@ var pveapi = [
                                  "format" : "pve-qm-cicustom",
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>]"
+                                 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
                               },
                               "cipassword" : {
                                  "description" : "cloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.",
@@ -17315,7 +22921,8 @@ var pveapi = [
                                  "description" : "Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.",
                                  "enum" : [
                                     "configdrive2",
-                                    "nocloud"
+                                    "nocloud",
+                                    "opennebula"
                                  ],
                                  "optional" : 1,
                                  "type" : "string"
@@ -17336,82 +22943,10 @@ var pveapi = [
                               },
                               "cpu" : {
                                  "description" : "Emulated CPU type.",
-                                 "format" : {
-                                    "cputype" : {
-                                       "default" : "kvm64",
-                                       "default_key" : 1,
-                                       "description" : "Emulated CPU type.",
-                                       "enum" : [
-                                          "486",
-                                          "athlon",
-                                          "Broadwell",
-                                          "Broadwell-IBRS",
-                                          "Broadwell-noTSX",
-                                          "Broadwell-noTSX-IBRS",
-                                          "Conroe",
-                                          "core2duo",
-                                          "coreduo",
-                                          "EPYC",
-                                          "EPYC-IBPB",
-                                          "Haswell",
-                                          "Haswell-IBRS",
-                                          "Haswell-noTSX",
-                                          "Haswell-noTSX-IBRS",
-                                          "host",
-                                          "IvyBridge",
-                                          "IvyBridge-IBRS",
-                                          "kvm32",
-                                          "kvm64",
-                                          "max",
-                                          "Nehalem",
-                                          "Nehalem-IBRS",
-                                          "Opteron_G1",
-                                          "Opteron_G2",
-                                          "Opteron_G3",
-                                          "Opteron_G4",
-                                          "Opteron_G5",
-                                          "Penryn",
-                                          "pentium",
-                                          "pentium2",
-                                          "pentium3",
-                                          "phenom",
-                                          "qemu32",
-                                          "qemu64",
-                                          "SandyBridge",
-                                          "SandyBridge-IBRS",
-                                          "Skylake-Client",
-                                          "Skylake-Client-IBRS",
-                                          "Skylake-Server",
-                                          "Skylake-Server-IBRS",
-                                          "Westmere",
-                                          "Westmere-IBRS"
-                                       ],
-                                       "type" : "string"
-                                    },
-                                    "flags" : {
-                                       "description" : "List of additional CPU flags separated by ';'. Use '+FLAG' to enable, '-FLAG' to disable a flag. Currently supported flags: 'pcid', 'spec-ctrl', 'ibpb', 'ssbd', 'virt-ssbd', 'amd-ssbd', 'amd-no-ssb', 'pdpe1gb'.",
-                                       "format_description" : "+FLAG[;-FLAG...]",
-                                       "optional" : 1,
-                                       "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb))(;(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb)))*)",
-                                       "type" : "string"
-                                    },
-                                    "hidden" : {
-                                       "default" : 0,
-                                       "description" : "Do not identify as a KVM virtual machine.",
-                                       "optional" : 1,
-                                       "type" : "boolean"
-                                    },
-                                    "hv-vendor-id" : {
-                                       "description" : "The Hyper-V vendor ID. Some drivers or programs inside Windows guests need a specific ID.",
-                                       "format_description" : "vendor-id",
-                                       "optional" : 1,
-                                       "pattern" : "(?^:[a-zA-Z0-9]{1,12})",
-                                       "type" : "string"
-                                    }
-                                 },
+                                 "format" : "pve-vm-cpu-conf",
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[cputype=]<enum> [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>]"
+                                 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
                               },
                               "cpulimit" : {
                                  "default" : 0,
@@ -17424,24 +22959,35 @@ var pveapi = [
                                  "verbose_description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit."
                               },
                               "cpuunits" : {
-                                 "default" : 1024,
-                                 "description" : "CPU weight for a VM.",
+                                 "default" : "cgroup v1: 1024, cgroup v2: 100",
+                                 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
                                  "maximum" : 262144,
-                                 "minimum" : 2,
+                                 "minimum" : 1,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "<integer> (2 - 262144)",
+                                 "typetext" : "<integer> (1 - 262144)",
                                  "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs."
                               },
                               "description" : {
-                                 "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file.",
+                                 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
+                                 "maxLength" : 8192,
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
                               "efidisk0" : {
-                                 "description" : "Configure a Disk for storing EFI vars",
+                                 "description" : "Configure a Disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
                                  "format" : {
+                                    "efitype" : {
+                                       "default" : "2m",
+                                       "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified.",
+                                       "enum" : [
+                                          "2m",
+                                          "4m"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
                                     "file" : {
                                        "default_key" : 1,
                                        "description" : "The drive's backing volume.",
@@ -17463,6 +23009,19 @@ var pveapi = [
                                        "optional" : 1,
                                        "type" : "string"
                                     },
+                                    "import-from" : {
+                                       "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+                                       "format" : "pve-volume-id-or-absolute-path",
+                                       "format_description" : "source volume",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "pre-enrolled-keys" : {
+                                       "default" : 0,
+                                       "description" : "Use am EFI vars template with distribution-specific and Microsoft Standard keys enrolled, if used with 'efitype=4m'. Note that this will enable Secure Boot by default, though it can still be turned off from within the VM.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
                                     "size" : {
                                        "description" : "Disk size. This is purely informational and has no effect.",
                                        "format" : "disk-size",
@@ -17476,7 +23035,7 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[file=]<volume> [,format=<enum>] [,size=<DiskSize>]"
+                                 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
                               },
                               "force" : {
                                  "description" : "Allow to overwrite existing VM.",
@@ -17503,12 +23062,12 @@ var pveapi = [
                                  "format" : "pve-qm-hostpci",
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,x-vga=<1|0>]",
+                                 "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
                                  "verbose_description" : "Map host PCI devices into guest.\n\nNOTE: This option allows direct access to host hardware. So it is no longer\npossible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
                               },
                               "hotplug" : {
                                  "default" : "network,disk,usb",
-                                 "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Value '1' is an alias for the default 'network,disk,usb'.",
+                                 "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`.",
                                  "format" : "pve-hotplug-features",
                                  "optional" : 1,
                                  "type" : "string",
@@ -17525,13 +23084,14 @@ var pveapi = [
                                  "type" : "string"
                               },
                               "ide[n]" : {
-                                 "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
+                                 "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
                                  "format" : {
                                     "aio" : {
                                        "description" : "AIO type to use.",
                                        "enum" : [
                                           "native",
-                                          "threads"
+                                          "threads",
+                                          "io_uring"
                                        ],
                                        "optional" : 1,
                                        "type" : "string"
@@ -17643,6 +23203,13 @@ var pveapi = [
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "import-from" : {
+                                       "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+                                       "format" : "pve-volume-id-or-absolute-path",
+                                       "format_description" : "source volume",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
                                     "iops" : {
                                        "description" : "Maximum r/w I/O in operations per second.",
                                        "format_description" : "iops",
@@ -17847,10 +23414,10 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
+                                 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
                               },
                               "ipconfig[n]" : {
-                                 "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit gateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using dhcp on IPv4.\n",
+                                 "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit\ngateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration. This requires\ncloud-init 19.4 or newer.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n",
                                  "format" : "pve-qm-ipconfig",
                                  "optional" : 1,
                                  "type" : "string",
@@ -17876,9 +23443,16 @@ var pveapi = [
                                  "type" : "string",
                                  "typetext" : "size=<integer> [,name=<string>]"
                               },
+                              "keephugepages" : {
+                                 "default" : 0,
+                                 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
                               "keyboard" : {
                                  "default" : null,
-                                 "description" : "Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.cfg' configuration file.It should not be necessary to set it.",
+                                 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
                                  "enum" : [
                                     "de",
                                     "de-ch",
@@ -17916,8 +23490,15 @@ var pveapi = [
                                  "type" : "boolean",
                                  "typetext" : "<boolean>"
                               },
+                              "live-restore" : {
+                                 "description" : "Start the VM immediately from the backup and restore in background. PBS only.",
+                                 "optional" : 1,
+                                 "requires" : "archive",
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
                               "localtime" : {
-                                 "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.",
+                                 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
                                  "optional" : 1,
                                  "type" : "boolean",
                                  "typetext" : "<boolean>"
@@ -17942,7 +23523,7 @@ var pveapi = [
                                  "description" : "Specifies the Qemu machine type.",
                                  "maxLength" : 40,
                                  "optional" : 1,
-                                 "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?|virt(?:-\\d+\\.\\d+)?)",
+                                 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
                                  "type" : "string"
                               },
                               "memory" : {
@@ -17988,6 +23569,7 @@ var pveapi = [
                                  "format" : {
                                     "bridge" : {
                                        "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2   Gateway\n 10.0.2.3   DNS Server\n 10.0.2.4   SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n",
+                                       "format" : "pve-bridge-id",
                                        "format_description" : "bridge",
                                        "optional" : 1,
                                        "type" : "string"
@@ -18008,6 +23590,10 @@ var pveapi = [
                                        "alias" : "macaddr",
                                        "keyAlias" : "model"
                                     },
+                                    "e1000e" : {
+                                       "alias" : "macaddr",
+                                       "keyAlias" : "model"
+                                    },
                                     "firewall" : {
                                        "description" : "Whether this interface should be protected by the firewall.",
                                        "optional" : 1,
@@ -18042,22 +23628,30 @@ var pveapi = [
                                        "default_key" : 1,
                                        "description" : "Network Card Model. The 'virtio' model provides the best performance with very low CPU overhead. If your guest does not support this driver, it is usually best to use 'e1000'.",
                                        "enum" : [
-                                          "rtl8139",
-                                          "ne2k_pci",
                                           "e1000",
-                                          "pcnet",
-                                          "virtio",
-                                          "ne2k_isa",
+                                          "e1000-82540em",
+                                          "e1000-82544gc",
+                                          "e1000-82545em",
+                                          "e1000e",
                                           "i82551",
                                           "i82557b",
                                           "i82559er",
-                                          "vmxnet3",
-                                          "e1000-82540em",
-                                          "e1000-82544gc",
-                                          "e1000-82545em"
+                                          "ne2k_isa",
+                                          "ne2k_pci",
+                                          "pcnet",
+                                          "rtl8139",
+                                          "virtio",
+                                          "vmxnet3"
                                        ],
                                        "type" : "string"
                                     },
+                                    "mtu" : {
+                                       "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
+                                       "maximum" : 65520,
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "ne2k_isa" : {
                                        "alias" : "macaddr",
                                        "keyAlias" : "model"
@@ -18112,7 +23706,7 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
+                                 "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,mtu=<integer>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
                               },
                               "node" : {
                                  "description" : "The cluster node name.",
@@ -18182,20 +23776,21 @@ var pveapi = [
                                     "win7",
                                     "win8",
                                     "win10",
+                                    "win11",
                                     "l24",
                                     "l26",
                                     "solaris"
                                  ],
                                  "optional" : 1,
                                  "type" : "string",
-                                 "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6/3.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
+                                 "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 5.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
                               },
                               "parallel[n]" : {
                                  "description" : "Map host parallel devices (n is 0 to 2).",
                                  "optional" : 1,
                                  "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
                                  "type" : "string",
-                                 "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+                                 "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
                               },
                               "pool" : {
                                  "description" : "Add the VM to the specified pool.",
@@ -18218,14 +23813,45 @@ var pveapi = [
                                  "type" : "boolean",
                                  "typetext" : "<boolean>"
                               },
+                              "rng0" : {
+                                 "description" : "Configure a VirtIO-based Random Number Generator.",
+                                 "format" : {
+                                    "max_bytes" : {
+                                       "default" : 1024,
+                                       "description" : "Maximum bytes of entropy allowed to get injected into the guest every 'period' milliseconds. Prefer a lower value when using '/dev/random' as source. Use `0` to disable limiting (potentially dangerous!).",
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
+                                    "period" : {
+                                       "default" : 1000,
+                                       "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
+                                    "source" : {
+                                       "default_key" : 1,
+                                       "description" : "The file on the host to gather entropy from. In most cases '/dev/urandom' should be preferred over '/dev/random' to avoid entropy-starvation issues on the host. Using urandom does *not* decrease security in any meaningful way, as it's still seeded from real entropy, and the bytes provided will most likely be mixed with real entropy on the guest as well. '/dev/hwrng' can be used to pass through a hardware RNG from the host.",
+                                       "enum" : [
+                                          "/dev/urandom",
+                                          "/dev/random",
+                                          "/dev/hwrng"
+                                       ],
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
+                              },
                               "sata[n]" : {
-                                 "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
+                                 "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
                                  "format" : {
                                     "aio" : {
                                        "description" : "AIO type to use.",
                                        "enum" : [
                                           "native",
-                                          "threads"
+                                          "threads",
+                                          "io_uring"
                                        ],
                                        "optional" : 1,
                                        "type" : "string"
@@ -18337,6 +23963,13 @@ var pveapi = [
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "import-from" : {
+                                       "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+                                       "format" : "pve-volume-id-or-absolute-path",
+                                       "format_description" : "source volume",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
                                     "iops" : {
                                        "description" : "Maximum r/w I/O in operations per second.",
                                        "format_description" : "iops",
@@ -18533,16 +24166,17 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
+                                 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
                               },
                               "scsi[n]" : {
-                                 "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
+                                 "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
                                  "format" : {
                                     "aio" : {
                                        "description" : "AIO type to use.",
                                        "enum" : [
                                           "native",
-                                          "threads"
+                                          "threads",
+                                          "io_uring"
                                        ],
                                        "optional" : 1,
                                        "type" : "string"
@@ -18654,6 +24288,13 @@ var pveapi = [
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "import-from" : {
+                                       "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+                                       "format" : "pve-volume-id-or-absolute-path",
+                                       "format_description" : "source volume",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
                                     "iops" : {
                                        "description" : "Maximum r/w I/O in operations per second.",
                                        "format_description" : "iops",
@@ -18790,6 +24431,11 @@ var pveapi = [
                                        "optional" : 1,
                                        "type" : "string"
                                     },
+                                    "ro" : {
+                                       "description" : "Whether the drive is read-only.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
                                     "scsiblock" : {
                                        "default" : 0,
                                        "description" : "whether to use scsi-block for full passthrough of host block device\n\nWARNING: can lead to I/O errors in combination with low memory or high memory fragmentation on host",
@@ -18867,7 +24513,7 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
+                                 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
                               },
                               "scsihw" : {
                                  "default" : "lsi",
@@ -18894,7 +24540,7 @@ var pveapi = [
                                  "optional" : 1,
                                  "pattern" : "(/dev/.+|socket)",
                                  "type" : "string",
-                                 "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+                                 "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines -\nuse with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
                               },
                               "shares" : {
                                  "default" : 1000,
@@ -18908,10 +24554,10 @@ var pveapi = [
                               "smbios1" : {
                                  "description" : "Specify SMBIOS type 1 fields.",
                                  "format" : "pve-qm-smbios1",
-                                 "maxLength" : 256,
+                                 "maxLength" : 512,
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[family=<string>] [,manufacturer=<string>] [,product=<string>] [,serial=<string>] [,sku=<string>] [,uuid=<UUID>] [,version=<string>]"
+                                 "typetext" : "[base64=<1|0>] [,family=<Base64 encoded string>] [,manufacturer=<Base64 encoded string>] [,product=<Base64 encoded string>] [,serial=<Base64 encoded string>] [,sku=<Base64 encoded string>] [,uuid=<UUID>] [,version=<Base64 encoded string>]"
                               },
                               "smp" : {
                                  "default" : 1,
@@ -18929,6 +24575,31 @@ var pveapi = [
                                  "type" : "integer",
                                  "typetext" : "<integer> (1 - N)"
                               },
+                              "spice_enhancements" : {
+                                 "description" : "Configure additional enhancements for SPICE.",
+                                 "format" : {
+                                    "foldersharing" : {
+                                       "default" : "0",
+                                       "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
+                                    "videostreaming" : {
+                                       "default" : "off",
+                                       "description" : "Enable video streaming. Uses compression for detected video streams.",
+                                       "enum" : [
+                                          "off",
+                                          "all",
+                                          "filter"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
+                              },
                               "sshkeys" : {
                                  "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
                                  "format" : "urlencoded",
@@ -18945,7 +24616,7 @@ var pveapi = [
                               },
                               "startdate" : {
                                  "default" : "now",
-                                 "description" : "Set the initial date of the real time clock. Valid format for date are: 'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
+                                 "description" : "Set the initial date of the real time clock. Valid format for date are:'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
                                  "optional" : 1,
                                  "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
                                  "type" : "string",
@@ -18971,7 +24642,14 @@ var pveapi = [
                                  "optional" : 1,
                                  "type" : "boolean",
                                  "typetext" : "<boolean>",
-                                 "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (-vga=qxl)."
+                                 "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (`qm set <vmid> --vga qxl`)."
+                              },
+                              "tags" : {
+                                 "description" : "Tags of the VM. This is only meta information.",
+                                 "format" : "pve-tag-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "tdf" : {
                                  "default" : 0,
@@ -18987,6 +24665,48 @@ var pveapi = [
                                  "type" : "boolean",
                                  "typetext" : "<boolean>"
                               },
+                              "tpmstate0" : {
+                                 "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and 4 MiB will be used instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
+                                 "format" : {
+                                    "file" : {
+                                       "default_key" : 1,
+                                       "description" : "The drive's backing volume.",
+                                       "format" : "pve-volume-id-or-qm-path",
+                                       "format_description" : "volume",
+                                       "type" : "string"
+                                    },
+                                    "import-from" : {
+                                       "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+                                       "format" : "pve-volume-id-or-absolute-path",
+                                       "format_description" : "source volume",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "size" : {
+                                       "description" : "Disk size. This is purely informational and has no effect.",
+                                       "format" : "disk-size",
+                                       "format_description" : "DiskSize",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "version" : {
+                                       "default" : "v2.0",
+                                       "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
+                                       "enum" : [
+                                          "v1.2",
+                                          "v2.0"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "volume" : {
+                                       "alias" : "file"
+                                    }
+                                 },
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
+                              },
                               "unique" : {
                                  "description" : "Assign a unique random ethernet address.",
                                  "optional" : 1,
@@ -18996,24 +24716,35 @@ var pveapi = [
                               },
                               "unused[n]" : {
                                  "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
-                                 "format" : "pve-volume-id",
+                                 "format" : {
+                                    "file" : {
+                                       "default_key" : 1,
+                                       "description" : "The drive's backing volume.",
+                                       "format" : "pve-volume-id",
+                                       "format_description" : "volume",
+                                       "type" : "string"
+                                    },
+                                    "volume" : {
+                                       "alias" : "file"
+                                    }
+                                 },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "<string>"
+                                 "typetext" : "[file=]<volume>"
                               },
                               "usb[n]" : {
                                  "description" : "Configure an USB device (n is 0 to 4).",
                                  "format" : {
                                     "host" : {
                                        "default_key" : 1,
-                                       "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
+                                       "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
                                        "format" : "pve-qm-usb-device",
                                        "format_description" : "HOSTUSBDEVICE|spice",
                                        "type" : "string"
                                     },
                                     "usb3" : {
                                        "default" : 0,
-                                       "description" : "Specifies whether if given host option is a USB3 device or port (this does currently not work reliably with spice redirection and is then ignored).",
+                                       "description" : "Specifies whether if given host option is a USB3 device or port.",
                                        "optional" : 1,
                                        "type" : "boolean"
                                     }
@@ -19057,6 +24788,7 @@ var pveapi = [
                                           "serial3",
                                           "std",
                                           "virtio",
+                                          "virtio-gl",
                                           "vmware"
                                        ],
                                        "optional" : 1,
@@ -19069,13 +24801,14 @@ var pveapi = [
                                  "verbose_description" : "Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is 'std' for all OS types besides some Windows versions (XP and older) which use 'cirrus'. The 'qxl' option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays them self.\nYou can also run without any graphic card, using a serial device as terminal."
                               },
                               "virtio[n]" : {
-                                 "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
+                                 "description" : "Use volume as VIRTIO hard disk (n is 0 to 15). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
                                  "format" : {
                                     "aio" : {
                                        "description" : "AIO type to use.",
                                        "enum" : [
                                           "native",
-                                          "threads"
+                                          "threads",
+                                          "io_uring"
                                        ],
                                        "optional" : 1,
                                        "type" : "string"
@@ -19187,6 +24920,13 @@ var pveapi = [
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "import-from" : {
+                                       "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
+                                       "format" : "pve-volume-id-or-absolute-path",
+                                       "format_description" : "source volume",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
                                     "iops" : {
                                        "description" : "Maximum r/w I/O in operations per second.",
                                        "format_description" : "iops",
@@ -19317,6 +25057,11 @@ var pveapi = [
                                        "optional" : 1,
                                        "type" : "string"
                                     },
+                                    "ro" : {
+                                       "description" : "Whether the drive is read-only.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
                                     "secs" : {
                                        "description" : "Force the drive's physical geometry to have a specific sector count.",
                                        "optional" : 1,
@@ -19376,7 +25121,7 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+                                 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
                               },
                               "vmgenid" : {
                                  "default" : "1 (autogenerated)",
@@ -19385,7 +25130,7 @@ var pveapi = [
                                  "optional" : 1,
                                  "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
                                  "type" : "string",
-                                 "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done throug API/CLI create or update methods, but not when manually editing the config file."
+                                 "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done through API/CLI create or update methods, but not when manually editing the config file."
                               },
                               "vmid" : {
                                  "description" : "The (unique) ID of the VM.",
@@ -19433,12 +25178,20 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Get container configuration.",
                                     "method" : "GET",
                                     "name" : "vm_config",
                                     "parameters" : {
                                        "additionalProperties" : 0,
                                        "properties" : {
+                                          "current" : {
+                                             "default" : 0,
+                                             "description" : "Get current values (instead of pending values).",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
@@ -19505,7 +25258,7 @@ var pveapi = [
                                           },
                                           "cores" : {
                                              "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
-                                             "maximum" : 128,
+                                             "maximum" : 8192,
                                              "minimum" : 1,
                                              "optional" : 1,
                                              "type" : "integer"
@@ -19513,7 +25266,7 @@ var pveapi = [
                                           "cpulimit" : {
                                              "default" : 0,
                                              "description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has a total of '2' CPU time. Value '0' indicates no CPU limit.",
-                                             "maximum" : 128,
+                                             "maximum" : 8192,
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "number"
@@ -19526,8 +25279,15 @@ var pveapi = [
                                              "optional" : 1,
                                              "type" : "integer"
                                           },
+                                          "debug" : {
+                                             "default" : 0,
+                                             "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
+                                             "optional" : 1,
+                                             "type" : "boolean"
+                                          },
                                           "description" : {
-                                             "description" : "Container description. Only used on the configuration web interface.",
+                                             "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
+                                             "maxLength" : 8192,
                                              "optional" : 1,
                                              "type" : "string"
                                           },
@@ -19538,6 +25298,12 @@ var pveapi = [
                                           "features" : {
                                              "description" : "Allow containers access to advanced features.",
                                              "format" : {
+                                                "force_rw_sys" : {
+                                                   "default" : 0,
+                                                   "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "fuse" : {
                                                    "default" : 0,
                                                    "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
@@ -19550,6 +25316,12 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
+                                                "mknod" : {
+                                                   "default" : 0,
+                                                   "description" : "Allow unprivileged containers to use mknod() to add certain device nodes. This requires a kernel with seccomp trap to user space support (5.3 or newer). This is experimental.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "mount" : {
                                                    "description" : "Allow mounting file systems of specific types. This should be a list of file system types as used with the mount command. Note that this can have negative effects on the container's security. With access to a loop device, mounting a file can circumvent the mknod permission of the devices cgroup, mounting an NFS file system can block the host's I/O completely and prevent it from rebooting, etc.",
                                                    "format_description" : "fstype;fstype;...",
@@ -19585,6 +25357,7 @@ var pveapi = [
                                              "enum" : [
                                                 "backup",
                                                 "create",
+                                                "destroyed",
                                                 "disk",
                                                 "fstrim",
                                                 "migrate",
@@ -19615,7 +25388,7 @@ var pveapi = [
                                              "type" : "integer"
                                           },
                                           "mp[n]" : {
-                                             "description" : "Use volume as container mount point.",
+                                             "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
                                              "format" : {
                                                 "acl" : {
                                                    "description" : "Explicitly enable or disable ACL support.",
@@ -19628,6 +25401,13 @@ var pveapi = [
                                                    "type" : "boolean",
                                                    "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
                                                 },
+                                                "mountoptions" : {
+                                                   "description" : "Extra mount options for rootfs/mps.",
+                                                   "format_description" : "opt[;opt...]",
+                                                   "optional" : 1,
+                                                   "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
+                                                   "type" : "string"
+                                                },
                                                 "mp" : {
                                                    "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
                                                    "format" : "pve-lxc-mp-string",
@@ -19678,7 +25458,7 @@ var pveapi = [
                                           },
                                           "nameserver" : {
                                              "description" : "Sets DNS server IP address for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
-                                             "format" : "address-list",
+                                             "format" : "lxc-ip-with-ll-iface-list",
                                              "optional" : 1,
                                              "type" : "string"
                                           },
@@ -19787,6 +25567,7 @@ var pveapi = [
                                              "description" : "OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/<ostype>.common.conf. Value 'unmanaged' can be used to skip and OS specific setup.",
                                              "enum" : [
                                                 "debian",
+                                                "devuan",
                                                 "ubuntu",
                                                 "centos",
                                                 "fedora",
@@ -19794,6 +25575,7 @@ var pveapi = [
                                                 "archlinux",
                                                 "alpine",
                                                 "gentoo",
+                                                "nixos",
                                                 "unmanaged"
                                              ],
                                              "optional" : 1,
@@ -19813,6 +25595,13 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
+                                                "mountoptions" : {
+                                                   "description" : "Extra mount options for rootfs/mps.",
+                                                   "format_description" : "opt[;opt...]",
+                                                   "optional" : 1,
+                                                   "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
+                                                   "type" : "string"
+                                                },
                                                 "quota" : {
                                                    "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
                                                    "optional" : 1,
@@ -19874,12 +25663,24 @@ var pveapi = [
                                              "optional" : 1,
                                              "type" : "integer"
                                           },
+                                          "tags" : {
+                                             "description" : "Tags of the Container. This is only meta information.",
+                                             "format" : "pve-tag-list",
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
                                           "template" : {
                                              "default" : 0,
                                              "description" : "Enable/disable Template.",
                                              "optional" : 1,
                                              "type" : "boolean"
                                           },
+                                          "timezone" : {
+                                             "description" : "Time zone to use in the container. If option isn't set, then nothing will be done. Can be set to 'host' to match the host time zone, or an arbitrary time zone option from /usr/share/zoneinfo/zone.tab",
+                                             "format" : "pve-ct-timezone",
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
                                           "tty" : {
                                              "default" : 2,
                                              "description" : "Specify the number of tty available to the container",
@@ -19896,7 +25697,15 @@ var pveapi = [
                                           },
                                           "unused[n]" : {
                                              "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
-                                             "format" : "pve-volume-id",
+                                             "format" : {
+                                                "volume" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The volume that is not used currently.",
+                                                   "format" : "pve-volume-id",
+                                                   "format_description" : "volume",
+                                                   "type" : "string"
+                                                }
+                                             },
                                              "optional" : 1,
                                              "type" : "string"
                                           }
@@ -19905,6 +25714,7 @@ var pveapi = [
                                     }
                                  },
                                  "PUT" : {
+                                    "allowtoken" : 1,
                                     "description" : "Set container options.",
                                     "method" : "PUT",
                                     "name" : "update_vm",
@@ -19943,20 +25753,20 @@ var pveapi = [
                                           },
                                           "cores" : {
                                              "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
-                                             "maximum" : 128,
+                                             "maximum" : 8192,
                                              "minimum" : 1,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "<integer> (1 - 128)"
+                                             "typetext" : "<integer> (1 - 8192)"
                                           },
                                           "cpulimit" : {
                                              "default" : 0,
                                              "description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has a total of '2' CPU time. Value '0' indicates no CPU limit.",
-                                             "maximum" : 128,
+                                             "maximum" : 8192,
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "number",
-                                             "typetext" : "<number> (0 - 128)"
+                                             "typetext" : "<number> (0 - 8192)"
                                           },
                                           "cpuunits" : {
                                              "default" : 1024,
@@ -19967,6 +25777,13 @@ var pveapi = [
                                              "type" : "integer",
                                              "typetext" : "<integer> (0 - 500000)"
                                           },
+                                          "debug" : {
+                                             "default" : 0,
+                                             "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
                                           "delete" : {
                                              "description" : "A list of settings you want to delete.",
                                              "format" : "pve-configid-list",
@@ -19975,7 +25792,8 @@ var pveapi = [
                                              "typetext" : "<string>"
                                           },
                                           "description" : {
-                                             "description" : "Container description. Only used on the configuration web interface.",
+                                             "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
+                                             "maxLength" : 8192,
                                              "optional" : 1,
                                              "type" : "string",
                                              "typetext" : "<string>"
@@ -19990,6 +25808,12 @@ var pveapi = [
                                           "features" : {
                                              "description" : "Allow containers access to advanced features.",
                                              "format" : {
+                                                "force_rw_sys" : {
+                                                   "default" : 0,
+                                                   "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "fuse" : {
                                                    "default" : 0,
                                                    "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
@@ -20002,6 +25826,12 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
+                                                "mknod" : {
+                                                   "default" : 0,
+                                                   "description" : "Allow unprivileged containers to use mknod() to add certain device nodes. This requires a kernel with seccomp trap to user space support (5.3 or newer). This is experimental.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "mount" : {
                                                    "description" : "Allow mounting file systems of specific types. This should be a list of file system types as used with the mount command. Note that this can have negative effects on the container's security. With access to a loop device, mounting a file can circumvent the mknod permission of the devices cgroup, mounting an NFS file system can block the host's I/O completely and prevent it from rebooting, etc.",
                                                    "format_description" : "fstype;fstype;...",
@@ -20018,7 +25848,7 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[fuse=<1|0>] [,keyctl=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
+                                             "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
                                           },
                                           "hookscript" : {
                                              "description" : "Script that will be exectued during various steps in the containers lifetime.",
@@ -20040,6 +25870,7 @@ var pveapi = [
                                              "enum" : [
                                                 "backup",
                                                 "create",
+                                                "destroyed",
                                                 "disk",
                                                 "fstrim",
                                                 "migrate",
@@ -20060,7 +25891,7 @@ var pveapi = [
                                              "typetext" : "<integer> (16 - N)"
                                           },
                                           "mp[n]" : {
-                                             "description" : "Use volume as container mount point.",
+                                             "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
                                              "format" : {
                                                 "acl" : {
                                                    "description" : "Explicitly enable or disable ACL support.",
@@ -20073,6 +25904,13 @@ var pveapi = [
                                                    "type" : "boolean",
                                                    "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
                                                 },
+                                                "mountoptions" : {
+                                                   "description" : "Extra mount options for rootfs/mps.",
+                                                   "format_description" : "opt[;opt...]",
+                                                   "optional" : 1,
+                                                   "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
+                                                   "type" : "string"
+                                                },
                                                 "mp" : {
                                                    "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
                                                    "format" : "pve-lxc-mp-string",
@@ -20120,11 +25958,11 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[volume=]<volume> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
+                                             "typetext" : "[volume=]<volume> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
                                           },
                                           "nameserver" : {
                                              "description" : "Sets DNS server IP address for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
-                                             "format" : "address-list",
+                                             "format" : "lxc-ip-with-ll-iface-list",
                                              "optional" : 1,
                                              "type" : "string",
                                              "typetext" : "<string>"
@@ -20242,6 +26080,7 @@ var pveapi = [
                                              "description" : "OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/<ostype>.common.conf. Value 'unmanaged' can be used to skip and OS specific setup.",
                                              "enum" : [
                                                 "debian",
+                                                "devuan",
                                                 "ubuntu",
                                                 "centos",
                                                 "fedora",
@@ -20249,6 +26088,7 @@ var pveapi = [
                                                 "archlinux",
                                                 "alpine",
                                                 "gentoo",
+                                                "nixos",
                                                 "unmanaged"
                                              ],
                                              "optional" : 1,
@@ -20261,6 +26101,13 @@ var pveapi = [
                                              "type" : "boolean",
                                              "typetext" : "<boolean>"
                                           },
+                                          "revert" : {
+                                             "description" : "Revert a pending change.",
+                                             "format" : "pve-configid-list",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
                                           "rootfs" : {
                                              "description" : "Use volume as container root.",
                                              "format" : {
@@ -20269,6 +26116,13 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
+                                                "mountoptions" : {
+                                                   "description" : "Extra mount options for rootfs/mps.",
+                                                   "format_description" : "opt[;opt...]",
+                                                   "optional" : 1,
+                                                   "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
+                                                   "type" : "string"
+                                                },
                                                 "quota" : {
                                                    "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
                                                    "optional" : 1,
@@ -20309,7 +26163,7 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[volume=]<volume> [,acl=<1|0>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
+                                             "typetext" : "[volume=]<volume> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
                                           },
                                           "searchdomain" : {
                                              "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
@@ -20333,6 +26187,13 @@ var pveapi = [
                                              "type" : "integer",
                                              "typetext" : "<integer> (0 - N)"
                                           },
+                                          "tags" : {
+                                             "description" : "Tags of the Container. This is only meta information.",
+                                             "format" : "pve-tag-list",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
                                           "template" : {
                                              "default" : 0,
                                              "description" : "Enable/disable Template.",
@@ -20340,6 +26201,13 @@ var pveapi = [
                                              "type" : "boolean",
                                              "typetext" : "<boolean>"
                                           },
+                                          "timezone" : {
+                                             "description" : "Time zone to use in the container. If option isn't set, then nothing will be done. Can be set to 'host' to match the host time zone, or an arbitrary time zone option from /usr/share/zoneinfo/zone.tab",
+                                             "format" : "pve-ct-timezone",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
                                           "tty" : {
                                              "default" : 2,
                                              "description" : "Specify the number of tty available to the container",
@@ -20358,10 +26226,18 @@ var pveapi = [
                                           },
                                           "unused[n]" : {
                                              "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
-                                             "format" : "pve-volume-id",
+                                             "format" : {
+                                                "volume" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The volume that is not used currently.",
+                                                   "format" : "pve-volume-id",
+                                                   "format_description" : "volume",
+                                                   "type" : "string"
+                                                }
+                                             },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "<string>"
+                                             "typetext" : "[volume=]<volume>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
@@ -20404,6 +26280,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Get virtual machine status.",
                                           "method" : "GET",
                                           "name" : "vm_status",
@@ -20483,6 +26360,11 @@ var pveapi = [
                                                    ],
                                                    "type" : "string"
                                                 },
+                                                "tags" : {
+                                                   "description" : "The current configured tags, if any.",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
                                                 "uptime" : {
                                                    "description" : "Uptime.",
                                                    "optional" : 1,
@@ -20507,12 +26389,20 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Start the container.",
                                           "method" : "POST",
                                           "name" : "vm_start",
                                           "parameters" : {
                                              "additionalProperties" : 0,
                                              "properties" : {
+                                                "debug" : {
+                                                   "default" : 0,
+                                                   "description" : "If set, enables very verbose debug log-level on start.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
@@ -20557,6 +26447,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Stop the container. This will abruptly stop all processes running in the container.",
                                           "method" : "POST",
                                           "name" : "vm_stop",
@@ -20607,6 +26498,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.",
                                           "method" : "POST",
                                           "name" : "vm_shutdown",
@@ -20666,7 +26558,8 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
-                                          "description" : "Suspend the container.",
+                                          "allowtoken" : 1,
+                                          "description" : "Suspend the container. This is experimental.",
                                           "method" : "POST",
                                           "name" : "vm_suspend",
                                           "parameters" : {
@@ -20710,6 +26603,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Resume the container.",
                                           "method" : "POST",
                                           "name" : "vm_resume",
@@ -20750,10 +26644,63 @@ var pveapi = [
                                     "leaf" : 1,
                                     "path" : "/nodes/{node}/lxc/{vmid}/status/resume",
                                     "text" : "resume"
+                                 },
+                                 {
+                                    "info" : {
+                                       "POST" : {
+                                          "allowtoken" : 1,
+                                          "description" : "Reboot the container by shutting it down, and starting it again. Applies pending changes.",
+                                          "method" : "POST",
+                                          "name" : "vm_reboot",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "timeout" : {
+                                                   "description" : "Wait maximal timeout seconds for the shutdown.",
+                                                   "minimum" : 0,
+                                                   "optional" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (0 - N)"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.PowerMgmt"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "type" : "string"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/lxc/{vmid}/status/reboot",
+                                    "text" : "reboot"
                                  }
                               ],
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Directory index",
                                     "method" : "GET",
                                     "name" : "vmcmdidx",
@@ -20809,6 +26756,7 @@ var pveapi = [
                                        {
                                           "info" : {
                                              "POST" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Rollback LXC state to specified snapshot.",
                                                 "method" : "POST",
                                                 "name" : "rollback",
@@ -20864,6 +26812,7 @@ var pveapi = [
                                        {
                                           "info" : {
                                              "GET" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Get snapshot configuration",
                                                 "method" : "GET",
                                                 "name" : "get_snapshot_config",
@@ -20898,7 +26847,8 @@ var pveapi = [
                                                       "/vms/{vmid}",
                                                       [
                                                          "VM.Snapshot",
-                                                         "VM.Snapshot.Rollback"
+                                                         "VM.Snapshot.Rollback",
+                                                         "VM.Audit"
                                                       ],
                                                       "any",
                                                       1
@@ -20910,6 +26860,7 @@ var pveapi = [
                                                 }
                                              },
                                              "PUT" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Update snapshot metadata.",
                                                 "method" : "PUT",
                                                 "name" : "update_snapshot_config",
@@ -20967,6 +26918,7 @@ var pveapi = [
                                     ],
                                     "info" : {
                                        "DELETE" : {
+                                          "allowtoken" : 1,
                                           "description" : "Delete a LXC snapshot.",
                                           "method" : "DELETE",
                                           "name" : "delsnapshot",
@@ -21018,6 +26970,7 @@ var pveapi = [
                                           }
                                        },
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "",
                                           "method" : "GET",
                                           "name" : "snapshot_cmd_idx",
@@ -21071,6 +27024,7 @@ var pveapi = [
                               ],
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "List all snapshots.",
                                     "method" : "GET",
                                     "name" : "list",
@@ -21138,6 +27092,7 @@ var pveapi = [
                                     }
                                  },
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Snapshot a container.",
                                     "method" : "POST",
                                     "name" : "snapshot",
@@ -21200,6 +27155,7 @@ var pveapi = [
                                        {
                                           "info" : {
                                              "DELETE" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Delete rule.",
                                                 "method" : "DELETE",
                                                 "name" : "delete_rule",
@@ -21251,6 +27207,7 @@ var pveapi = [
                                                 }
                                              },
                                              "GET" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Get single rule data.",
                                                 "method" : "GET",
                                                 "name" : "get_rule",
@@ -21310,6 +27267,10 @@ var pveapi = [
                                                          "optional" : 1,
                                                          "type" : "integer"
                                                       },
+                                                      "icmp-type" : {
+                                                         "optional" : 1,
+                                                         "type" : "string"
+                                                      },
                                                       "iface" : {
                                                          "optional" : 1,
                                                          "type" : "string"
@@ -21361,6 +27322,7 @@ var pveapi = [
                                                 }
                                              },
                                              "PUT" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Modify rule data.",
                                                 "method" : "PUT",
                                                 "name" : "update_rule",
@@ -21391,6 +27353,7 @@ var pveapi = [
                                                       "dest" : {
                                                          "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                                          "format" : "pve-fw-addr-spec",
+                                                         "maxLength" : 512,
                                                          "optional" : 1,
                                                          "type" : "string",
                                                          "typetext" : "<string>"
@@ -21416,6 +27379,13 @@ var pveapi = [
                                                          "type" : "integer",
                                                          "typetext" : "<integer> (0 - N)"
                                                       },
+                                                      "icmp-type" : {
+                                                         "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+                                                         "format" : "pve-fw-icmp-type-spec",
+                                                         "optional" : 1,
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
                                                       "iface" : {
                                                          "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
                                                          "format" : "pve-iface",
@@ -21478,6 +27448,7 @@ var pveapi = [
                                                       "source" : {
                                                          "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                                          "format" : "pve-fw-addr-spec",
+                                                         "maxLength" : 512,
                                                          "optional" : 1,
                                                          "type" : "string",
                                                          "typetext" : "<string>"
@@ -21531,6 +27502,7 @@ var pveapi = [
                                     ],
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "List rules.",
                                           "method" : "GET",
                                           "name" : "get_rules",
@@ -21581,6 +27553,7 @@ var pveapi = [
                                           }
                                        },
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Create new rule.",
                                           "method" : "POST",
                                           "name" : "create_rule",
@@ -21604,6 +27577,7 @@ var pveapi = [
                                                 "dest" : {
                                                    "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                                    "format" : "pve-fw-addr-spec",
+                                                   "maxLength" : 512,
                                                    "optional" : 1,
                                                    "type" : "string",
                                                    "typetext" : "<string>"
@@ -21629,6 +27603,13 @@ var pveapi = [
                                                    "type" : "integer",
                                                    "typetext" : "<integer> (0 - N)"
                                                 },
+                                                "icmp-type" : {
+                                                   "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+                                                   "format" : "pve-fw-icmp-type-spec",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
                                                 "iface" : {
                                                    "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
                                                    "format" : "pve-iface",
@@ -21684,6 +27665,7 @@ var pveapi = [
                                                 "source" : {
                                                    "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                                    "format" : "pve-fw-addr-spec",
+                                                   "maxLength" : 512,
                                                    "optional" : 1,
                                                    "type" : "string",
                                                    "typetext" : "<string>"
@@ -21739,6 +27721,7 @@ var pveapi = [
                                        {
                                           "info" : {
                                              "DELETE" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Remove IP or Network alias.",
                                                 "method" : "DELETE",
                                                 "name" : "remove_alias",
@@ -21789,6 +27772,7 @@ var pveapi = [
                                                 }
                                              },
                                              "GET" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Read alias.",
                                                 "method" : "GET",
                                                 "name" : "read_alias",
@@ -21831,6 +27815,7 @@ var pveapi = [
                                                 }
                                              },
                                              "PUT" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Update IP or Network alias.",
                                                 "method" : "PUT",
                                                 "name" : "update_alias",
@@ -21907,6 +27892,7 @@ var pveapi = [
                                     ],
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "List aliases",
                                           "method" : "GET",
                                           "name" : "get_aliases",
@@ -21969,6 +27955,7 @@ var pveapi = [
                                           }
                                        },
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Create IP or Network Alias.",
                                           "method" : "POST",
                                           "name" : "create_alias",
@@ -22034,6 +28021,7 @@ var pveapi = [
                                              {
                                                 "info" : {
                                                    "DELETE" : {
+                                                      "allowtoken" : 1,
                                                       "description" : "Remove IP or Network from IPSet.",
                                                       "method" : "DELETE",
                                                       "name" : "remove_ip",
@@ -22090,6 +28078,7 @@ var pveapi = [
                                                       }
                                                    },
                                                    "GET" : {
+                                                      "allowtoken" : 1,
                                                       "description" : "Read IP or Network settings from IPSet.",
                                                       "method" : "GET",
                                                       "name" : "read_ip",
@@ -22139,6 +28128,7 @@ var pveapi = [
                                                       }
                                                    },
                                                    "PUT" : {
+                                                      "allowtoken" : 1,
                                                       "description" : "Update IP or Network settings",
                                                       "method" : "PUT",
                                                       "name" : "update_ip",
@@ -22212,6 +28202,7 @@ var pveapi = [
                                           ],
                                           "info" : {
                                              "DELETE" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Delete IPSet",
                                                 "method" : "DELETE",
                                                 "name" : "delete_ipset",
@@ -22255,6 +28246,7 @@ var pveapi = [
                                                 }
                                              },
                                              "GET" : {
+                                                "allowtoken" : 1,
                                                 "description" : "List IPSet content",
                                                 "method" : "GET",
                                                 "name" : "get_ipset",
@@ -22325,6 +28317,7 @@ var pveapi = [
                                                 }
                                              },
                                              "POST" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Add IP or Network to IPSet.",
                                                 "method" : "POST",
                                                 "name" : "create_ip",
@@ -22391,6 +28384,7 @@ var pveapi = [
                                     ],
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "List IPSets",
                                           "method" : "GET",
                                           "name" : "ipset_index",
@@ -22454,6 +28448,7 @@ var pveapi = [
                                           }
                                        },
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Create new IPSet",
                                           "method" : "POST",
                                           "name" : "create_ipset",
@@ -22524,6 +28519,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Get VM firewall options.",
                                           "method" : "GET",
                                           "name" : "get_options",
@@ -22558,11 +28554,13 @@ var pveapi = [
                                           "returns" : {
                                              "properties" : {
                                                 "dhcp" : {
+                                                   "default" : 0,
                                                    "description" : "Enable DHCP.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
                                                 "enable" : {
+                                                   "default" : 0,
                                                    "description" : "Enable/disable firewall rules.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
@@ -22605,12 +28603,14 @@ var pveapi = [
                                                    "type" : "string"
                                                 },
                                                 "macfilter" : {
+                                                   "default" : 1,
                                                    "description" : "Enable/disable MAC address filter.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
                                                 "ndp" : {
-                                                   "description" : "Enable NDP.",
+                                                   "default" : 0,
+                                                   "description" : "Enable NDP (Neighbor Discovery Protocol).",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
@@ -22644,6 +28644,7 @@ var pveapi = [
                                           }
                                        },
                                        "PUT" : {
+                                          "allowtoken" : 1,
                                           "description" : "Set Firewall options.",
                                           "method" : "PUT",
                                           "name" : "set_options",
@@ -22658,6 +28659,7 @@ var pveapi = [
                                                    "typetext" : "<string>"
                                                 },
                                                 "dhcp" : {
+                                                   "default" : 0,
                                                    "description" : "Enable DHCP.",
                                                    "optional" : 1,
                                                    "type" : "boolean",
@@ -22671,6 +28673,7 @@ var pveapi = [
                                                    "typetext" : "<string>"
                                                 },
                                                 "enable" : {
+                                                   "default" : 0,
                                                    "description" : "Enable/disable firewall rules.",
                                                    "optional" : 1,
                                                    "type" : "boolean",
@@ -22715,13 +28718,15 @@ var pveapi = [
                                                    "type" : "string"
                                                 },
                                                 "macfilter" : {
+                                                   "default" : 1,
                                                    "description" : "Enable/disable MAC address filter.",
                                                    "optional" : 1,
                                                    "type" : "boolean",
                                                    "typetext" : "<boolean>"
                                                 },
                                                 "ndp" : {
-                                                   "description" : "Enable NDP.",
+                                                   "default" : 0,
+                                                   "description" : "Enable NDP (Neighbor Discovery Protocol).",
                                                    "optional" : 1,
                                                    "type" : "boolean",
                                                    "typetext" : "<boolean>"
@@ -22790,6 +28795,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Read firewall log",
                                           "method" : "GET",
                                           "name" : "log",
@@ -22859,6 +28865,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
                                           "method" : "GET",
                                           "name" : "refs",
@@ -22929,6 +28936,7 @@ var pveapi = [
                               ],
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Directory index.",
                                     "method" : "GET",
                                     "name" : "index",
@@ -22975,6 +28983,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read VM RRD statistics (returns PNG)",
                                     "method" : "GET",
                                     "name" : "rrd",
@@ -23049,6 +29058,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read VM RRD statistics",
                                     "method" : "GET",
                                     "name" : "rrddata",
@@ -23116,6 +29126,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Creates a TCP VNC proxy connections.",
                                     "method" : "POST",
                                     "name" : "vncproxy",
@@ -23198,6 +29209,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Creates a TCP proxy connection.",
                                     "method" : "POST",
                                     "name" : "termproxy",
@@ -23255,6 +29267,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Opens a weksocket for VNC traffic.",
                                     "method" : "GET",
                                     "name" : "vncwebsocket",
@@ -23316,6 +29329,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Returns a SPICE configuration to connect to the CT.",
                                     "method" : "POST",
                                     "name" : "spiceproxy",
@@ -23385,6 +29399,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Migrate the container to another node. Creates a new migration task.",
                                     "method" : "POST",
                                     "name" : "migrate_vm",
@@ -23399,12 +29414,6 @@ var pveapi = [
                                              "type" : "number",
                                              "typetext" : "<number> (0 - N)"
                                           },
-                                          "force" : {
-                                             "description" : "Force migration despite local bind / device mounts. NOTE: deprecated, use 'shared' property of mount point instead.",
-                                             "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
-                                          },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
@@ -23429,6 +29438,13 @@ var pveapi = [
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           },
+                                          "target-storage" : {
+                                             "description" : "Mapping from source to target storages. Providing only a single storage ID maps all source storages to that storage. Providing the special value '1' will map each source storage to itself.",
+                                             "format" : "storage-pair-list",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
                                           "timeout" : {
                                              "default" : 180,
                                              "description" : "Timeout in seconds for shutdown for restart migration",
@@ -23469,6 +29485,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Check if feature for virtual machine is available.",
                                     "method" : "GET",
                                     "name" : "vm_feature",
@@ -23535,6 +29552,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Create a Template.",
                                     "method" : "POST",
                                     "name" : "template",
@@ -23580,6 +29598,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Create a container clone/copy",
                                     "method" : "POST",
                                     "name" : "clone_vm",
@@ -23710,6 +29729,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "PUT" : {
+                                    "allowtoken" : 1,
                                     "description" : "Resize a container mount point.",
                                     "method" : "PUT",
                                     "name" : "resize_vm",
@@ -24032,7 +30052,8 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
-                                    "description" : "Move a rootfs-/mp-volume to a different storage",
+                                    "allowtoken" : 1,
+                                    "description" : "Move a rootfs-/mp-volume to a different storage or to a different container.",
                                     "method" : "POST",
                                     "name" : "move_volume",
                                     "parameters" : {
@@ -24054,7 +30075,7 @@ var pveapi = [
                                              "typetext" : "<boolean>"
                                           },
                                           "digest" : {
-                                             "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                             "description" : "Prevent changes if current configuration file has different SHA1 \" .\n\t\t    \"digest. This can be used to prevent concurrent modifications.",
                                              "maxLength" : 40,
                                              "optional" : 1,
                                              "type" : "string",
@@ -24069,9 +30090,545 @@ var pveapi = [
                                           "storage" : {
                                              "description" : "Target Storage.",
                                              "format" : "pve-storage-id",
+                                             "optional" : 1,
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           },
+                                          "target-digest" : {
+                                             "description" : "Prevent changes if current configuration file of the target \" .\n\t\t    \"container has a different SHA1 digest. This can be used to prevent \" .\n\t\t    \"concurrent modifications.",
+                                             "maxLength" : 40,
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "target-vmid" : {
+                                             "description" : "The (unique) ID of the VM.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          },
+                                          "target-volume" : {
+                                             "description" : "The config key the volume will be moved to. Default is the source volume key.",
+                                             "enum" : [
+                                                "rootfs",
+                                                "mp0",
+                                                "mp1",
+                                                "mp2",
+                                                "mp3",
+                                                "mp4",
+                                                "mp5",
+                                                "mp6",
+                                                "mp7",
+                                                "mp8",
+                                                "mp9",
+                                                "mp10",
+                                                "mp11",
+                                                "mp12",
+                                                "mp13",
+                                                "mp14",
+                                                "mp15",
+                                                "mp16",
+                                                "mp17",
+                                                "mp18",
+                                                "mp19",
+                                                "mp20",
+                                                "mp21",
+                                                "mp22",
+                                                "mp23",
+                                                "mp24",
+                                                "mp25",
+                                                "mp26",
+                                                "mp27",
+                                                "mp28",
+                                                "mp29",
+                                                "mp30",
+                                                "mp31",
+                                                "mp32",
+                                                "mp33",
+                                                "mp34",
+                                                "mp35",
+                                                "mp36",
+                                                "mp37",
+                                                "mp38",
+                                                "mp39",
+                                                "mp40",
+                                                "mp41",
+                                                "mp42",
+                                                "mp43",
+                                                "mp44",
+                                                "mp45",
+                                                "mp46",
+                                                "mp47",
+                                                "mp48",
+                                                "mp49",
+                                                "mp50",
+                                                "mp51",
+                                                "mp52",
+                                                "mp53",
+                                                "mp54",
+                                                "mp55",
+                                                "mp56",
+                                                "mp57",
+                                                "mp58",
+                                                "mp59",
+                                                "mp60",
+                                                "mp61",
+                                                "mp62",
+                                                "mp63",
+                                                "mp64",
+                                                "mp65",
+                                                "mp66",
+                                                "mp67",
+                                                "mp68",
+                                                "mp69",
+                                                "mp70",
+                                                "mp71",
+                                                "mp72",
+                                                "mp73",
+                                                "mp74",
+                                                "mp75",
+                                                "mp76",
+                                                "mp77",
+                                                "mp78",
+                                                "mp79",
+                                                "mp80",
+                                                "mp81",
+                                                "mp82",
+                                                "mp83",
+                                                "mp84",
+                                                "mp85",
+                                                "mp86",
+                                                "mp87",
+                                                "mp88",
+                                                "mp89",
+                                                "mp90",
+                                                "mp91",
+                                                "mp92",
+                                                "mp93",
+                                                "mp94",
+                                                "mp95",
+                                                "mp96",
+                                                "mp97",
+                                                "mp98",
+                                                "mp99",
+                                                "mp100",
+                                                "mp101",
+                                                "mp102",
+                                                "mp103",
+                                                "mp104",
+                                                "mp105",
+                                                "mp106",
+                                                "mp107",
+                                                "mp108",
+                                                "mp109",
+                                                "mp110",
+                                                "mp111",
+                                                "mp112",
+                                                "mp113",
+                                                "mp114",
+                                                "mp115",
+                                                "mp116",
+                                                "mp117",
+                                                "mp118",
+                                                "mp119",
+                                                "mp120",
+                                                "mp121",
+                                                "mp122",
+                                                "mp123",
+                                                "mp124",
+                                                "mp125",
+                                                "mp126",
+                                                "mp127",
+                                                "mp128",
+                                                "mp129",
+                                                "mp130",
+                                                "mp131",
+                                                "mp132",
+                                                "mp133",
+                                                "mp134",
+                                                "mp135",
+                                                "mp136",
+                                                "mp137",
+                                                "mp138",
+                                                "mp139",
+                                                "mp140",
+                                                "mp141",
+                                                "mp142",
+                                                "mp143",
+                                                "mp144",
+                                                "mp145",
+                                                "mp146",
+                                                "mp147",
+                                                "mp148",
+                                                "mp149",
+                                                "mp150",
+                                                "mp151",
+                                                "mp152",
+                                                "mp153",
+                                                "mp154",
+                                                "mp155",
+                                                "mp156",
+                                                "mp157",
+                                                "mp158",
+                                                "mp159",
+                                                "mp160",
+                                                "mp161",
+                                                "mp162",
+                                                "mp163",
+                                                "mp164",
+                                                "mp165",
+                                                "mp166",
+                                                "mp167",
+                                                "mp168",
+                                                "mp169",
+                                                "mp170",
+                                                "mp171",
+                                                "mp172",
+                                                "mp173",
+                                                "mp174",
+                                                "mp175",
+                                                "mp176",
+                                                "mp177",
+                                                "mp178",
+                                                "mp179",
+                                                "mp180",
+                                                "mp181",
+                                                "mp182",
+                                                "mp183",
+                                                "mp184",
+                                                "mp185",
+                                                "mp186",
+                                                "mp187",
+                                                "mp188",
+                                                "mp189",
+                                                "mp190",
+                                                "mp191",
+                                                "mp192",
+                                                "mp193",
+                                                "mp194",
+                                                "mp195",
+                                                "mp196",
+                                                "mp197",
+                                                "mp198",
+                                                "mp199",
+                                                "mp200",
+                                                "mp201",
+                                                "mp202",
+                                                "mp203",
+                                                "mp204",
+                                                "mp205",
+                                                "mp206",
+                                                "mp207",
+                                                "mp208",
+                                                "mp209",
+                                                "mp210",
+                                                "mp211",
+                                                "mp212",
+                                                "mp213",
+                                                "mp214",
+                                                "mp215",
+                                                "mp216",
+                                                "mp217",
+                                                "mp218",
+                                                "mp219",
+                                                "mp220",
+                                                "mp221",
+                                                "mp222",
+                                                "mp223",
+                                                "mp224",
+                                                "mp225",
+                                                "mp226",
+                                                "mp227",
+                                                "mp228",
+                                                "mp229",
+                                                "mp230",
+                                                "mp231",
+                                                "mp232",
+                                                "mp233",
+                                                "mp234",
+                                                "mp235",
+                                                "mp236",
+                                                "mp237",
+                                                "mp238",
+                                                "mp239",
+                                                "mp240",
+                                                "mp241",
+                                                "mp242",
+                                                "mp243",
+                                                "mp244",
+                                                "mp245",
+                                                "mp246",
+                                                "mp247",
+                                                "mp248",
+                                                "mp249",
+                                                "mp250",
+                                                "mp251",
+                                                "mp252",
+                                                "mp253",
+                                                "mp254",
+                                                "mp255",
+                                                "unused0",
+                                                "unused1",
+                                                "unused2",
+                                                "unused3",
+                                                "unused4",
+                                                "unused5",
+                                                "unused6",
+                                                "unused7",
+                                                "unused8",
+                                                "unused9",
+                                                "unused10",
+                                                "unused11",
+                                                "unused12",
+                                                "unused13",
+                                                "unused14",
+                                                "unused15",
+                                                "unused16",
+                                                "unused17",
+                                                "unused18",
+                                                "unused19",
+                                                "unused20",
+                                                "unused21",
+                                                "unused22",
+                                                "unused23",
+                                                "unused24",
+                                                "unused25",
+                                                "unused26",
+                                                "unused27",
+                                                "unused28",
+                                                "unused29",
+                                                "unused30",
+                                                "unused31",
+                                                "unused32",
+                                                "unused33",
+                                                "unused34",
+                                                "unused35",
+                                                "unused36",
+                                                "unused37",
+                                                "unused38",
+                                                "unused39",
+                                                "unused40",
+                                                "unused41",
+                                                "unused42",
+                                                "unused43",
+                                                "unused44",
+                                                "unused45",
+                                                "unused46",
+                                                "unused47",
+                                                "unused48",
+                                                "unused49",
+                                                "unused50",
+                                                "unused51",
+                                                "unused52",
+                                                "unused53",
+                                                "unused54",
+                                                "unused55",
+                                                "unused56",
+                                                "unused57",
+                                                "unused58",
+                                                "unused59",
+                                                "unused60",
+                                                "unused61",
+                                                "unused62",
+                                                "unused63",
+                                                "unused64",
+                                                "unused65",
+                                                "unused66",
+                                                "unused67",
+                                                "unused68",
+                                                "unused69",
+                                                "unused70",
+                                                "unused71",
+                                                "unused72",
+                                                "unused73",
+                                                "unused74",
+                                                "unused75",
+                                                "unused76",
+                                                "unused77",
+                                                "unused78",
+                                                "unused79",
+                                                "unused80",
+                                                "unused81",
+                                                "unused82",
+                                                "unused83",
+                                                "unused84",
+                                                "unused85",
+                                                "unused86",
+                                                "unused87",
+                                                "unused88",
+                                                "unused89",
+                                                "unused90",
+                                                "unused91",
+                                                "unused92",
+                                                "unused93",
+                                                "unused94",
+                                                "unused95",
+                                                "unused96",
+                                                "unused97",
+                                                "unused98",
+                                                "unused99",
+                                                "unused100",
+                                                "unused101",
+                                                "unused102",
+                                                "unused103",
+                                                "unused104",
+                                                "unused105",
+                                                "unused106",
+                                                "unused107",
+                                                "unused108",
+                                                "unused109",
+                                                "unused110",
+                                                "unused111",
+                                                "unused112",
+                                                "unused113",
+                                                "unused114",
+                                                "unused115",
+                                                "unused116",
+                                                "unused117",
+                                                "unused118",
+                                                "unused119",
+                                                "unused120",
+                                                "unused121",
+                                                "unused122",
+                                                "unused123",
+                                                "unused124",
+                                                "unused125",
+                                                "unused126",
+                                                "unused127",
+                                                "unused128",
+                                                "unused129",
+                                                "unused130",
+                                                "unused131",
+                                                "unused132",
+                                                "unused133",
+                                                "unused134",
+                                                "unused135",
+                                                "unused136",
+                                                "unused137",
+                                                "unused138",
+                                                "unused139",
+                                                "unused140",
+                                                "unused141",
+                                                "unused142",
+                                                "unused143",
+                                                "unused144",
+                                                "unused145",
+                                                "unused146",
+                                                "unused147",
+                                                "unused148",
+                                                "unused149",
+                                                "unused150",
+                                                "unused151",
+                                                "unused152",
+                                                "unused153",
+                                                "unused154",
+                                                "unused155",
+                                                "unused156",
+                                                "unused157",
+                                                "unused158",
+                                                "unused159",
+                                                "unused160",
+                                                "unused161",
+                                                "unused162",
+                                                "unused163",
+                                                "unused164",
+                                                "unused165",
+                                                "unused166",
+                                                "unused167",
+                                                "unused168",
+                                                "unused169",
+                                                "unused170",
+                                                "unused171",
+                                                "unused172",
+                                                "unused173",
+                                                "unused174",
+                                                "unused175",
+                                                "unused176",
+                                                "unused177",
+                                                "unused178",
+                                                "unused179",
+                                                "unused180",
+                                                "unused181",
+                                                "unused182",
+                                                "unused183",
+                                                "unused184",
+                                                "unused185",
+                                                "unused186",
+                                                "unused187",
+                                                "unused188",
+                                                "unused189",
+                                                "unused190",
+                                                "unused191",
+                                                "unused192",
+                                                "unused193",
+                                                "unused194",
+                                                "unused195",
+                                                "unused196",
+                                                "unused197",
+                                                "unused198",
+                                                "unused199",
+                                                "unused200",
+                                                "unused201",
+                                                "unused202",
+                                                "unused203",
+                                                "unused204",
+                                                "unused205",
+                                                "unused206",
+                                                "unused207",
+                                                "unused208",
+                                                "unused209",
+                                                "unused210",
+                                                "unused211",
+                                                "unused212",
+                                                "unused213",
+                                                "unused214",
+                                                "unused215",
+                                                "unused216",
+                                                "unused217",
+                                                "unused218",
+                                                "unused219",
+                                                "unused220",
+                                                "unused221",
+                                                "unused222",
+                                                "unused223",
+                                                "unused224",
+                                                "unused225",
+                                                "unused226",
+                                                "unused227",
+                                                "unused228",
+                                                "unused229",
+                                                "unused230",
+                                                "unused231",
+                                                "unused232",
+                                                "unused233",
+                                                "unused234",
+                                                "unused235",
+                                                "unused236",
+                                                "unused237",
+                                                "unused238",
+                                                "unused239",
+                                                "unused240",
+                                                "unused241",
+                                                "unused242",
+                                                "unused243",
+                                                "unused244",
+                                                "unused245",
+                                                "unused246",
+                                                "unused247",
+                                                "unused248",
+                                                "unused249",
+                                                "unused250",
+                                                "unused251",
+                                                "unused252",
+                                                "unused253",
+                                                "unused254",
+                                                "unused255"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
@@ -24338,7 +30895,263 @@ var pveapi = [
                                                 "mp252",
                                                 "mp253",
                                                 "mp254",
-                                                "mp255"
+                                                "mp255",
+                                                "unused0",
+                                                "unused1",
+                                                "unused2",
+                                                "unused3",
+                                                "unused4",
+                                                "unused5",
+                                                "unused6",
+                                                "unused7",
+                                                "unused8",
+                                                "unused9",
+                                                "unused10",
+                                                "unused11",
+                                                "unused12",
+                                                "unused13",
+                                                "unused14",
+                                                "unused15",
+                                                "unused16",
+                                                "unused17",
+                                                "unused18",
+                                                "unused19",
+                                                "unused20",
+                                                "unused21",
+                                                "unused22",
+                                                "unused23",
+                                                "unused24",
+                                                "unused25",
+                                                "unused26",
+                                                "unused27",
+                                                "unused28",
+                                                "unused29",
+                                                "unused30",
+                                                "unused31",
+                                                "unused32",
+                                                "unused33",
+                                                "unused34",
+                                                "unused35",
+                                                "unused36",
+                                                "unused37",
+                                                "unused38",
+                                                "unused39",
+                                                "unused40",
+                                                "unused41",
+                                                "unused42",
+                                                "unused43",
+                                                "unused44",
+                                                "unused45",
+                                                "unused46",
+                                                "unused47",
+                                                "unused48",
+                                                "unused49",
+                                                "unused50",
+                                                "unused51",
+                                                "unused52",
+                                                "unused53",
+                                                "unused54",
+                                                "unused55",
+                                                "unused56",
+                                                "unused57",
+                                                "unused58",
+                                                "unused59",
+                                                "unused60",
+                                                "unused61",
+                                                "unused62",
+                                                "unused63",
+                                                "unused64",
+                                                "unused65",
+                                                "unused66",
+                                                "unused67",
+                                                "unused68",
+                                                "unused69",
+                                                "unused70",
+                                                "unused71",
+                                                "unused72",
+                                                "unused73",
+                                                "unused74",
+                                                "unused75",
+                                                "unused76",
+                                                "unused77",
+                                                "unused78",
+                                                "unused79",
+                                                "unused80",
+                                                "unused81",
+                                                "unused82",
+                                                "unused83",
+                                                "unused84",
+                                                "unused85",
+                                                "unused86",
+                                                "unused87",
+                                                "unused88",
+                                                "unused89",
+                                                "unused90",
+                                                "unused91",
+                                                "unused92",
+                                                "unused93",
+                                                "unused94",
+                                                "unused95",
+                                                "unused96",
+                                                "unused97",
+                                                "unused98",
+                                                "unused99",
+                                                "unused100",
+                                                "unused101",
+                                                "unused102",
+                                                "unused103",
+                                                "unused104",
+                                                "unused105",
+                                                "unused106",
+                                                "unused107",
+                                                "unused108",
+                                                "unused109",
+                                                "unused110",
+                                                "unused111",
+                                                "unused112",
+                                                "unused113",
+                                                "unused114",
+                                                "unused115",
+                                                "unused116",
+                                                "unused117",
+                                                "unused118",
+                                                "unused119",
+                                                "unused120",
+                                                "unused121",
+                                                "unused122",
+                                                "unused123",
+                                                "unused124",
+                                                "unused125",
+                                                "unused126",
+                                                "unused127",
+                                                "unused128",
+                                                "unused129",
+                                                "unused130",
+                                                "unused131",
+                                                "unused132",
+                                                "unused133",
+                                                "unused134",
+                                                "unused135",
+                                                "unused136",
+                                                "unused137",
+                                                "unused138",
+                                                "unused139",
+                                                "unused140",
+                                                "unused141",
+                                                "unused142",
+                                                "unused143",
+                                                "unused144",
+                                                "unused145",
+                                                "unused146",
+                                                "unused147",
+                                                "unused148",
+                                                "unused149",
+                                                "unused150",
+                                                "unused151",
+                                                "unused152",
+                                                "unused153",
+                                                "unused154",
+                                                "unused155",
+                                                "unused156",
+                                                "unused157",
+                                                "unused158",
+                                                "unused159",
+                                                "unused160",
+                                                "unused161",
+                                                "unused162",
+                                                "unused163",
+                                                "unused164",
+                                                "unused165",
+                                                "unused166",
+                                                "unused167",
+                                                "unused168",
+                                                "unused169",
+                                                "unused170",
+                                                "unused171",
+                                                "unused172",
+                                                "unused173",
+                                                "unused174",
+                                                "unused175",
+                                                "unused176",
+                                                "unused177",
+                                                "unused178",
+                                                "unused179",
+                                                "unused180",
+                                                "unused181",
+                                                "unused182",
+                                                "unused183",
+                                                "unused184",
+                                                "unused185",
+                                                "unused186",
+                                                "unused187",
+                                                "unused188",
+                                                "unused189",
+                                                "unused190",
+                                                "unused191",
+                                                "unused192",
+                                                "unused193",
+                                                "unused194",
+                                                "unused195",
+                                                "unused196",
+                                                "unused197",
+                                                "unused198",
+                                                "unused199",
+                                                "unused200",
+                                                "unused201",
+                                                "unused202",
+                                                "unused203",
+                                                "unused204",
+                                                "unused205",
+                                                "unused206",
+                                                "unused207",
+                                                "unused208",
+                                                "unused209",
+                                                "unused210",
+                                                "unused211",
+                                                "unused212",
+                                                "unused213",
+                                                "unused214",
+                                                "unused215",
+                                                "unused216",
+                                                "unused217",
+                                                "unused218",
+                                                "unused219",
+                                                "unused220",
+                                                "unused221",
+                                                "unused222",
+                                                "unused223",
+                                                "unused224",
+                                                "unused225",
+                                                "unused226",
+                                                "unused227",
+                                                "unused228",
+                                                "unused229",
+                                                "unused230",
+                                                "unused231",
+                                                "unused232",
+                                                "unused233",
+                                                "unused234",
+                                                "unused235",
+                                                "unused236",
+                                                "unused237",
+                                                "unused238",
+                                                "unused239",
+                                                "unused240",
+                                                "unused241",
+                                                "unused242",
+                                                "unused243",
+                                                "unused244",
+                                                "unused245",
+                                                "unused246",
+                                                "unused247",
+                                                "unused248",
+                                                "unused249",
+                                                "unused250",
+                                                "unused251",
+                                                "unused252",
+                                                "unused253",
+                                                "unused254",
+                                                "unused255"
                                              ],
                                              "type" : "string"
                                           }
@@ -24346,23 +31159,13 @@ var pveapi = [
                                     },
                                     "permissions" : {
                                        "check" : [
-                                          "and",
-                                          [
-                                             "perm",
-                                             "/vms/{vmid}",
-                                             [
-                                                "VM.Config.Disk"
-                                             ]
-                                          ],
+                                          "perm",
+                                          "/vms/{vmid}",
                                           [
-                                             "perm",
-                                             "/storage/{storage}",
-                                             [
-                                                "Datastore.AllocateSpace"
-                                             ]
+                                             "VM.Config.Disk"
                                           ]
                                        ],
-                                       "description" : "You need 'VM.Config.Disk' permissions on /vms/{vmid}, and 'Datastore.AllocateSpace' permissions on the storage."
+                                       "description" : "You need 'VM.Config.Disk' permissions on /vms/{vmid}, and 'Datastore.AllocateSpace' permissions on the storage. To move a volume to another container, you need the permissions on the target container as well."
                                     },
                                     "protected" : 1,
                                     "proxyto" : "node",
@@ -24374,22 +31177,113 @@ var pveapi = [
                               "leaf" : 1,
                               "path" : "/nodes/{node}/lxc/{vmid}/move_volume",
                               "text" : "move_volume"
+                           },
+                           {
+                              "info" : {
+                                 "GET" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Get container configuration, including pending changes.",
+                                    "method" : "GET",
+                                    "name" : "vm_pending",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "vmid" : {
+                                             "description" : "The (unique) ID of the VM.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/vms/{vmid}",
+                                          [
+                                             "VM.Audit"
+                                          ]
+                                       ]
+                                    },
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "items" : {
+                                          "properties" : {
+                                             "delete" : {
+                                                "description" : "Indicates a pending delete request if present and not 0.",
+                                                "maximum" : 2,
+                                                "minimum" : 0,
+                                                "optional" : 1,
+                                                "type" : "integer"
+                                             },
+                                             "key" : {
+                                                "description" : "Configuration option name.",
+                                                "type" : "string"
+                                             },
+                                             "pending" : {
+                                                "description" : "Pending value.",
+                                                "optional" : 1,
+                                                "type" : "string"
+                                             },
+                                             "value" : {
+                                                "description" : "Current value.",
+                                                "optional" : 1,
+                                                "type" : "string"
+                                             }
+                                          },
+                                          "type" : "object"
+                                       },
+                                       "type" : "array"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/lxc/{vmid}/pending",
+                              "text" : "pending"
                            }
                         ],
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "Destroy the container (also delete all uses files).",
                               "method" : "DELETE",
                               "name" : "destroy_vm",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
+                                    "destroy-unreferenced-disks" : {
+                                       "description" : "If set, destroy additionally all disks with the VMID from all enabled storages which are not referenced in the config.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "force" : {
+                                       "default" : 0,
+                                       "description" : "Force destroy, even if running.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
                                        "type" : "string",
                                        "typetext" : "<string>"
                                     },
+                                    "purge" : {
+                                       "default" : 0,
+                                       "description" : "Remove container from all related configurations. For example, backup jobs, replication jobs or HA. Related ACLs and Firewall entries will *always* be removed.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
                                     "vmid" : {
                                        "description" : "The (unique) ID of the VM.",
                                        "format" : "pve-vmid",
@@ -24415,6 +31309,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Directory index",
                               "method" : "GET",
                               "name" : "vmdiridx",
@@ -24466,6 +31361,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "LXC container index (per node).",
                         "method" : "GET",
                         "name" : "vmlist",
@@ -24530,6 +31426,11 @@ var pveapi = [
                                     ],
                                     "type" : "string"
                                  },
+                                 "tags" : {
+                                    "description" : "The current configured tags, if any.",
+                                    "optional" : 1,
+                                    "type" : "string"
+                                 },
                                  "uptime" : {
                                     "description" : "Uptime.",
                                     "optional" : 1,
@@ -24555,6 +31456,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Create or restore a container.",
                         "method" : "POST",
                         "name" : "create_vm",
@@ -24601,20 +31503,20 @@ var pveapi = [
                               },
                               "cores" : {
                                  "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
-                                 "maximum" : 128,
+                                 "maximum" : 8192,
                                  "minimum" : 1,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "<integer> (1 - 128)"
+                                 "typetext" : "<integer> (1 - 8192)"
                               },
                               "cpulimit" : {
                                  "default" : 0,
                                  "description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has a total of '2' CPU time. Value '0' indicates no CPU limit.",
-                                 "maximum" : 128,
+                                 "maximum" : 8192,
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "number",
-                                 "typetext" : "<number> (0 - 128)"
+                                 "typetext" : "<number> (0 - 8192)"
                               },
                               "cpuunits" : {
                                  "default" : 1024,
@@ -24625,8 +31527,16 @@ var pveapi = [
                                  "type" : "integer",
                                  "typetext" : "<integer> (0 - 500000)"
                               },
+                              "debug" : {
+                                 "default" : 0,
+                                 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
                               "description" : {
-                                 "description" : "Container description. Only used on the configuration web interface.",
+                                 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
+                                 "maxLength" : 8192,
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
@@ -24634,6 +31544,12 @@ var pveapi = [
                               "features" : {
                                  "description" : "Allow containers access to advanced features.",
                                  "format" : {
+                                    "force_rw_sys" : {
+                                       "default" : 0,
+                                       "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
                                     "fuse" : {
                                        "default" : 0,
                                        "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
@@ -24646,6 +31562,12 @@ var pveapi = [
                                        "optional" : 1,
                                        "type" : "boolean"
                                     },
+                                    "mknod" : {
+                                       "default" : 0,
+                                       "description" : "Allow unprivileged containers to use mknod() to add certain device nodes. This requires a kernel with seccomp trap to user space support (5.3 or newer). This is experimental.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
                                     "mount" : {
                                        "description" : "Allow mounting file systems of specific types. This should be a list of file system types as used with the mount command. Note that this can have negative effects on the container's security. With access to a loop device, mounting a file can circumvent the mknod permission of the devices cgroup, mounting an NFS file system can block the host's I/O completely and prevent it from rebooting, etc.",
                                        "format_description" : "fstype;fstype;...",
@@ -24662,7 +31584,7 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[fuse=<1|0>] [,keyctl=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
+                                 "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
                               },
                               "force" : {
                                  "description" : "Allow to overwrite existing container.",
@@ -24696,6 +31618,7 @@ var pveapi = [
                                  "enum" : [
                                     "backup",
                                     "create",
+                                    "destroyed",
                                     "disk",
                                     "fstrim",
                                     "migrate",
@@ -24716,7 +31639,7 @@ var pveapi = [
                                  "typetext" : "<integer> (16 - N)"
                               },
                               "mp[n]" : {
-                                 "description" : "Use volume as container mount point.",
+                                 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
                                  "format" : {
                                     "acl" : {
                                        "description" : "Explicitly enable or disable ACL support.",
@@ -24729,6 +31652,13 @@ var pveapi = [
                                        "type" : "boolean",
                                        "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
                                     },
+                                    "mountoptions" : {
+                                       "description" : "Extra mount options for rootfs/mps.",
+                                       "format_description" : "opt[;opt...]",
+                                       "optional" : 1,
+                                       "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
+                                       "type" : "string"
+                                    },
                                     "mp" : {
                                        "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
                                        "format" : "pve-lxc-mp-string",
@@ -24776,11 +31706,11 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[volume=]<volume> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
+                                 "typetext" : "[volume=]<volume> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
                               },
                               "nameserver" : {
                                  "description" : "Sets DNS server IP address for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
-                                 "format" : "address-list",
+                                 "format" : "lxc-ip-with-ll-iface-list",
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
@@ -24904,6 +31834,7 @@ var pveapi = [
                                  "description" : "OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/<ostype>.common.conf. Value 'unmanaged' can be used to skip and OS specific setup.",
                                  "enum" : [
                                     "debian",
+                                    "devuan",
                                     "ubuntu",
                                     "centos",
                                     "fedora",
@@ -24911,6 +31842,7 @@ var pveapi = [
                                     "archlinux",
                                     "alpine",
                                     "gentoo",
+                                    "nixos",
                                     "unmanaged"
                                  ],
                                  "optional" : 1,
@@ -24951,6 +31883,13 @@ var pveapi = [
                                        "optional" : 1,
                                        "type" : "boolean"
                                     },
+                                    "mountoptions" : {
+                                       "description" : "Extra mount options for rootfs/mps.",
+                                       "format_description" : "opt[;opt...]",
+                                       "optional" : 1,
+                                       "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
+                                       "type" : "string"
+                                    },
                                     "quota" : {
                                        "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
                                        "optional" : 1,
@@ -24991,7 +31930,7 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[volume=]<volume> [,acl=<1|0>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
+                                 "typetext" : "[volume=]<volume> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
                               },
                               "searchdomain" : {
                                  "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
@@ -25036,6 +31975,13 @@ var pveapi = [
                                  "type" : "integer",
                                  "typetext" : "<integer> (0 - N)"
                               },
+                              "tags" : {
+                                 "description" : "Tags of the Container. This is only meta information.",
+                                 "format" : "pve-tag-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
                               "template" : {
                                  "default" : 0,
                                  "description" : "Enable/disable Template.",
@@ -25043,6 +31989,13 @@ var pveapi = [
                                  "type" : "boolean",
                                  "typetext" : "<boolean>"
                               },
+                              "timezone" : {
+                                 "description" : "Time zone to use in the container. If option isn't set, then nothing will be done. Can be set to 'host' to match the host time zone, or an arbitrary time zone option from /usr/share/zoneinfo/zone.tab",
+                                 "format" : "pve-ct-timezone",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
                               "tty" : {
                                  "default" : 2,
                                  "description" : "Specify the number of tty available to the container",
@@ -25068,10 +32021,18 @@ var pveapi = [
                               },
                               "unused[n]" : {
                                  "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
-                                 "format" : "pve-volume-id",
+                                 "format" : {
+                                    "volume" : {
+                                       "default_key" : 1,
+                                       "description" : "The volume that is not used currently.",
+                                       "format" : "pve-volume-id",
+                                       "format_description" : "volume",
+                                       "type" : "string"
+                                    }
+                                 },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "<string>"
+                                 "typetext" : "[volume=]<volume>"
                               },
                               "vmid" : {
                                  "description" : "The (unique) ID of the VM.",
@@ -25106,6 +32067,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "ceph osd in",
                                           "method" : "POST",
                                           "name" : "in",
@@ -25148,6 +32110,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "ceph osd out",
                                           "method" : "POST",
                                           "name" : "out",
@@ -25186,10 +32149,61 @@ var pveapi = [
                                     "leaf" : 1,
                                     "path" : "/nodes/{node}/ceph/osd/{osdid}/out",
                                     "text" : "out"
+                                 },
+                                 {
+                                    "info" : {
+                                       "POST" : {
+                                          "allowtoken" : 1,
+                                          "description" : "Instruct the OSD to scrub.",
+                                          "method" : "POST",
+                                          "name" : "scrub",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "deep" : {
+                                                   "default" : 0,
+                                                   "description" : "If set, instructs a deep scrub instead of a normal one.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "osdid" : {
+                                                   "description" : "OSD ID",
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer>"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/",
+                                                [
+                                                   "Sys.Modify"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "type" : "null"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/ceph/osd/{osdid}/scrub",
+                                    "text" : "scrub"
                                  }
                               ],
                               "info" : {
                                  "DELETE" : {
+                                    "allowtoken" : 1,
                                     "description" : "Destroy OSD",
                                     "method" : "DELETE",
                                     "name" : "destroyosd",
@@ -25230,7 +32244,371 @@ var pveapi = [
                         ],
                         "info" : {
                            "GET" : {
-                              "description" : "Get Ceph osd list/tree.",
+                              "allowtoken" : 1,
+                              "description" : "Get Ceph osd list/tree.",
+                              "method" : "GET",
+                              "name" : "index",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Audit",
+                                       "Datastore.Audit"
+                                    ],
+                                    "any",
+                                    1
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "type" : "object"
+                              }
+                           },
+                           "POST" : {
+                              "allowtoken" : 1,
+                              "description" : "Create OSD",
+                              "method" : "POST",
+                              "name" : "createosd",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "crush-device-class" : {
+                                       "description" : "Set the device class of the OSD in crush.",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "db_dev" : {
+                                       "description" : "Block device name for block.db.",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "db_dev_size" : {
+                                       "default" : "bluestore_block_db_size or 10% of OSD size",
+                                       "description" : "Size in GiB for block.db.",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "requires" : "db_dev",
+                                       "type" : "number",
+                                       "typetext" : "<number> (1 - N)",
+                                       "verbose_description" : "If a block.db is requested but the size is not given, will be automatically selected by: bluestore_block_db_size from the ceph database (osd or global section) or config (osd or global section)in that order. If this is not available, it will be sized 10% of the size of the OSD device. Fails if the available size is not enough."
+                                    },
+                                    "dev" : {
+                                       "description" : "Block device name.",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "encrypted" : {
+                                       "default" : 0,
+                                       "description" : "Enables encryption of the OSD.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "wal_dev" : {
+                                       "description" : "Block device name for block.wal.",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "wal_dev_size" : {
+                                       "default" : "bluestore_block_wal_size or 1% of OSD size",
+                                       "description" : "Size in GiB for block.wal.",
+                                       "minimum" : 0.5,
+                                       "optional" : 1,
+                                       "requires" : "wal_dev",
+                                       "type" : "number",
+                                       "typetext" : "<number> (0.5 - N)",
+                                       "verbose_description" : "If a block.wal is requested but the size is not given, will be automatically selected by: bluestore_block_wal_size from the ceph database (osd or global section) or config (osd or global section)in that order. If this is not available, it will be sized 1% of the size of the OSD device. Fails if the available size is not enough."
+                                    }
+                                 }
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "type" : "string"
+                              }
+                           }
+                        },
+                        "leaf" : 0,
+                        "path" : "/nodes/{node}/ceph/osd",
+                        "text" : "osd"
+                     },
+                     {
+                        "children" : [
+                           {
+                              "info" : {
+                                 "DELETE" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Destroy Ceph Metadata Server",
+                                    "method" : "DELETE",
+                                    "name" : "destroymds",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "name" : {
+                                             "description" : "The name (ID) of the mds",
+                                             "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
+                                             "type" : "string"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/",
+                                          [
+                                             "Sys.Modify"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "POST" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Create Ceph Metadata Server (MDS)",
+                                    "method" : "POST",
+                                    "name" : "createmds",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "hotstandby" : {
+                                             "default" : "0",
+                                             "description" : "Determines whether a ceph-mds daemon should poll and replay the log of an active MDS. Faster switch on MDS failure, but needs more idle resources.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "name" : {
+                                             "default" : "nodename",
+                                             "description" : "The ID for the mds, when omitted the same as the nodename",
+                                             "maxLength" : 200,
+                                             "optional" : 1,
+                                             "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
+                                             "type" : "string"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/",
+                                          [
+                                             "Sys.Modify"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/ceph/mds/{name}",
+                              "text" : "{name}"
+                           }
+                        ],
+                        "info" : {
+                           "GET" : {
+                              "allowtoken" : 1,
+                              "description" : "MDS directory index.",
+                              "method" : "GET",
+                              "name" : "index",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Audit",
+                                       "Datastore.Audit"
+                                    ],
+                                    "any",
+                                    1
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "items" : {
+                                    "properties" : {
+                                       "addr" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "host" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "name" : {
+                                          "description" : "The name (ID) for the MDS"
+                                       },
+                                       "rank" : {
+                                          "optional" : 1,
+                                          "type" : "integer"
+                                       },
+                                       "standby_replay" : {
+                                          "description" : "If true, the standby MDS is polling the active MDS for faster recovery (hot standby).",
+                                          "optional" : 1,
+                                          "type" : "boolean"
+                                       },
+                                       "state" : {
+                                          "description" : "State of the MDS",
+                                          "type" : "string"
+                                       }
+                                    },
+                                    "type" : "object"
+                                 },
+                                 "links" : [
+                                    {
+                                       "href" : "{name}",
+                                       "rel" : "child"
+                                    }
+                                 ],
+                                 "type" : "array"
+                              }
+                           }
+                        },
+                        "leaf" : 0,
+                        "path" : "/nodes/{node}/ceph/mds",
+                        "text" : "mds"
+                     },
+                     {
+                        "children" : [
+                           {
+                              "info" : {
+                                 "DELETE" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Destroy Ceph Manager.",
+                                    "method" : "DELETE",
+                                    "name" : "destroymgr",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "id" : {
+                                             "description" : "The ID of the manager",
+                                             "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
+                                             "type" : "string"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/",
+                                          [
+                                             "Sys.Modify"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "POST" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Create Ceph Manager",
+                                    "method" : "POST",
+                                    "name" : "createmgr",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "id" : {
+                                             "description" : "The ID for the manager, when omitted the same as the nodename",
+                                             "maxLength" : 200,
+                                             "optional" : 1,
+                                             "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
+                                             "type" : "string"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/",
+                                          [
+                                             "Sys.Modify"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/ceph/mgr/{id}",
+                              "text" : "{id}"
+                           }
+                        ],
+                        "info" : {
+                           "GET" : {
+                              "allowtoken" : 1,
+                              "description" : "MGR directory index.",
                               "method" : "GET",
                               "name" : "index",
                               "parameters" : {
@@ -25259,82 +32637,54 @@ var pveapi = [
                               "protected" : 1,
                               "proxyto" : "node",
                               "returns" : {
-                                 "type" : "object"
-                              }
-                           },
-                           "POST" : {
-                              "description" : "Create OSD",
-                              "method" : "POST",
-                              "name" : "createosd",
-                              "parameters" : {
-                                 "additionalProperties" : 0,
-                                 "properties" : {
-                                    "bluestore" : {
-                                       "default" : 1,
-                                       "description" : "Use bluestore instead of filestore. This is the default.",
-                                       "optional" : 1,
-                                       "type" : "boolean",
-                                       "typetext" : "<boolean>"
-                                    },
-                                    "dev" : {
-                                       "description" : "Block device name.",
-                                       "type" : "string",
-                                       "typetext" : "<string>"
-                                    },
-                                    "fstype" : {
-                                       "default" : "xfs",
-                                       "description" : "File system type (filestore only).",
-                                       "enum" : [
-                                          "xfs",
-                                          "ext4"
-                                       ],
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "journal_dev" : {
-                                       "description" : "Block device name for journal (filestore) or block.db (bluestore).",
-                                       "optional" : 1,
-                                       "type" : "string",
-                                       "typetext" : "<string>"
-                                    },
-                                    "node" : {
-                                       "description" : "The cluster node name.",
-                                       "format" : "pve-node",
-                                       "type" : "string",
-                                       "typetext" : "<string>"
+                                 "items" : {
+                                    "properties" : {
+                                       "addr" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "host" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "name" : {
+                                          "description" : "The name (ID) for the MGR"
+                                       },
+                                       "state" : {
+                                          "description" : "State of the MGR",
+                                          "type" : "string"
+                                       }
                                     },
-                                    "wal_dev" : {
-                                       "description" : "Block device name for block.wal (bluestore only).",
-                                       "optional" : 1,
-                                       "type" : "string",
-                                       "typetext" : "<string>"
+                                    "type" : "object"
+                                 },
+                                 "links" : [
+                                    {
+                                       "href" : "{name}",
+                                       "rel" : "child"
                                     }
-                                 }
-                              },
-                              "protected" : 1,
-                              "proxyto" : "node",
-                              "returns" : {
-                                 "type" : "string"
+                                 ],
+                                 "type" : "array"
                               }
                            }
                         },
                         "leaf" : 0,
-                        "path" : "/nodes/{node}/ceph/osd",
-                        "text" : "osd"
+                        "path" : "/nodes/{node}/ceph/mgr",
+                        "text" : "mgr"
                      },
                      {
                         "children" : [
                            {
                               "info" : {
                                  "DELETE" : {
-                                    "description" : "Destroy Ceph Metadata Server",
+                                    "allowtoken" : 1,
+                                    "description" : "Destroy Ceph Monitor and Manager.",
                                     "method" : "DELETE",
-                                    "name" : "destroymds",
+                                    "name" : "destroymon",
                                     "parameters" : {
                                        "additionalProperties" : 0,
                                        "properties" : {
-                                          "name" : {
-                                             "description" : "The name (ID) of the mds",
+                                          "monid" : {
+                                             "description" : "Monitor ID",
                                              "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
                                              "type" : "string"
                                           },
@@ -25362,22 +32712,23 @@ var pveapi = [
                                     }
                                  },
                                  "POST" : {
-                                    "description" : "Create Ceph Metadata Server (MDS)",
+                                    "allowtoken" : 1,
+                                    "description" : "Create Ceph Monitor and Manager",
                                     "method" : "POST",
-                                    "name" : "createmds",
+                                    "name" : "createmon",
                                     "parameters" : {
                                        "additionalProperties" : 0,
                                        "properties" : {
-                                          "hotstandby" : {
-                                             "default" : "0",
-                                             "description" : "Determines whether a ceph-mds daemon should poll and replay the log of an active MDS. Faster switch on MDS failure, but needs more idle resources.",
+                                          "mon-address" : {
+                                             "description" : "Overwrites autodetected monitor IP address(es). Must be in the public network(s) of Ceph.",
+                                             "format" : "ip-list",
                                              "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
-                                          "name" : {
-                                             "default" : "nodename",
-                                             "description" : "The ID for the mds, when omitted the same as the nodename",
+                                          "monid" : {
+                                             "description" : "The ID for the monitor, when omitted the same as the nodename",
+                                             "maxLength" : 200,
                                              "optional" : 1,
                                              "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
                                              "type" : "string"
@@ -25407,15 +32758,16 @@ var pveapi = [
                                  }
                               },
                               "leaf" : 1,
-                              "path" : "/nodes/{node}/ceph/mds/{name}",
-                              "text" : "{name}"
+                              "path" : "/nodes/{node}/ceph/mon/{monid}",
+                              "text" : "{monid}"
                            }
                         ],
                         "info" : {
                            "GET" : {
-                              "description" : "MDS directory index.",
+                              "allowtoken" : 1,
+                              "description" : "Get Ceph monitor list.",
                               "method" : "GET",
-                              "name" : "index",
+                              "name" : "listmon",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
@@ -25453,19 +32805,6 @@ var pveapi = [
                                           "type" : "string"
                                        },
                                        "name" : {
-                                          "description" : "The name (ID) for the MDS"
-                                       },
-                                       "rank" : {
-                                          "optional" : 1,
-                                          "type" : "integer"
-                                       },
-                                       "standby_replay" : {
-                                          "description" : "If true, the standby MDS is polling the active MDS for faster recovery (hot standby).",
-                                          "optional" : 1,
-                                          "type" : "boolean"
-                                       },
-                                       "state" : {
-                                          "description" : "State of the MDS",
                                           "type" : "string"
                                        }
                                     },
@@ -25482,30 +32821,49 @@ var pveapi = [
                            }
                         },
                         "leaf" : 0,
-                        "path" : "/nodes/{node}/ceph/mds",
-                        "text" : "mds"
+                        "path" : "/nodes/{node}/ceph/mon",
+                        "text" : "mon"
                      },
                      {
                         "children" : [
                            {
                               "info" : {
-                                 "DELETE" : {
-                                    "description" : "Destroy Ceph Manager.",
-                                    "method" : "DELETE",
-                                    "name" : "destroymgr",
+                                 "POST" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Create a Ceph filesystem",
+                                    "method" : "POST",
+                                    "name" : "createfs",
                                     "parameters" : {
                                        "additionalProperties" : 0,
                                        "properties" : {
-                                          "id" : {
-                                             "description" : "The ID of the manager",
-                                             "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
-                                             "type" : "string"
+                                          "add-storage" : {
+                                             "default" : 0,
+                                             "description" : "Configure the created CephFS as storage for this cluster.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "name" : {
+                                             "default" : "cephfs",
+                                             "description" : "The ceph filesystem name.",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
                                              "type" : "string",
                                              "typetext" : "<string>"
+                                          },
+                                          "pg_num" : {
+                                             "default" : 128,
+                                             "description" : "Number of placement groups for the backing data pool. The metadata pool will use a quarter of this.",
+                                             "maximum" : 32768,
+                                             "minimum" : 8,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (8 - 32768)"
                                           }
                                        }
                                     },
@@ -25526,24 +32884,19 @@ var pveapi = [
                                  }
                               },
                               "leaf" : 1,
-                              "path" : "/nodes/{node}/ceph/mgr/{id}",
-                              "text" : "{id}"
+                              "path" : "/nodes/{node}/ceph/fs/{name}",
+                              "text" : "{name}"
                            }
                         ],
                         "info" : {
-                           "POST" : {
-                              "description" : "Create Ceph Manager",
-                              "method" : "POST",
-                              "name" : "createmgr",
+                           "GET" : {
+                              "allowtoken" : 1,
+                              "description" : "Directory index.",
+                              "method" : "GET",
+                              "name" : "index",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
-                                    "id" : {
-                                       "description" : "The ID for the manager, when omitted the same as the nodename",
-                                       "optional" : 1,
-                                       "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
-                                       "type" : "string"
-                                    },
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
@@ -25557,49 +32910,394 @@ var pveapi = [
                                     "perm",
                                     "/",
                                     [
-                                       "Sys.Modify"
-                                    ]
+                                       "Sys.Audit",
+                                       "Datastore.Audit"
+                                    ],
+                                    "any",
+                                    1
                                  ]
                               },
                               "protected" : 1,
                               "proxyto" : "node",
                               "returns" : {
-                                 "type" : "string"
+                                 "items" : {
+                                    "properties" : {
+                                       "data_pool" : {
+                                          "description" : "The name of the data pool.",
+                                          "type" : "string"
+                                       },
+                                       "metadata_pool" : {
+                                          "description" : "The name of the metadata pool.",
+                                          "type" : "string"
+                                       },
+                                       "name" : {
+                                          "description" : "The ceph filesystem name.",
+                                          "type" : "string"
+                                       }
+                                    },
+                                    "type" : "object"
+                                 },
+                                 "links" : [
+                                    {
+                                       "href" : "{name}",
+                                       "rel" : "child"
+                                    }
+                                 ],
+                                 "type" : "array"
                               }
                            }
                         },
                         "leaf" : 0,
-                        "path" : "/nodes/{node}/ceph/mgr",
-                        "text" : "mgr"
+                        "path" : "/nodes/{node}/ceph/fs",
+                        "text" : "fs"
                      },
                      {
                         "children" : [
                            {
                               "info" : {
                                  "DELETE" : {
-                                    "description" : "Destroy Ceph Monitor and Manager.",
+                                    "allowtoken" : 1,
+                                    "description" : "Destroy pool",
                                     "method" : "DELETE",
-                                    "name" : "destroymon",
+                                    "name" : "destroypool",
                                     "parameters" : {
                                        "additionalProperties" : 0,
                                        "properties" : {
-                                          "exclude-manager" : {
+                                          "force" : {
                                              "default" : 0,
-                                             "description" : "When set, removes only the monitor, not the manager",
+                                             "description" : "If true, destroys pool even if in use",
                                              "optional" : 1,
                                              "type" : "boolean",
                                              "typetext" : "<boolean>"
                                           },
-                                          "monid" : {
-                                             "description" : "Monitor ID",
-                                             "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
+                                          "name" : {
+                                             "description" : "The name of the pool. It must be unique.",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "remove_ecprofile" : {
+                                             "default" : 1,
+                                             "description" : "Remove the erasure code profile. Defaults to true, if applicable.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "remove_storages" : {
+                                             "default" : 0,
+                                             "description" : "Remove all pveceph-managed storages configured for this pool",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/",
+                                          [
+                                             "Sys.Modify"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "GET" : {
+                                    "allowtoken" : 1,
+                                    "description" : "List pool settings.",
+                                    "method" : "GET",
+                                    "name" : "getpool",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "name" : {
+                                             "description" : "The name of the pool. It must be unique.",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "verbose" : {
+                                             "default" : 0,
+                                             "description" : "If enabled, will display additional data(eg. statistics).",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/",
+                                          [
+                                             "Sys.Audit",
+                                             "Datastore.Audit"
+                                          ],
+                                          "any",
+                                          1
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "properties" : {
+                                          "application" : {
+                                             "default" : "rbd",
+                                             "description" : "The application of the pool.",
+                                             "enum" : [
+                                                "rbd",
+                                                "cephfs",
+                                                "rgw"
+                                             ],
+                                             "optional" : 1,
+                                             "title" : "Application",
+                                             "type" : "string"
+                                          },
+                                          "application_list" : {
+                                             "optional" : 1,
+                                             "title" : "Application",
+                                             "type" : "array"
+                                          },
+                                          "autoscale_status" : {
+                                             "optional" : 1,
+                                             "title" : "Autoscale Status",
+                                             "type" : "object"
+                                          },
+                                          "crush_rule" : {
+                                             "description" : "The rule to use for mapping object placement in the cluster.",
+                                             "optional" : 1,
+                                             "title" : "Crush Rule Name",
+                                             "type" : "string"
+                                          },
+                                          "fast_read" : {
+                                             "title" : "Fast Read",
+                                             "type" : "boolean"
+                                          },
+                                          "hashpspool" : {
+                                             "title" : "hashpspool",
+                                             "type" : "boolean"
+                                          },
+                                          "id" : {
+                                             "title" : "ID",
+                                             "type" : "integer"
+                                          },
+                                          "min_size" : {
+                                             "default" : 2,
+                                             "description" : "Minimum number of replicas per object",
+                                             "maximum" : 7,
+                                             "minimum" : 1,
+                                             "optional" : 1,
+                                             "title" : "Min Size",
+                                             "type" : "integer"
+                                          },
+                                          "name" : {
+                                             "description" : "The name of the pool. It must be unique.",
+                                             "title" : "Name",
+                                             "type" : "string"
+                                          },
+                                          "nodeep-scrub" : {
+                                             "title" : "nodeep-scrub",
+                                             "type" : "boolean"
+                                          },
+                                          "nodelete" : {
+                                             "title" : "nodelete",
+                                             "type" : "boolean"
+                                          },
+                                          "nopgchange" : {
+                                             "title" : "nopgchange",
+                                             "type" : "boolean"
+                                          },
+                                          "noscrub" : {
+                                             "title" : "noscrub",
+                                             "type" : "boolean"
+                                          },
+                                          "nosizechange" : {
+                                             "title" : "nosizechange",
+                                             "type" : "boolean"
+                                          },
+                                          "pg_autoscale_mode" : {
+                                             "default" : "warn",
+                                             "description" : "The automatic PG scaling mode of the pool.",
+                                             "enum" : [
+                                                "on",
+                                                "off",
+                                                "warn"
+                                             ],
+                                             "optional" : 1,
+                                             "title" : "PG Autoscale Mode",
+                                             "type" : "string"
+                                          },
+                                          "pg_num" : {
+                                             "default" : 128,
+                                             "description" : "Number of placement groups.",
+                                             "maximum" : 32768,
+                                             "minimum" : 1,
+                                             "optional" : 1,
+                                             "title" : "PG Num",
+                                             "type" : "integer"
+                                          },
+                                          "pg_num_min" : {
+                                             "description" : "Minimal number of placement groups.",
+                                             "maximum" : 32768,
+                                             "optional" : 1,
+                                             "title" : "min. PG Num",
+                                             "type" : "integer"
+                                          },
+                                          "pgp_num" : {
+                                             "title" : "PGP num",
+                                             "type" : "integer"
+                                          },
+                                          "size" : {
+                                             "default" : 3,
+                                             "description" : "Number of replicas per object",
+                                             "maximum" : 7,
+                                             "minimum" : 1,
+                                             "optional" : 1,
+                                             "title" : "Size",
+                                             "type" : "integer"
+                                          },
+                                          "statistics" : {
+                                             "optional" : 1,
+                                             "title" : "Statistics",
+                                             "type" : "object"
+                                          },
+                                          "target_size" : {
+                                             "description" : "The estimated target size of the pool for the PG autoscaler.",
+                                             "optional" : 1,
+                                             "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
+                                             "title" : "PG Autoscale Target Size",
+                                             "type" : "string"
+                                          },
+                                          "target_size_ratio" : {
+                                             "description" : "The estimated target ratio of the pool for the PG autoscaler.",
+                                             "optional" : 1,
+                                             "title" : "PG Autoscale Target Ratio",
+                                             "type" : "number"
+                                          },
+                                          "use_gmt_hitset" : {
+                                             "title" : "use_gmt_hitset",
+                                             "type" : "boolean"
+                                          },
+                                          "write_fadvise_dontneed" : {
+                                             "title" : "write_fadvise_dontneed",
+                                             "type" : "boolean"
+                                          }
+                                       },
+                                       "type" : "object"
+                                    }
+                                 },
+                                 "PUT" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Change POOL settings",
+                                    "method" : "PUT",
+                                    "name" : "setpool",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "application" : {
+                                             "description" : "The application of the pool.",
+                                             "enum" : [
+                                                "rbd",
+                                                "cephfs",
+                                                "rgw"
+                                             ],
+                                             "optional" : 1,
+                                             "title" : "Application",
                                              "type" : "string"
                                           },
+                                          "crush_rule" : {
+                                             "description" : "The rule to use for mapping object placement in the cluster.",
+                                             "optional" : 1,
+                                             "title" : "Crush Rule Name",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "min_size" : {
+                                             "description" : "Minimum number of replicas per object",
+                                             "maximum" : 7,
+                                             "minimum" : 1,
+                                             "optional" : 1,
+                                             "title" : "Min Size",
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - 7)"
+                                          },
+                                          "name" : {
+                                             "description" : "The name of the pool. It must be unique.",
+                                             "title" : "Name",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
                                              "type" : "string",
                                              "typetext" : "<string>"
+                                          },
+                                          "pg_autoscale_mode" : {
+                                             "description" : "The automatic PG scaling mode of the pool.",
+                                             "enum" : [
+                                                "on",
+                                                "off",
+                                                "warn"
+                                             ],
+                                             "optional" : 1,
+                                             "title" : "PG Autoscale Mode",
+                                             "type" : "string"
+                                          },
+                                          "pg_num" : {
+                                             "description" : "Number of placement groups.",
+                                             "maximum" : 32768,
+                                             "minimum" : 1,
+                                             "optional" : 1,
+                                             "title" : "PG Num",
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - 32768)"
+                                          },
+                                          "pg_num_min" : {
+                                             "description" : "Minimal number of placement groups.",
+                                             "maximum" : 32768,
+                                             "optional" : 1,
+                                             "title" : "min. PG Num",
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (-N - 32768)"
+                                          },
+                                          "size" : {
+                                             "description" : "Number of replicas per object",
+                                             "maximum" : 7,
+                                             "minimum" : 1,
+                                             "optional" : 1,
+                                             "title" : "Size",
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - 7)"
+                                          },
+                                          "target_size" : {
+                                             "description" : "The estimated target size of the pool for the PG autoscaler.",
+                                             "optional" : 1,
+                                             "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
+                                             "title" : "PG Autoscale Target Size",
+                                             "type" : "string"
+                                          },
+                                          "target_size_ratio" : {
+                                             "description" : "The estimated target ratio of the pool for the PG autoscaler.",
+                                             "optional" : 1,
+                                             "title" : "PG Autoscale Target Ratio",
+                                             "type" : "number",
+                                             "typetext" : "<number>"
                                           }
                                        }
                                     },
@@ -25620,15 +33318,16 @@ var pveapi = [
                                  }
                               },
                               "leaf" : 1,
-                              "path" : "/nodes/{node}/ceph/mon/{monid}",
-                              "text" : "{monid}"
+                              "path" : "/nodes/{node}/ceph/pools/{name}",
+                              "text" : "{name}"
                            }
                         ],
                         "info" : {
                            "GET" : {
-                              "description" : "Get Ceph monitor list.",
+                              "allowtoken" : 1,
+                              "description" : "List all pools.",
                               "method" : "GET",
-                              "name" : "listmon",
+                              "name" : "lspools",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
@@ -25657,10 +33356,79 @@ var pveapi = [
                               "returns" : {
                                  "items" : {
                                     "properties" : {
-                                       "addr" : {
+                                       "autoscale_status" : {
+                                          "optional" : 1,
+                                          "title" : "Autoscale Status",
+                                          "type" : "object"
+                                       },
+                                       "bytes_used" : {
+                                          "title" : "Used",
+                                          "type" : "integer"
+                                       },
+                                       "crush_rule" : {
+                                          "title" : "Crush Rule",
+                                          "type" : "integer"
+                                       },
+                                       "crush_rule_name" : {
+                                          "title" : "Crush Rule Name",
                                           "type" : "string"
                                        },
-                                       "name" : {
+                                       "min_size" : {
+                                          "title" : "Min Size",
+                                          "type" : "integer"
+                                       },
+                                       "percent_used" : {
+                                          "title" : "%-Used",
+                                          "type" : "number"
+                                       },
+                                       "pg_autoscale_mode" : {
+                                          "optional" : 1,
+                                          "title" : "PG Autoscale Mode",
+                                          "type" : "string"
+                                       },
+                                       "pg_num" : {
+                                          "title" : "PG Num",
+                                          "type" : "integer"
+                                       },
+                                       "pg_num_final" : {
+                                          "optional" : 1,
+                                          "title" : "Optimal PG Num",
+                                          "type" : "integer"
+                                       },
+                                       "pg_num_min" : {
+                                          "optional" : 1,
+                                          "title" : "min. PG Num",
+                                          "type" : "integer"
+                                       },
+                                       "pool" : {
+                                          "title" : "ID",
+                                          "type" : "integer"
+                                       },
+                                       "pool_name" : {
+                                          "title" : "Name",
+                                          "type" : "string"
+                                       },
+                                       "size" : {
+                                          "title" : "Size",
+                                          "type" : "integer"
+                                       },
+                                       "target_size" : {
+                                          "optional" : 1,
+                                          "title" : "PG Autoscale Target Size",
+                                          "type" : "integer"
+                                       },
+                                       "target_size_ratio" : {
+                                          "optional" : 1,
+                                          "title" : "PG Autoscale Target Ratio",
+                                          "type" : "number"
+                                       },
+                                       "type" : {
+                                          "enum" : [
+                                             "replicated",
+                                             "erasure",
+                                             "unknown"
+                                          ],
+                                          "title" : "Type",
                                           "type" : "string"
                                        }
                                     },
@@ -25668,7 +33436,7 @@ var pveapi = [
                                  },
                                  "links" : [
                                     {
-                                       "href" : "{name}",
+                                       "href" : "{pool_name}",
                                        "rel" : "child"
                                     }
                                  ],
@@ -25676,29 +33444,89 @@ var pveapi = [
                               }
                            },
                            "POST" : {
-                              "description" : "Create Ceph Monitor and Manager",
+                              "allowtoken" : 1,
+                              "description" : "Create Ceph pool",
                               "method" : "POST",
-                              "name" : "createmon",
+                              "name" : "createpool",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
-                                    "exclude-manager" : {
-                                       "default" : 0,
-                                       "description" : "When set, only a monitor will be created.",
+                                    "add_storages" : {
+                                       "default" : "0; for erasure coded pools: 1",
+                                       "description" : "Configure VM and CT storage using the new pool.",
                                        "optional" : 1,
                                        "type" : "boolean",
                                        "typetext" : "<boolean>"
                                     },
-                                    "id" : {
-                                       "description" : "The ID for the monitor, when omitted the same as the nodename",
+                                    "application" : {
+                                       "default" : "rbd",
+                                       "description" : "The application of the pool.",
+                                       "enum" : [
+                                          "rbd",
+                                          "cephfs",
+                                          "rgw"
+                                       ],
+                                       "optional" : 1,
+                                       "title" : "Application",
+                                       "type" : "string"
+                                    },
+                                    "crush_rule" : {
+                                       "description" : "The rule to use for mapping object placement in the cluster.",
+                                       "optional" : 1,
+                                       "title" : "Crush Rule Name",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "erasure-coding" : {
+                                       "description" : "Create an erasure coded pool for RBD with an accompaning replicated pool for metadata storage. With EC, the common ceph options 'size', 'min_size' and 'crush_rule' parameters will be applied to the metadata pool.",
+                                       "format" : {
+                                          "device-class" : {
+                                             "description" : "CRUSH device class. Will create an erasure coded pool plus a replicated pool for metadata.",
+                                             "format_description" : "class",
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "failure-domain" : {
+                                             "default" : "host",
+                                             "description" : "CRUSH failure domain. Default is 'host'. Will create an erasure coded pool plus a replicated pool for metadata.",
+                                             "format_description" : "domain",
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "k" : {
+                                             "description" : "Number of data chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
+                                             "minimum" : 2,
+                                             "type" : "integer"
+                                          },
+                                          "m" : {
+                                             "description" : "Number of coding chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
+                                             "minimum" : 1,
+                                             "type" : "integer"
+                                          },
+                                          "profile" : {
+                                             "description" : "Override the erasure code (EC) profile to use. Will create an erasure coded pool plus a replicated pool for metadata.",
+                                             "format_description" : "profile",
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          }
+                                       },
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "k=<integer> ,m=<integer> [,device-class=<class>] [,failure-domain=<domain>] [,profile=<profile>]"
+                                    },
+                                    "min_size" : {
+                                       "default" : 2,
+                                       "description" : "Minimum number of replicas per object",
+                                       "maximum" : 7,
+                                       "minimum" : 1,
                                        "optional" : 1,
-                                       "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
-                                       "type" : "string"
+                                       "title" : "Min Size",
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (1 - 7)"
                                     },
-                                    "mon-address" : {
-                                       "description" : "Overwrites autodetected monitor IP address. Must be in the public network of ceph.",
-                                       "format" : "ip",
-                                       "optional" : 1,
+                                    "name" : {
+                                       "description" : "The name of the pool. It must be unique.",
+                                       "title" : "Name",
                                        "type" : "string",
                                        "typetext" : "<string>"
                                     },
@@ -25707,6 +33535,60 @@ var pveapi = [
                                        "format" : "pve-node",
                                        "type" : "string",
                                        "typetext" : "<string>"
+                                    },
+                                    "pg_autoscale_mode" : {
+                                       "default" : "warn",
+                                       "description" : "The automatic PG scaling mode of the pool.",
+                                       "enum" : [
+                                          "on",
+                                          "off",
+                                          "warn"
+                                       ],
+                                       "optional" : 1,
+                                       "title" : "PG Autoscale Mode",
+                                       "type" : "string"
+                                    },
+                                    "pg_num" : {
+                                       "default" : 128,
+                                       "description" : "Number of placement groups.",
+                                       "maximum" : 32768,
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "title" : "PG Num",
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (1 - 32768)"
+                                    },
+                                    "pg_num_min" : {
+                                       "description" : "Minimal number of placement groups.",
+                                       "maximum" : 32768,
+                                       "optional" : 1,
+                                       "title" : "min. PG Num",
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (-N - 32768)"
+                                    },
+                                    "size" : {
+                                       "default" : 3,
+                                       "description" : "Number of replicas per object",
+                                       "maximum" : 7,
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "title" : "Size",
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (1 - 7)"
+                                    },
+                                    "target_size" : {
+                                       "description" : "The estimated target size of the pool for the PG autoscaler.",
+                                       "optional" : 1,
+                                       "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
+                                       "title" : "PG Autoscale Target Size",
+                                       "type" : "string"
+                                    },
+                                    "target_size_ratio" : {
+                                       "description" : "The estimated target ratio of the pool for the PG autoscaler.",
+                                       "optional" : 1,
+                                       "title" : "PG Autoscale Target Ratio",
+                                       "type" : "number",
+                                       "typetext" : "<number>"
                                     }
                                  }
                               },
@@ -25727,77 +33609,16 @@ var pveapi = [
                            }
                         },
                         "leaf" : 0,
-                        "path" : "/nodes/{node}/ceph/mon",
-                        "text" : "mon"
+                        "path" : "/nodes/{node}/ceph/pools",
+                        "text" : "pools"
                      },
                      {
-                        "children" : [
-                           {
-                              "info" : {
-                                 "POST" : {
-                                    "description" : "Create a Ceph filesystem",
-                                    "method" : "POST",
-                                    "name" : "createfs",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "add-storage" : {
-                                             "default" : 0,
-                                             "description" : "Configure the created CephFS as storage for this cluster.",
-                                             "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
-                                          },
-                                          "name" : {
-                                             "default" : "cephfs",
-                                             "description" : "The ceph filesystem name.",
-                                             "optional" : 1,
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "pg_num" : {
-                                             "default" : 128,
-                                             "description" : "Number of placement groups for the backing data pool. The metadata pool will use a quarter of this.",
-                                             "maximum" : 32768,
-                                             "minimum" : 8,
-                                             "optional" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (8 - 32768)"
-                                          }
-                                       }
-                                    },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/",
-                                          [
-                                             "Sys.Modify"
-                                          ]
-                                       ]
-                                    },
-                                    "protected" : 1,
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "type" : "string"
-                                    }
-                                 }
-                              },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/ceph/fs/{name}",
-                              "text" : "{name}"
-                           }
-                        ],
                         "info" : {
                            "GET" : {
-                              "description" : "Directory index.",
+                              "allowtoken" : 1,
+                              "description" : "Get Ceph configuration.",
                               "method" : "GET",
-                              "name" : "index",
+                              "name" : "config",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
@@ -25821,46 +33642,23 @@ var pveapi = [
                                     1
                                  ]
                               },
-                              "protected" : 1,
                               "proxyto" : "node",
                               "returns" : {
-                                 "items" : {
-                                    "properties" : {
-                                       "data_pool" : {
-                                          "description" : "The name of the data pool.",
-                                          "type" : "string"
-                                       },
-                                       "metadata_pool" : {
-                                          "description" : "The name of the metadata pool.",
-                                          "type" : "string"
-                                       },
-                                       "name" : {
-                                          "description" : "The ceph filesystem name.",
-                                          "type" : "string"
-                                       }
-                                    },
-                                    "type" : "object"
-                                 },
-                                 "links" : [
-                                    {
-                                       "href" : "{name}",
-                                       "rel" : "child"
-                                    }
-                                 ],
-                                 "type" : "array"
+                                 "type" : "string"
                               }
                            }
                         },
-                        "leaf" : 0,
-                        "path" : "/nodes/{node}/ceph/fs",
-                        "text" : "fs"
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/ceph/config",
+                        "text" : "config"
                      },
                      {
                         "info" : {
                            "GET" : {
-                              "description" : "List local disks.",
+                              "allowtoken" : 1,
+                              "description" : "Get Ceph configuration database.",
                               "method" : "GET",
-                              "name" : "disks",
+                              "name" : "configdb",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
@@ -25869,15 +33667,6 @@ var pveapi = [
                                        "format" : "pve-node",
                                        "type" : "string",
                                        "typetext" : "<string>"
-                                    },
-                                    "type" : {
-                                       "description" : "Only list specific types of disks.",
-                                       "enum" : [
-                                          "unused",
-                                          "journal_disks"
-                                       ],
-                                       "optional" : 1,
-                                       "type" : "string"
                                     }
                                  }
                               },
@@ -25898,32 +33687,22 @@ var pveapi = [
                               "returns" : {
                                  "items" : {
                                     "properties" : {
-                                       "dev" : {
-                                          "type" : "string"
-                                       },
-                                       "gpt" : {
+                                       "can_update_at_runtime" : {
                                           "type" : "boolean"
                                        },
-                                       "model" : {
-                                          "optional" : 1,
+                                       "level" : {
                                           "type" : "string"
                                        },
-                                       "osdid" : {
-                                          "type" : "integer"
-                                       },
-                                       "serial" : {
-                                          "optional" : 1,
+                                       "mask" : {
                                           "type" : "string"
                                        },
-                                       "size" : {
-                                          "type" : "integer"
+                                       "name" : {
+                                          "type" : "string"
                                        },
-                                       "used" : {
-                                          "optional" : 1,
+                                       "section" : {
                                           "type" : "string"
                                        },
-                                       "vendor" : {
-                                          "optional" : 1,
+                                       "value" : {
                                           "type" : "string"
                                        }
                                     },
@@ -25934,51 +33713,13 @@ var pveapi = [
                            }
                         },
                         "leaf" : 1,
-                        "path" : "/nodes/{node}/ceph/disks",
-                        "text" : "disks"
-                     },
-                     {
-                        "info" : {
-                           "GET" : {
-                              "description" : "Get Ceph configuration.",
-                              "method" : "GET",
-                              "name" : "config",
-                              "parameters" : {
-                                 "additionalProperties" : 0,
-                                 "properties" : {
-                                    "node" : {
-                                       "description" : "The cluster node name.",
-                                       "format" : "pve-node",
-                                       "type" : "string",
-                                       "typetext" : "<string>"
-                                    }
-                                 }
-                              },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Audit",
-                                       "Datastore.Audit"
-                                    ],
-                                    "any",
-                                    1
-                                 ]
-                              },
-                              "proxyto" : "node",
-                              "returns" : {
-                                 "type" : "string"
-                              }
-                           }
-                        },
-                        "leaf" : 1,
-                        "path" : "/nodes/{node}/ceph/config",
-                        "text" : "config"
+                        "path" : "/nodes/{node}/ceph/configdb",
+                        "text" : "configdb"
                      },
                      {
                         "info" : {
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Create initial ceph default configuration and setup symlinks.",
                               "method" : "POST",
                               "name" : "init",
@@ -25996,7 +33737,7 @@ var pveapi = [
                                     },
                                     "disable_cephx" : {
                                        "default" : 0,
-                                       "description" : "Disable cephx authentification.\n\nWARNING: cephx is a security feature protecting against man-in-the-middle attacks. Only consider disabling cephx if your network is private!",
+                                       "description" : "Disable cephx authentication.\n\nWARNING: cephx is a security feature protecting against man-in-the-middle attacks. Only consider disabling cephx if your network is private!",
                                        "optional" : 1,
                                        "type" : "boolean",
                                        "typetext" : "<boolean>"
@@ -26067,6 +33808,7 @@ var pveapi = [
                      {
                         "info" : {
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Stop ceph services.",
                               "method" : "POST",
                               "name" : "stop",
@@ -26083,7 +33825,7 @@ var pveapi = [
                                        "default" : "ceph.target",
                                        "description" : "Ceph service name.",
                                        "optional" : 1,
-                                       "pattern" : "(ceph|mon|mds|osd|mgr)\\.[A-Za-z0-9\\-]{1,32}",
+                                       "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
                                        "type" : "string"
                                     }
                                  }
@@ -26111,6 +33853,7 @@ var pveapi = [
                      {
                         "info" : {
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Start ceph services.",
                               "method" : "POST",
                               "name" : "start",
@@ -26127,7 +33870,7 @@ var pveapi = [
                                        "default" : "ceph.target",
                                        "description" : "Ceph service name.",
                                        "optional" : 1,
-                                       "pattern" : "(ceph|mon|mds|osd|mgr)\\.[A-Za-z0-9\\-]{1,32}",
+                                       "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
                                        "type" : "string"
                                     }
                                  }
@@ -26155,6 +33898,7 @@ var pveapi = [
                      {
                         "info" : {
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Restart ceph services.",
                               "method" : "POST",
                               "name" : "restart",
@@ -26171,7 +33915,7 @@ var pveapi = [
                                        "default" : "ceph.target",
                                        "description" : "Ceph service name.",
                                        "optional" : 1,
-                                       "pattern" : "(mon|mds|osd|mgr)\\.[A-Za-z0-9\\-]{1,32}",
+                                       "pattern" : "(mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
                                        "type" : "string"
                                     }
                                  }
@@ -26199,6 +33943,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get ceph status.",
                               "method" : "GET",
                               "name" : "status",
@@ -26236,353 +33981,10 @@ var pveapi = [
                         "path" : "/nodes/{node}/ceph/status",
                         "text" : "status"
                      },
-                     {
-                        "children" : [
-                           {
-                              "info" : {
-                                 "DELETE" : {
-                                    "description" : "Destroy pool",
-                                    "method" : "DELETE",
-                                    "name" : "destroypool",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "force" : {
-                                             "default" : 0,
-                                             "description" : "If true, destroys pool even if in use",
-                                             "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
-                                          },
-                                          "name" : {
-                                             "description" : "The name of the pool. It must be unique.",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "remove_storages" : {
-                                             "default" : 0,
-                                             "description" : "Remove all pveceph-managed storages configured for this pool",
-                                             "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
-                                          }
-                                       }
-                                    },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/",
-                                          [
-                                             "Sys.Modify"
-                                          ]
-                                       ]
-                                    },
-                                    "protected" : 1,
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "type" : "string"
-                                    }
-                                 }
-                              },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/ceph/pools/{name}",
-                              "text" : "{name}"
-                           }
-                        ],
-                        "info" : {
-                           "GET" : {
-                              "description" : "List all pools.",
-                              "method" : "GET",
-                              "name" : "lspools",
-                              "parameters" : {
-                                 "additionalProperties" : 0,
-                                 "properties" : {
-                                    "node" : {
-                                       "description" : "The cluster node name.",
-                                       "format" : "pve-node",
-                                       "type" : "string",
-                                       "typetext" : "<string>"
-                                    }
-                                 }
-                              },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Audit",
-                                       "Datastore.Audit"
-                                    ],
-                                    "any",
-                                    1
-                                 ]
-                              },
-                              "protected" : 1,
-                              "proxyto" : "node",
-                              "returns" : {
-                                 "items" : {
-                                    "properties" : {
-                                       "pool" : {
-                                          "type" : "integer"
-                                       },
-                                       "pool_name" : {
-                                          "type" : "string"
-                                       },
-                                       "size" : {
-                                          "type" : "integer"
-                                       }
-                                    },
-                                    "type" : "object"
-                                 },
-                                 "links" : [
-                                    {
-                                       "href" : "{pool_name}",
-                                       "rel" : "child"
-                                    }
-                                 ],
-                                 "type" : "array"
-                              }
-                           },
-                           "POST" : {
-                              "description" : "Create POOL",
-                              "method" : "POST",
-                              "name" : "createpool",
-                              "parameters" : {
-                                 "additionalProperties" : 0,
-                                 "properties" : {
-                                    "add_storages" : {
-                                       "description" : "Configure VM and CT storage using the new pool.",
-                                       "optional" : 1,
-                                       "type" : "boolean",
-                                       "typetext" : "<boolean>"
-                                    },
-                                    "application" : {
-                                       "description" : "The application of the pool, 'rbd' by default.",
-                                       "enum" : [
-                                          "rbd",
-                                          "cephfs",
-                                          "rgw"
-                                       ],
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "crush_rule" : {
-                                       "description" : "The rule to use for mapping object placement in the cluster.",
-                                       "optional" : 1,
-                                       "type" : "string",
-                                       "typetext" : "<string>"
-                                    },
-                                    "min_size" : {
-                                       "default" : 2,
-                                       "description" : "Minimum number of replicas per object",
-                                       "maximum" : 7,
-                                       "minimum" : 1,
-                                       "optional" : 1,
-                                       "type" : "integer",
-                                       "typetext" : "<integer> (1 - 7)"
-                                    },
-                                    "name" : {
-                                       "description" : "The name of the pool. It must be unique.",
-                                       "type" : "string",
-                                       "typetext" : "<string>"
-                                    },
-                                    "node" : {
-                                       "description" : "The cluster node name.",
-                                       "format" : "pve-node",
-                                       "type" : "string",
-                                       "typetext" : "<string>"
-                                    },
-                                    "pg_num" : {
-                                       "default" : 128,
-                                       "description" : "Number of placement groups.",
-                                       "maximum" : 32768,
-                                       "minimum" : 8,
-                                       "optional" : 1,
-                                       "type" : "integer",
-                                       "typetext" : "<integer> (8 - 32768)"
-                                    },
-                                    "size" : {
-                                       "default" : 3,
-                                       "description" : "Number of replicas per object",
-                                       "maximum" : 7,
-                                       "minimum" : 1,
-                                       "optional" : 1,
-                                       "type" : "integer",
-                                       "typetext" : "<integer> (1 - 7)"
-                                    }
-                                 }
-                              },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Modify"
-                                    ]
-                                 ]
-                              },
-                              "protected" : 1,
-                              "proxyto" : "node",
-                              "returns" : {
-                                 "type" : "string"
-                              }
-                           }
-                        },
-                        "leaf" : 0,
-                        "path" : "/nodes/{node}/ceph/pools",
-                        "text" : "pools"
-                     },
-                     {
-                        "children" : [
-                           {
-                              "info" : {
-                                 "DELETE" : {
-                                    "description" : "Unset a ceph flag",
-                                    "method" : "DELETE",
-                                    "name" : "unset_flag",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "flag" : {
-                                             "description" : "The ceph flag to set/unset",
-                                             "enum" : [
-                                                "full",
-                                                "pause",
-                                                "noup",
-                                                "nodown",
-                                                "noout",
-                                                "noin",
-                                                "nobackfill",
-                                                "norebalance",
-                                                "norecover",
-                                                "noscrub",
-                                                "nodeep-scrub",
-                                                "notieragent"
-                                             ],
-                                             "type" : "string"
-                                          },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          }
-                                       }
-                                    },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/",
-                                          [
-                                             "Sys.Modify"
-                                          ]
-                                       ]
-                                    },
-                                    "protected" : 1,
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "type" : "null"
-                                    }
-                                 },
-                                 "POST" : {
-                                    "description" : "Set a ceph flag",
-                                    "method" : "POST",
-                                    "name" : "set_flag",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "flag" : {
-                                             "description" : "The ceph flag to set/unset",
-                                             "enum" : [
-                                                "full",
-                                                "pause",
-                                                "noup",
-                                                "nodown",
-                                                "noout",
-                                                "noin",
-                                                "nobackfill",
-                                                "norebalance",
-                                                "norecover",
-                                                "noscrub",
-                                                "nodeep-scrub",
-                                                "notieragent"
-                                             ],
-                                             "type" : "string"
-                                          },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          }
-                                       }
-                                    },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/",
-                                          [
-                                             "Sys.Modify"
-                                          ]
-                                       ]
-                                    },
-                                    "protected" : 1,
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "type" : "null"
-                                    }
-                                 }
-                              },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/ceph/flags/{flag}",
-                              "text" : "{flag}"
-                           }
-                        ],
-                        "info" : {
-                           "GET" : {
-                              "description" : "get all set ceph flags",
-                              "method" : "GET",
-                              "name" : "get_flags",
-                              "parameters" : {
-                                 "additionalProperties" : 0,
-                                 "properties" : {
-                                    "node" : {
-                                       "description" : "The cluster node name.",
-                                       "format" : "pve-node",
-                                       "type" : "string",
-                                       "typetext" : "<string>"
-                                    }
-                                 }
-                              },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Audit"
-                                    ]
-                                 ]
-                              },
-                              "protected" : 1,
-                              "proxyto" : "node",
-                              "returns" : {
-                                 "type" : "string"
-                              }
-                           }
-                        },
-                        "leaf" : 0,
-                        "path" : "/nodes/{node}/ceph/flags",
-                        "text" : "flags"
-                     },
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get OSD crush map",
                               "method" : "GET",
                               "name" : "crush",
@@ -26623,6 +34025,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Read ceph log",
                               "method" : "GET",
                               "name" : "log",
@@ -26685,6 +34088,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List ceph rules.",
                               "method" : "GET",
                               "name" : "rules",
@@ -26735,6 +34139,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Directory index.",
                         "method" : "GET",
                         "name" : "index",
@@ -26785,6 +34190,235 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
+                              "description" : "Get the currently configured vzdump defaults.",
+                              "method" : "GET",
+                              "name" : "defaults",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "storage" : {
+                                       "description" : "The storage identifier.",
+                                       "format" : "pve-storage-id",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "description" : "The user needs 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions for the specified storage (or default storage if none specified). Some properties are only returned when the user has 'Sys.Audit' permissions for the node.",
+                                 "user" : "all"
+                              },
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "all" : {
+                                       "default" : 0,
+                                       "description" : "Backup all known guest systems on this host.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
+                                    "bwlimit" : {
+                                       "default" : 0,
+                                       "description" : "Limit I/O bandwidth (KBytes per second).",
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
+                                    "compress" : {
+                                       "default" : "0",
+                                       "description" : "Compress dump file.",
+                                       "enum" : [
+                                          "0",
+                                          "1",
+                                          "gzip",
+                                          "lzo",
+                                          "zstd"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "dumpdir" : {
+                                       "description" : "Store resulting files to specified directory.",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "exclude" : {
+                                       "description" : "Exclude specified guest systems (assumes --all)",
+                                       "format" : "pve-vmid-list",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "exclude-path" : {
+                                       "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root,  other paths match relative to each subdirectory.",
+                                       "format" : "string-alist",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "ionice" : {
+                                       "default" : 7,
+                                       "description" : "Set CFQ ionice priority.",
+                                       "maximum" : 8,
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
+                                    "lockwait" : {
+                                       "default" : 180,
+                                       "description" : "Maximal time to wait for the global lock (minutes).",
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
+                                    "mailnotification" : {
+                                       "default" : "always",
+                                       "description" : "Specify when to send an email",
+                                       "enum" : [
+                                          "always",
+                                          "failure"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "mailto" : {
+                                       "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
+                                       "format" : "email-or-username-list",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "maxfiles" : {
+                                       "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
+                                    "mode" : {
+                                       "default" : "snapshot",
+                                       "description" : "Backup mode.",
+                                       "enum" : [
+                                          "snapshot",
+                                          "suspend",
+                                          "stop"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "node" : {
+                                       "description" : "Only run if executed on this node.",
+                                       "format" : "pve-node",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "notes-template" : {
+                                       "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future.",
+                                       "optional" : 1,
+                                       "requires" : "storage",
+                                       "type" : "string"
+                                    },
+                                    "pigz" : {
+                                       "default" : 0,
+                                       "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
+                                    "pool" : {
+                                       "description" : "Backup all known guest systems included in the specified pool.",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "protected" : {
+                                       "description" : "If true, mark backup(s) as protected.",
+                                       "optional" : 1,
+                                       "requires" : "storage",
+                                       "type" : "boolean"
+                                    },
+                                    "prune-backups" : {
+                                       "default" : "keep-all=1",
+                                       "description" : "Use these retention options instead of those from the storage configuration.",
+                                       "format" : "prune-backups",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "quiet" : {
+                                       "default" : 0,
+                                       "description" : "Be quiet.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
+                                    "remove" : {
+                                       "default" : 1,
+                                       "description" : "Prune older backups according to 'prune-backups'.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
+                                    "script" : {
+                                       "description" : "Use specified hook script.",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "stdexcludes" : {
+                                       "default" : 1,
+                                       "description" : "Exclude temporary files and logs.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
+                                    "stop" : {
+                                       "default" : 0,
+                                       "description" : "Stop running backup jobs on this host.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
+                                    "stopwait" : {
+                                       "default" : 10,
+                                       "description" : "Maximal time to wait until a guest system is stopped (minutes).",
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
+                                    "storage" : {
+                                       "description" : "Store resulting file to this storage.",
+                                       "format" : "pve-storage-id",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "tmpdir" : {
+                                       "description" : "Store temporary files to specified directory.",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "vmid" : {
+                                       "description" : "The ID of the guest system you want to backup.",
+                                       "format" : "pve-vmid-list",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "zstd" : {
+                                       "default" : 1,
+                                       "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    }
+                                 },
+                                 "type" : "object"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/vzdump/defaults",
+                        "text" : "defaults"
+                     },
+                     {
+                        "info" : {
+                           "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Extract configuration from vzdump backup archive.",
                               "method" : "GET",
                               "name" : "extractconfig",
@@ -26822,6 +34456,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Create backup.",
                         "method" : "POST",
                         "name" : "vzdump",
@@ -26850,7 +34485,8 @@ var pveapi = [
                                     "0",
                                     "1",
                                     "gzip",
-                                    "lzo"
+                                    "lzo",
+                                    "zstd"
                                  ],
                                  "optional" : 1,
                                  "type" : "string"
@@ -26869,7 +34505,7 @@ var pveapi = [
                                  "typetext" : "<string>"
                               },
                               "exclude-path" : {
-                                 "description" : "Exclude certain files/directories (shell globs).",
+                                 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root,  other paths match relative to each subdirectory.",
                                  "format" : "string-alist",
                                  "optional" : 1,
                                  "type" : "string",
@@ -26903,15 +34539,14 @@ var pveapi = [
                                  "type" : "string"
                               },
                               "mailto" : {
-                                 "description" : "Comma-separated list of email addresses that should receive email notifications.",
-                                 "format" : "string-list",
+                                 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
+                                 "format" : "email-or-username-list",
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
                               "maxfiles" : {
-                                 "default" : 1,
-                                 "description" : "Maximal number of backup files per guest system.",
+                                 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
                                  "minimum" : 1,
                                  "optional" : 1,
                                  "type" : "integer",
@@ -26935,6 +34570,13 @@ var pveapi = [
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
+                              "notes-template" : {
+                                 "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future.",
+                                 "optional" : 1,
+                                 "requires" : "storage",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
                               "pigz" : {
                                  "default" : 0,
                                  "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
@@ -26942,6 +34584,27 @@ var pveapi = [
                                  "type" : "integer",
                                  "typetext" : "<integer>"
                               },
+                              "pool" : {
+                                 "description" : "Backup all known guest systems included in the specified pool.",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "protected" : {
+                                 "description" : "If true, mark backup(s) as protected.",
+                                 "optional" : 1,
+                                 "requires" : "storage",
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "prune-backups" : {
+                                 "default" : "keep-all=1",
+                                 "description" : "Use these retention options instead of those from the storage configuration.",
+                                 "format" : "prune-backups",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
+                              },
                               "quiet" : {
                                  "default" : 0,
                                  "description" : "Be quiet.",
@@ -26951,7 +34614,7 @@ var pveapi = [
                               },
                               "remove" : {
                                  "default" : 1,
-                                 "description" : "Remove old backup files if there are more than 'maxfiles' backup files.",
+                                 "description" : "Prune older backups according to 'prune-backups'.",
                                  "optional" : 1,
                                  "type" : "boolean",
                                  "typetext" : "<boolean>"
@@ -26962,14 +34625,6 @@ var pveapi = [
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
-                              "size" : {
-                                 "default" : 1024,
-                                 "description" : "Unused, will be removed in a future release.",
-                                 "minimum" : 500,
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "<integer> (500 - N)"
-                              },
                               "stdexcludes" : {
                                  "default" : 1,
                                  "description" : "Exclude temporary files and logs.",
@@ -26985,7 +34640,7 @@ var pveapi = [
                               },
                               "stop" : {
                                  "default" : 0,
-                                 "description" : "Stop runnig backup jobs on this host.",
+                                 "description" : "Stop running backup jobs on this host.",
                                  "optional" : 1,
                                  "type" : "boolean",
                                  "typetext" : "<boolean>"
@@ -27017,11 +34672,18 @@ var pveapi = [
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
+                              },
+                              "zstd" : {
+                                 "default" : 1,
+                                 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer>"
                               }
                            }
                         },
                         "permissions" : {
-                           "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage. The 'maxfiles', 'tmpdir', 'dumpdir', 'script', 'bwlimit' and 'ionice' parameters are restricted to the 'root@pam' user.",
+                           "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage. The 'maxfiles', 'prune-backups', 'tmpdir', 'dumpdir', 'script', 'bwlimit' and 'ionice' parameters are restricted to the 'root@pam' user.",
                            "user" : "all"
                         },
                         "protected" : 1,
@@ -27042,6 +34704,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read service properties",
                                     "method" : "GET",
                                     "name" : "service_state",
@@ -27057,21 +34720,24 @@ var pveapi = [
                                           "service" : {
                                              "description" : "Service ID",
                                              "enum" : [
-                                                "pveproxy",
-                                                "pvedaemon",
-                                                "spiceproxy",
-                                                "pvestatd",
-                                                "pve-cluster",
+                                                "chrony",
                                                 "corosync",
+                                                "cron",
+                                                "ksmtuned",
+                                                "postfix",
+                                                "pve-cluster",
                                                 "pve-firewall",
-                                                "pvefw-logger",
                                                 "pve-ha-crm",
                                                 "pve-ha-lrm",
+                                                "pvedaemon",
+                                                "pvefw-logger",
+                                                "pveproxy",
+                                                "pvescheduler",
+                                                "pvestatd",
+                                                "spiceproxy",
                                                 "sshd",
                                                 "syslog",
-                                                "cron",
-                                                "postfix",
-                                                "ksmtuned",
+                                                "systemd-journald",
                                                 "systemd-timesyncd"
                                              ],
                                              "type" : "string"
@@ -27101,6 +34767,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Start service.",
                                     "method" : "POST",
                                     "name" : "service_start",
@@ -27116,21 +34783,24 @@ var pveapi = [
                                           "service" : {
                                              "description" : "Service ID",
                                              "enum" : [
-                                                "pveproxy",
-                                                "pvedaemon",
-                                                "spiceproxy",
-                                                "pvestatd",
-                                                "pve-cluster",
+                                                "chrony",
                                                 "corosync",
+                                                "cron",
+                                                "ksmtuned",
+                                                "postfix",
+                                                "pve-cluster",
                                                 "pve-firewall",
-                                                "pvefw-logger",
                                                 "pve-ha-crm",
                                                 "pve-ha-lrm",
+                                                "pvedaemon",
+                                                "pvefw-logger",
+                                                "pveproxy",
+                                                "pvescheduler",
+                                                "pvestatd",
+                                                "spiceproxy",
                                                 "sshd",
                                                 "syslog",
-                                                "cron",
-                                                "postfix",
-                                                "ksmtuned",
+                                                "systemd-journald",
                                                 "systemd-timesyncd"
                                              ],
                                              "type" : "string"
@@ -27160,6 +34830,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Stop service.",
                                     "method" : "POST",
                                     "name" : "service_stop",
@@ -27175,21 +34846,24 @@ var pveapi = [
                                           "service" : {
                                              "description" : "Service ID",
                                              "enum" : [
-                                                "pveproxy",
-                                                "pvedaemon",
-                                                "spiceproxy",
-                                                "pvestatd",
-                                                "pve-cluster",
+                                                "chrony",
                                                 "corosync",
+                                                "cron",
+                                                "ksmtuned",
+                                                "postfix",
+                                                "pve-cluster",
                                                 "pve-firewall",
-                                                "pvefw-logger",
                                                 "pve-ha-crm",
                                                 "pve-ha-lrm",
+                                                "pvedaemon",
+                                                "pvefw-logger",
+                                                "pveproxy",
+                                                "pvescheduler",
+                                                "pvestatd",
+                                                "spiceproxy",
                                                 "sshd",
                                                 "syslog",
-                                                "cron",
-                                                "postfix",
-                                                "ksmtuned",
+                                                "systemd-journald",
                                                 "systemd-timesyncd"
                                              ],
                                              "type" : "string"
@@ -27219,7 +34893,8 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
-                                    "description" : "Restart service.",
+                                    "allowtoken" : 1,
+                                    "description" : "Hard restart service. Use reload if you want to reduce interruptions.",
                                     "method" : "POST",
                                     "name" : "service_restart",
                                     "parameters" : {
@@ -27234,21 +34909,24 @@ var pveapi = [
                                           "service" : {
                                              "description" : "Service ID",
                                              "enum" : [
-                                                "pveproxy",
-                                                "pvedaemon",
-                                                "spiceproxy",
-                                                "pvestatd",
-                                                "pve-cluster",
+                                                "chrony",
                                                 "corosync",
+                                                "cron",
+                                                "ksmtuned",
+                                                "postfix",
+                                                "pve-cluster",
                                                 "pve-firewall",
-                                                "pvefw-logger",
                                                 "pve-ha-crm",
                                                 "pve-ha-lrm",
+                                                "pvedaemon",
+                                                "pvefw-logger",
+                                                "pveproxy",
+                                                "pvescheduler",
+                                                "pvestatd",
+                                                "spiceproxy",
                                                 "sshd",
                                                 "syslog",
-                                                "cron",
-                                                "postfix",
-                                                "ksmtuned",
+                                                "systemd-journald",
                                                 "systemd-timesyncd"
                                              ],
                                              "type" : "string"
@@ -27278,7 +34956,8 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
-                                    "description" : "Reload service.",
+                                    "allowtoken" : 1,
+                                    "description" : "Reload service. Falls back to restart if service cannot be reloaded.",
                                     "method" : "POST",
                                     "name" : "service_reload",
                                     "parameters" : {
@@ -27293,21 +34972,24 @@ var pveapi = [
                                           "service" : {
                                              "description" : "Service ID",
                                              "enum" : [
-                                                "pveproxy",
-                                                "pvedaemon",
-                                                "spiceproxy",
-                                                "pvestatd",
-                                                "pve-cluster",
+                                                "chrony",
                                                 "corosync",
+                                                "cron",
+                                                "ksmtuned",
+                                                "postfix",
+                                                "pve-cluster",
                                                 "pve-firewall",
-                                                "pvefw-logger",
                                                 "pve-ha-crm",
                                                 "pve-ha-lrm",
+                                                "pvedaemon",
+                                                "pvefw-logger",
+                                                "pveproxy",
+                                                "pvescheduler",
+                                                "pvestatd",
+                                                "spiceproxy",
                                                 "sshd",
                                                 "syslog",
-                                                "cron",
-                                                "postfix",
-                                                "ksmtuned",
+                                                "systemd-journald",
                                                 "systemd-timesyncd"
                                              ],
                                              "type" : "string"
@@ -27337,6 +35019,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Directory index",
                               "method" : "GET",
                               "name" : "srvcmdidx",
@@ -27352,21 +35035,24 @@ var pveapi = [
                                     "service" : {
                                        "description" : "Service ID",
                                        "enum" : [
-                                          "pveproxy",
-                                          "pvedaemon",
-                                          "spiceproxy",
-                                          "pvestatd",
-                                          "pve-cluster",
+                                          "chrony",
                                           "corosync",
+                                          "cron",
+                                          "ksmtuned",
+                                          "postfix",
+                                          "pve-cluster",
                                           "pve-firewall",
-                                          "pvefw-logger",
                                           "pve-ha-crm",
                                           "pve-ha-lrm",
+                                          "pvedaemon",
+                                          "pvefw-logger",
+                                          "pveproxy",
+                                          "pvescheduler",
+                                          "pvestatd",
+                                          "spiceproxy",
                                           "sshd",
                                           "syslog",
-                                          "cron",
-                                          "postfix",
-                                          "ksmtuned",
+                                          "systemd-journald",
                                           "systemd-timesyncd"
                                        ],
                                        "type" : "string"
@@ -27408,6 +35094,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Service list.",
                         "method" : "GET",
                         "name" : "index",
@@ -27454,7 +35141,39 @@ var pveapi = [
                },
                {
                   "info" : {
+                     "DELETE" : {
+                        "allowtoken" : 1,
+                        "description" : "Delete subscription key of this node.",
+                        "method" : "DELETE",
+                        "name" : "delete",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "node" : {
+                                 "description" : "The cluster node name.",
+                                 "format" : "pve-node",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/nodes/{node}",
+                              [
+                                 "Sys.Modify"
+                              ]
+                           ]
+                        },
+                        "protected" : 1,
+                        "proxyto" : "node",
+                        "returns" : {
+                           "type" : "null"
+                        }
+                     },
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read subscription info.",
                         "method" : "GET",
                         "name" : "get",
@@ -27478,6 +35197,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Update subscription info.",
                         "method" : "POST",
                         "name" : "update",
@@ -27515,6 +35235,7 @@ var pveapi = [
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Set subscription key.",
                         "method" : "PUT",
                         "name" : "set",
@@ -27560,6 +35281,7 @@ var pveapi = [
                      {
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "Delete network device configuration",
                               "method" : "DELETE",
                               "name" : "delete_network",
@@ -27598,6 +35320,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Read network device configuration",
                               "method" : "GET",
                               "name" : "network_config",
@@ -27643,6 +35366,7 @@ var pveapi = [
                               }
                            },
                            "PUT" : {
+                              "allowtoken" : 1,
                               "description" : "Update network device configuration",
                               "method" : "PUT",
                               "name" : "update_network",
@@ -27671,6 +35395,13 @@ var pveapi = [
                                        "type" : "boolean",
                                        "typetext" : "<boolean>"
                                     },
+                                    "bond-primary" : {
+                                       "description" : "Specify the primary interface for active-backup bond.",
+                                       "format" : "pve-iface",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
                                     "bond_mode" : {
                                        "description" : "Bonding mode.",
                                        "enum" : [
@@ -27699,7 +35430,7 @@ var pveapi = [
                                        "type" : "string"
                                     },
                                     "bridge_ports" : {
-                                       "description" : "Specify the iterfaces you want to add to your bridge.",
+                                       "description" : "Specify the interfaces you want to add to your bridge.",
                                        "format" : "pve-iface-list",
                                        "optional" : 1,
                                        "type" : "string",
@@ -27766,6 +35497,14 @@ var pveapi = [
                                        "type" : "string",
                                        "typetext" : "<string>"
                                     },
+                                    "mtu" : {
+                                       "description" : "MTU.",
+                                       "maximum" : 65520,
+                                       "minimum" : 1280,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (1280 - 65520)"
+                                    },
                                     "netmask" : {
                                        "description" : "Network mask.",
                                        "format" : "ipv4mask",
@@ -27811,7 +35550,7 @@ var pveapi = [
                                        "typetext" : "<string>"
                                     },
                                     "ovs_ports" : {
-                                       "description" : "Specify the iterfaces you want to add to your bridge.",
+                                       "description" : "Specify the interfaces you want to add to your bridge.",
                                        "format" : "pve-iface-list",
                                        "optional" : 1,
                                        "type" : "string",
@@ -27847,6 +35586,21 @@ var pveapi = [
                                           "unknown"
                                        ],
                                        "type" : "string"
+                                    },
+                                    "vlan-id" : {
+                                       "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
+                                       "maximum" : 4094,
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (1 - 4094)"
+                                    },
+                                    "vlan-raw-device" : {
+                                       "description" : "Specify the raw interface for the vlan interface.",
+                                       "format" : "pve-iface",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -27873,6 +35627,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "DELETE" : {
+                        "allowtoken" : 1,
                         "description" : "Revert network configuration changes.",
                         "method" : "DELETE",
                         "name" : "revert_network_changes",
@@ -27903,6 +35658,7 @@ var pveapi = [
                         }
                      },
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "List available networks",
                         "method" : "GET",
                         "name" : "index",
@@ -27953,6 +35709,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Create network device configuration",
                         "method" : "POST",
                         "name" : "create_network",
@@ -27981,6 +35738,13 @@ var pveapi = [
                                  "type" : "boolean",
                                  "typetext" : "<boolean>"
                               },
+                              "bond-primary" : {
+                                 "description" : "Specify the primary interface for active-backup bond.",
+                                 "format" : "pve-iface",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
                               "bond_mode" : {
                                  "description" : "Bonding mode.",
                                  "enum" : [
@@ -28009,7 +35773,7 @@ var pveapi = [
                                  "type" : "string"
                               },
                               "bridge_ports" : {
-                                 "description" : "Specify the iterfaces you want to add to your bridge.",
+                                 "description" : "Specify the interfaces you want to add to your bridge.",
                                  "format" : "pve-iface-list",
                                  "optional" : 1,
                                  "type" : "string",
@@ -28069,6 +35833,14 @@ var pveapi = [
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
+                              "mtu" : {
+                                 "description" : "MTU.",
+                                 "maximum" : 65520,
+                                 "minimum" : 1280,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (1280 - 65520)"
+                              },
                               "netmask" : {
                                  "description" : "Network mask.",
                                  "format" : "ipv4mask",
@@ -28114,7 +35886,7 @@ var pveapi = [
                                  "typetext" : "<string>"
                               },
                               "ovs_ports" : {
-                                 "description" : "Specify the iterfaces you want to add to your bridge.",
+                                 "description" : "Specify the interfaces you want to add to your bridge.",
                                  "format" : "pve-iface-list",
                                  "optional" : 1,
                                  "type" : "string",
@@ -28150,6 +35922,21 @@ var pveapi = [
                                     "unknown"
                                  ],
                                  "type" : "string"
+                              },
+                              "vlan-id" : {
+                                 "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
+                                 "maximum" : 4094,
+                                 "minimum" : 1,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (1 - 4094)"
+                              },
+                              "vlan-raw-device" : {
+                                 "description" : "Specify the raw interface for the vlan interface.",
+                                 "format" : "pve-iface",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -28169,6 +35956,7 @@ var pveapi = [
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Reload network configuration",
                         "method" : "PUT",
                         "name" : "reload_network_config",
@@ -28210,6 +35998,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read task log.",
                                     "method" : "GET",
                                     "name" : "read_task_log",
@@ -28218,6 +36007,7 @@ var pveapi = [
                                        "properties" : {
                                           "limit" : {
                                              "default" : 50,
+                                             "description" : "The maximum amount of lines that should be printed.",
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
@@ -28231,19 +36021,21 @@ var pveapi = [
                                           },
                                           "start" : {
                                              "default" : 0,
+                                             "description" : "The line number to start printing at.",
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
                                              "typetext" : "<integer> (0 - N)"
                                           },
                                           "upid" : {
+                                             "description" : "The task's unique ID.",
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           }
                                        }
                                     },
                                     "permissions" : {
-                                       "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if the task does not belong to him.",
+                                       "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they aren't the owner of the task.",
                                        "user" : "all"
                                     },
                                     "protected" : 1,
@@ -28273,6 +36065,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read task status.",
                                     "method" : "GET",
                                     "name" : "read_task_status",
@@ -28286,28 +36079,51 @@ var pveapi = [
                                              "typetext" : "<string>"
                                           },
                                           "upid" : {
+                                             "description" : "The task's unique ID.",
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           }
                                        }
                                     },
                                     "permissions" : {
-                                       "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if the task does not belong to him.",
+                                       "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they are not the owner of the task.",
                                        "user" : "all"
                                     },
                                     "protected" : 1,
                                     "proxyto" : "node",
                                     "returns" : {
                                        "properties" : {
+                                          "exitstatus" : {
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "id" : {
+                                             "type" : "string"
+                                          },
+                                          "node" : {
+                                             "type" : "string"
+                                          },
                                           "pid" : {
                                              "type" : "integer"
                                           },
+                                          "starttime" : {
+                                             "type" : "number"
+                                          },
                                           "status" : {
                                              "enum" : [
                                                 "running",
                                                 "stopped"
                                              ],
                                              "type" : "string"
+                                          },
+                                          "type" : {
+                                             "type" : "string"
+                                          },
+                                          "upid" : {
+                                             "type" : "string"
+                                          },
+                                          "user" : {
+                                             "type" : "string"
                                           }
                                        },
                                        "type" : "object"
@@ -28321,6 +36137,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "Stop a task.",
                               "method" : "DELETE",
                               "name" : "stop_task",
@@ -28340,7 +36157,7 @@ var pveapi = [
                                  }
                               },
                               "permissions" : {
-                                 "description" : "The user needs 'Sys.Modify' permissions on '/nodes/<node>' if the task does not belong to him.",
+                                 "description" : "The user needs 'Sys.Modify' permissions on '/nodes/<node>' if they aren't the owner of the task.",
                                  "user" : "all"
                               },
                               "protected" : 1,
@@ -28350,6 +36167,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "",
                               "method" : "GET",
                               "name" : "upid_index",
@@ -28393,6 +36211,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read task list for one node (finished tasks).",
                         "method" : "GET",
                         "name" : "node_tasks",
@@ -28401,6 +36220,7 @@ var pveapi = [
                            "properties" : {
                               "errors" : {
                                  "default" : 0,
+                                 "description" : "Only list tasks with a status of ERROR.",
                                  "optional" : 1,
                                  "type" : "boolean",
                                  "typetext" : "<boolean>"
@@ -28419,6 +36239,12 @@ var pveapi = [
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
+                              "since" : {
+                                 "description" : "Only list tasks since this UNIX epoch.",
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer>"
+                              },
                               "source" : {
                                  "default" : "archive",
                                  "description" : "List archived, active or all tasks.",
@@ -28438,12 +36264,25 @@ var pveapi = [
                                  "type" : "integer",
                                  "typetext" : "<integer> (0 - N)"
                               },
+                              "statusfilter" : {
+                                 "description" : "List of Task States that should be returned.",
+                                 "format" : "pve-task-status-type-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
                               "typefilter" : {
                                  "description" : "Only list tasks of this type (e.g., vzstart, vzdump).",
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
+                              "until" : {
+                                 "description" : "Only list tasks until this UNIX epoch.",
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer>"
+                              },
                               "userfilter" : {
                                  "description" : "Only list tasks from this user.",
                                  "optional" : 1,
@@ -28531,9 +36370,10 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
-                              "description" : "Scan zfs pool list on local node.",
+                              "allowtoken" : 1,
+                              "description" : "Scan remote NFS server.",
                               "method" : "GET",
-                              "name" : "zfsscan",
+                              "name" : "nfsscan",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
@@ -28542,6 +36382,12 @@ var pveapi = [
                                        "format" : "pve-node",
                                        "type" : "string",
                                        "typetext" : "<string>"
+                                    },
+                                    "server" : {
+                                       "description" : "The server address (name or IP).",
+                                       "format" : "pve-storage-server",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -28559,8 +36405,12 @@ var pveapi = [
                               "returns" : {
                                  "items" : {
                                     "properties" : {
-                                       "pool" : {
-                                          "description" : "ZFS pool name.",
+                                       "options" : {
+                                          "description" : "NFS export options.",
+                                          "type" : "string"
+                                       },
+                                       "path" : {
+                                          "description" : "The exported path.",
                                           "type" : "string"
                                        }
                                     },
@@ -28571,29 +36421,48 @@ var pveapi = [
                            }
                         },
                         "leaf" : 1,
-                        "path" : "/nodes/{node}/scan/zfs",
-                        "text" : "zfs"
+                        "path" : "/nodes/{node}/scan/nfs",
+                        "text" : "nfs"
                      },
                      {
                         "info" : {
                            "GET" : {
-                              "description" : "Scan remote NFS server.",
+                              "allowtoken" : 1,
+                              "description" : "Scan remote CIFS server.",
                               "method" : "GET",
-                              "name" : "nfsscan",
+                              "name" : "cifsscan",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
+                                    "domain" : {
+                                       "description" : "SMB domain (Workgroup).",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
                                        "type" : "string",
                                        "typetext" : "<string>"
                                     },
+                                    "password" : {
+                                       "description" : "User password.",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
                                     "server" : {
                                        "description" : "The server address (name or IP).",
                                        "format" : "pve-storage-server",
                                        "type" : "string",
                                        "typetext" : "<string>"
+                                    },
+                                    "username" : {
+                                       "description" : "User name.",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -28611,12 +36480,12 @@ var pveapi = [
                               "returns" : {
                                  "items" : {
                                     "properties" : {
-                                       "options" : {
-                                          "description" : "NFS export options.",
+                                       "description" : {
+                                          "description" : "Descriptive text from server.",
                                           "type" : "string"
                                        },
-                                       "path" : {
-                                          "description" : "The exported path.",
+                                       "share" : {
+                                          "description" : "The cifs share name.",
                                           "type" : "string"
                                        }
                                     },
@@ -28627,23 +36496,24 @@ var pveapi = [
                            }
                         },
                         "leaf" : 1,
-                        "path" : "/nodes/{node}/scan/nfs",
-                        "text" : "nfs"
+                        "path" : "/nodes/{node}/scan/cifs",
+                        "text" : "cifs"
                      },
                      {
                         "info" : {
                            "GET" : {
-                              "description" : "Scan remote CIFS server.",
+                              "allowtoken" : 1,
+                              "description" : "Scan remote Proxmox Backup Server.",
                               "method" : "GET",
-                              "name" : "cifsscan",
+                              "name" : "pbsscan",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
-                                    "domain" : {
-                                       "description" : "SMB domain (Workgroup).",
+                                    "fingerprint" : {
+                                       "description" : "Certificate SHA 256 fingerprint.",
                                        "optional" : 1,
-                                       "type" : "string",
-                                       "typetext" : "<string>"
+                                       "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
+                                       "type" : "string"
                                     },
                                     "node" : {
                                        "description" : "The cluster node name.",
@@ -28652,11 +36522,19 @@ var pveapi = [
                                        "typetext" : "<string>"
                                     },
                                     "password" : {
-                                       "description" : "User password.",
-                                       "optional" : 1,
+                                       "description" : "User password or API token secret.",
                                        "type" : "string",
                                        "typetext" : "<string>"
                                     },
+                                    "port" : {
+                                       "default" : 8007,
+                                       "description" : "Optional port.",
+                                       "maximum" : 65535,
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (1 - 65535)"
+                                    },
                                     "server" : {
                                        "description" : "The server address (name or IP).",
                                        "format" : "pve-storage-server",
@@ -28664,8 +36542,7 @@ var pveapi = [
                                        "typetext" : "<string>"
                                     },
                                     "username" : {
-                                       "description" : "User name.",
-                                       "optional" : 1,
+                                       "description" : "User-name or API token-ID.",
                                        "type" : "string",
                                        "typetext" : "<string>"
                                     }
@@ -28685,12 +36562,13 @@ var pveapi = [
                               "returns" : {
                                  "items" : {
                                     "properties" : {
-                                       "description" : {
-                                          "description" : "Descriptive text from server.",
+                                       "comment" : {
+                                          "description" : "Comment from server.",
+                                          "optional" : 1,
                                           "type" : "string"
                                        },
-                                       "share" : {
-                                          "description" : "The cifs share name.",
+                                       "store" : {
+                                          "description" : "The datastore name.",
                                           "type" : "string"
                                        }
                                     },
@@ -28701,12 +36579,13 @@ var pveapi = [
                            }
                         },
                         "leaf" : 1,
-                        "path" : "/nodes/{node}/scan/cifs",
-                        "text" : "cifs"
+                        "path" : "/nodes/{node}/scan/pbs",
+                        "text" : "pbs"
                      },
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Scan remote GlusterFS server.",
                               "method" : "GET",
                               "name" : "glusterfsscan",
@@ -28759,6 +36638,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Scan remote iSCSI server.",
                               "method" : "GET",
                               "name" : "iscsiscan",
@@ -28815,6 +36695,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List local LVM volume groups.",
                               "method" : "GET",
                               "name" : "lvmscan",
@@ -28861,6 +36742,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List local LVM Thin Pools.",
                               "method" : "GET",
                               "name" : "lvmthinscan",
@@ -28912,9 +36794,10 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
-                              "description" : "List local USB devices.",
+                              "allowtoken" : 1,
+                              "description" : "Scan zfs pool list on local node.",
                               "method" : "GET",
-                              "name" : "usbscan",
+                              "name" : "zfsscan",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
@@ -28929,9 +36812,9 @@ var pveapi = [
                               "permissions" : {
                                  "check" : [
                                     "perm",
-                                    "/",
+                                    "/storage",
                                     [
-                                       "Sys.Modify"
+                                       "Datastore.Allocate"
                                     ]
                                  ]
                               },
@@ -28940,44 +36823,8 @@ var pveapi = [
                               "returns" : {
                                  "items" : {
                                     "properties" : {
-                                       "busnum" : {
-                                          "type" : "integer"
-                                       },
-                                       "class" : {
-                                          "type" : "integer"
-                                       },
-                                       "devnum" : {
-                                          "type" : "integer"
-                                       },
-                                       "level" : {
-                                          "type" : "integer"
-                                       },
-                                       "manufacturer" : {
-                                          "optional" : 1,
-                                          "type" : "string"
-                                       },
-                                       "port" : {
-                                          "type" : "integer"
-                                       },
-                                       "prodid" : {
-                                          "type" : "string"
-                                       },
-                                       "product" : {
-                                          "optional" : 1,
-                                          "type" : "string"
-                                       },
-                                       "serial" : {
-                                          "optional" : 1,
-                                          "type" : "string"
-                                       },
-                                       "speed" : {
-                                          "type" : "string"
-                                       },
-                                       "usbpath" : {
-                                          "optional" : 1,
-                                          "type" : "string"
-                                       },
-                                       "vendid" : {
+                                       "pool" : {
+                                          "description" : "ZFS pool name.",
                                           "type" : "string"
                                        }
                                     },
@@ -28988,12 +36835,13 @@ var pveapi = [
                            }
                         },
                         "leaf" : 1,
-                        "path" : "/nodes/{node}/scan/usb",
-                        "text" : "usb"
+                        "path" : "/nodes/{node}/scan/zfs",
+                        "text" : "zfs"
                      }
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Index of available scan methods",
                         "method" : "GET",
                         "name" : "index",
@@ -29043,6 +36891,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "List mediated device types for given PCI device.",
                                           "method" : "GET",
                                           "name" : "mdevscan",
@@ -29101,6 +36950,7 @@ var pveapi = [
                               ],
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Index of available pci methods",
                                     "method" : "GET",
                                     "name" : "pciindex",
@@ -29148,6 +36998,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List local PCI devices.",
                               "method" : "GET",
                               "name" : "pciscan",
@@ -29161,8 +37012,8 @@ var pveapi = [
                                        "typetext" : "<string>"
                                     },
                                     "pci-class-blacklist" : {
-                                       "default" : "05;06;08;0b",
-                                       "description" : "A list of blacklisted PCI classes, which will not be returned. Following are filtered by default: Memory Controller (05), Bridge (06), Generic System Peripheral (08) and Processor (0b).",
+                                       "default" : "05;06;0b",
+                                       "description" : "A list of blacklisted PCI classes, which will not be returned. Following are filtered by default: Memory Controller (05), Bridge (06) and Processor (0b).",
                                        "format" : "string-list",
                                        "optional" : 1,
                                        "type" : "string",
@@ -29258,10 +37109,94 @@ var pveapi = [
                         "leaf" : 0,
                         "path" : "/nodes/{node}/hardware/pci",
                         "text" : "pci"
+                     },
+                     {
+                        "info" : {
+                           "GET" : {
+                              "allowtoken" : 1,
+                              "description" : "List local USB devices.",
+                              "method" : "GET",
+                              "name" : "usbscan",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Modify"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "items" : {
+                                    "properties" : {
+                                       "busnum" : {
+                                          "type" : "integer"
+                                       },
+                                       "class" : {
+                                          "type" : "integer"
+                                       },
+                                       "devnum" : {
+                                          "type" : "integer"
+                                       },
+                                       "level" : {
+                                          "type" : "integer"
+                                       },
+                                       "manufacturer" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "port" : {
+                                          "type" : "integer"
+                                       },
+                                       "prodid" : {
+                                          "type" : "string"
+                                       },
+                                       "product" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "serial" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "speed" : {
+                                          "type" : "string"
+                                       },
+                                       "usbpath" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "vendid" : {
+                                          "type" : "string"
+                                       }
+                                    },
+                                    "type" : "object"
+                                 },
+                                 "type" : "array"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/hardware/usb",
+                        "text" : "usb"
                      }
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Index of hardware types",
                         "method" : "GET",
                         "name" : "index",
@@ -29306,17 +37241,376 @@ var pveapi = [
                   "children" : [
                      {
                         "children" : [
+                           {
+                              "info" : {
+                                 "GET" : {
+                                    "allowtoken" : 1,
+                                    "description" : "List all custom and default CPU models.",
+                                    "method" : "GET",
+                                    "name" : "index",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "description" : "Only returns custom models when the current user has Sys.Audit on /nodes.",
+                                       "user" : "all"
+                                    },
+                                    "returns" : {
+                                       "items" : {
+                                          "properties" : {
+                                             "custom" : {
+                                                "description" : "True if this is a custom CPU model.",
+                                                "type" : "boolean"
+                                             },
+                                             "name" : {
+                                                "description" : "Name of the CPU model. Identifies it for subsequent API calls. Prefixed with 'custom-' for custom models.",
+                                                "type" : "string"
+                                             },
+                                             "vendor" : {
+                                                "description" : "CPU vendor visible to the guest when this model is selected. Vendor of 'reported-model' in case of custom models.",
+                                                "type" : "string"
+                                             }
+                                          },
+                                          "type" : "object"
+                                       },
+                                       "links" : [
+                                          {
+                                             "href" : "{name}",
+                                             "rel" : "child"
+                                          }
+                                       ],
+                                       "type" : "array"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/capabilities/qemu/cpu",
+                              "text" : "cpu"
+                           },
+                           {
+                              "info" : {
+                                 "GET" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Get available QEMU/KVM machine types.",
+                                    "method" : "GET",
+                                    "name" : "types",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "user" : "all"
+                                    },
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "items" : {
+                                          "additionalProperties" : 1,
+                                          "properties" : {
+                                             "id" : {
+                                                "description" : "Full name of machine type and version.",
+                                                "type" : "string"
+                                             },
+                                             "type" : {
+                                                "description" : "The machine type.",
+                                                "enum" : [
+                                                   "q35",
+                                                   "i440fx"
+                                                ],
+                                                "type" : "string"
+                                             },
+                                             "version" : {
+                                                "description" : "The machine version.",
+                                                "type" : "string"
+                                             }
+                                          },
+                                          "type" : "object"
+                                       },
+                                       "type" : "array"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/capabilities/qemu/machines",
+                              "text" : "machines"
+                           }
+                        ],
+                        "info" : {
+                           "GET" : {
+                              "allowtoken" : 1,
+                              "description" : "QEMU capabilities index.",
+                              "method" : "GET",
+                              "name" : "qemu_caps_index",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "user" : "all"
+                              },
+                              "returns" : {
+                                 "items" : {
+                                    "properties" : {},
+                                    "type" : "object"
+                                 },
+                                 "links" : [
+                                    {
+                                       "href" : "{name}",
+                                       "rel" : "child"
+                                    }
+                                 ],
+                                 "type" : "array"
+                              }
+                           }
+                        },
+                        "leaf" : 0,
+                        "path" : "/nodes/{node}/capabilities/qemu",
+                        "text" : "qemu"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "allowtoken" : 1,
+                        "description" : "Node capabilities index.",
+                        "method" : "GET",
+                        "name" : "index",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "node" : {
+                                 "description" : "The cluster node name.",
+                                 "format" : "pve-node",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "user" : "all"
+                        },
+                        "returns" : {
+                           "items" : {
+                              "properties" : {},
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{name}",
+                                 "rel" : "child"
+                              }
+                           ],
+                           "type" : "array"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/nodes/{node}/capabilities",
+                  "text" : "capabilities"
+               },
+               {
+                  "children" : [
+                     {
+                        "children" : [
+                           {
+                              "info" : {
+                                 "DELETE" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Prune backups. Only those using the standard naming scheme are considered.",
+                                    "method" : "DELETE",
+                                    "name" : "delete",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "prune-backups" : {
+                                             "description" : "Use these retention options instead of those from the storage configuration.",
+                                             "format" : "prune-backups",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
+                                          },
+                                          "storage" : {
+                                             "description" : "The storage identifier.",
+                                             "format" : "pve-storage-id",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "type" : {
+                                             "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
+                                             "enum" : [
+                                                "qemu",
+                                                "lxc"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "vmid" : {
+                                             "description" : "Only prune backups for this VM.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "description" : "You need the 'Datastore.Allocate' privilege on the storage (or if a VM ID is specified, 'Datastore.AllocateSpace' and 'VM.Backup' for the VM).",
+                                       "user" : "all"
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "GET" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Get prune information for backups. NOTE: this is only a preview and might not be what a subsequent prune call does if backups are removed/added in the meantime.",
+                                    "method" : "GET",
+                                    "name" : "dryrun",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "prune-backups" : {
+                                             "description" : "Use these retention options instead of those from the storage configuration.",
+                                             "format" : "prune-backups",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
+                                          },
+                                          "storage" : {
+                                             "description" : "The storage identifier.",
+                                             "format" : "pve-storage-id",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "type" : {
+                                             "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
+                                             "enum" : [
+                                                "qemu",
+                                                "lxc"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "vmid" : {
+                                             "description" : "Only consider backups for this guest.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/storage/{storage}",
+                                          [
+                                             "Datastore.Audit",
+                                             "Datastore.AllocateSpace"
+                                          ],
+                                          "any",
+                                          1
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "items" : {
+                                          "properties" : {
+                                             "ctime" : {
+                                                "description" : "Creation time of the backup (seconds since the UNIX epoch).",
+                                                "type" : "integer"
+                                             },
+                                             "mark" : {
+                                                "description" : "Whether the backup would be kept or removed. Backups that are protected or don't use the standard naming scheme are not removed.",
+                                                "enum" : [
+                                                   "keep",
+                                                   "remove",
+                                                   "protected",
+                                                   "renamed"
+                                                ],
+                                                "type" : "string"
+                                             },
+                                             "type" : {
+                                                "description" : "One of 'qemu', 'lxc', 'openvz' or 'unknown'.",
+                                                "type" : "string"
+                                             },
+                                             "vmid" : {
+                                                "description" : "The VM the backup belongs to.",
+                                                "optional" : 1,
+                                                "type" : "integer"
+                                             },
+                                             "volid" : {
+                                                "description" : "Backup volume ID.",
+                                                "type" : "string"
+                                             }
+                                          },
+                                          "type" : "object"
+                                       },
+                                       "type" : "array"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/storage/{storage}/prunebackups",
+                              "text" : "prunebackups"
+                           },
                            {
                               "children" : [
                                  {
                                     "info" : {
                                        "DELETE" : {
+                                          "allowtoken" : 1,
                                           "description" : "Delete volume",
                                           "method" : "DELETE",
                                           "name" : "delete",
                                           "parameters" : {
                                              "additionalProperties" : 0,
                                              "properties" : {
+                                                "delay" : {
+                                                   "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
+                                                   "maximum" : 30,
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - 30)"
+                                                },
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
@@ -29344,10 +37638,12 @@ var pveapi = [
                                           "protected" : 1,
                                           "proxyto" : "node",
                                           "returns" : {
-                                             "type" : "null"
+                                             "optional" : 1,
+                                             "type" : "string"
                                           }
                                        },
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Get volume attributes",
                                           "method" : "GET",
                                           "name" : "info",
@@ -29381,10 +37677,41 @@ var pveapi = [
                                           "protected" : 1,
                                           "proxyto" : "node",
                                           "returns" : {
+                                             "properties" : {
+                                                "format" : {
+                                                   "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
+                                                   "type" : "string"
+                                                },
+                                                "notes" : {
+                                                   "description" : "Optional notes.",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "path" : {
+                                                   "description" : "The Path",
+                                                   "type" : "string"
+                                                },
+                                                "protected" : {
+                                                   "description" : "Protection status. Currently only supported for backups.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "size" : {
+                                                   "description" : "Volume size in bytes.",
+                                                   "renderer" : "bytes",
+                                                   "type" : "integer"
+                                                },
+                                                "used" : {
+                                                   "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
+                                                   "renderer" : "bytes",
+                                                   "type" : "integer"
+                                                }
+                                             },
                                              "type" : "object"
                                           }
                                        },
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Copy a volume. This is experimental code - do not use.",
                                           "method" : "POST",
                                           "name" : "copy",
@@ -29428,6 +37755,56 @@ var pveapi = [
                                           "returns" : {
                                              "type" : "string"
                                           }
+                                       },
+                                       "PUT" : {
+                                          "allowtoken" : 1,
+                                          "description" : "Update volume attributes",
+                                          "method" : "PUT",
+                                          "name" : "updateattributes",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "notes" : {
+                                                   "description" : "The new notes.",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "protected" : {
+                                                   "description" : "Protection status. Currently only supported for backups.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
+                                                "storage" : {
+                                                   "description" : "The storage identifier.",
+                                                   "format" : "pve-storage-id",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "volume" : {
+                                                   "description" : "Volume identifier",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "description" : "You need read access for the volume.",
+                                             "user" : "all"
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "type" : "null"
+                                          }
                                        }
                                     },
                                     "leaf" : 1,
@@ -29437,6 +37814,7 @@ var pveapi = [
                               ],
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "List storage content.",
                                     "method" : "GET",
                                     "name" : "index",
@@ -29489,26 +37867,62 @@ var pveapi = [
                                     "returns" : {
                                        "items" : {
                                           "properties" : {
+                                             "ctime" : {
+                                                "description" : "Creation time (seconds since the UNIX Epoch).",
+                                                "minimum" : 0,
+                                                "optional" : 1,
+                                                "type" : "integer"
+                                             },
+                                             "encrypted" : {
+                                                "description" : "If whole backup is encrypted, value is the fingerprint or '1'  if encrypted. Only useful for the Proxmox Backup Server storage type.",
+                                                "optional" : 1,
+                                                "type" : "string"
+                                             },
                                              "format" : {
                                                 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
                                                 "type" : "string"
                                              },
+                                             "notes" : {
+                                                "description" : "Optional notes. If they contain multiple lines, only the first one is returned here.",
+                                                "optional" : 1,
+                                                "type" : "string"
+                                             },
                                              "parent" : {
                                                 "description" : "Volume identifier of parent (for linked cloned).",
                                                 "optional" : 1,
                                                 "type" : "string"
                                              },
+                                             "protected" : {
+                                                "description" : "Protection status. Currently only supported for backups.",
+                                                "optional" : 1,
+                                                "type" : "boolean"
+                                             },
                                              "size" : {
                                                 "description" : "Volume size in bytes.",
                                                 "renderer" : "bytes",
                                                 "type" : "integer"
                                              },
                                              "used" : {
-                                                "description" : "Used space. Please note that most storage plugins does not report anything useful here.",
+                                                "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
                                                 "optional" : 1,
                                                 "renderer" : "bytes",
                                                 "type" : "integer"
                                              },
+                                             "verification" : {
+                                                "description" : "Last backup verification result, only useful for PBS storages.",
+                                                "optional" : 1,
+                                                "properties" : {
+                                                   "state" : {
+                                                      "description" : "Last backup verification state.",
+                                                      "type" : "string"
+                                                   },
+                                                   "upid" : {
+                                                      "description" : "Last backup verification UPID.",
+                                                      "type" : "string"
+                                                   }
+                                                },
+                                                "type" : "object"
+                                             },
                                              "vmid" : {
                                                 "description" : "Associated Owner VMID.",
                                                 "optional" : 1,
@@ -29531,6 +37945,7 @@ var pveapi = [
                                     }
                                  },
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Allocate disk images.",
                                     "method" : "POST",
                                     "name" : "create",
@@ -29599,9 +38014,146 @@ var pveapi = [
                               "path" : "/nodes/{node}/storage/{storage}/content",
                               "text" : "content"
                            },
+                           {
+                              "children" : [
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "allowtoken" : 1,
+                                          "description" : "List files and directories for single file restore under the given path.",
+                                          "method" : "GET",
+                                          "name" : "list",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "filepath" : {
+                                                   "description" : "base64-path to the directory or file being listed, or \"/\".",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "storage" : {
+                                                   "description" : "The storage identifier.",
+                                                   "format" : "pve-storage-id",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "volume" : {
+                                                   "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "description" : "You need read access for the volume.",
+                                             "user" : "all"
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "items" : {
+                                                "properties" : {
+                                                   "filepath" : {
+                                                      "description" : "base64 path of the current entry",
+                                                      "type" : "string"
+                                                   },
+                                                   "leaf" : {
+                                                      "description" : "If this entry is a leaf in the directory graph.",
+                                                      "type" : "boolean"
+                                                   },
+                                                   "mtime" : {
+                                                      "description" : "Entry last-modified time (unix timestamp).",
+                                                      "optional" : 1,
+                                                      "type" : "integer"
+                                                   },
+                                                   "size" : {
+                                                      "description" : "Entry file size.",
+                                                      "optional" : 1,
+                                                      "type" : "integer"
+                                                   },
+                                                   "text" : {
+                                                      "description" : "Entry display text.",
+                                                      "type" : "string"
+                                                   },
+                                                   "type" : {
+                                                      "description" : "Entry type.",
+                                                      "type" : "string"
+                                                   }
+                                                },
+                                                "type" : "object"
+                                             },
+                                             "type" : "array"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/storage/{storage}/file-restore/list",
+                                    "text" : "list"
+                                 },
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "allowtoken" : 1,
+                                          "description" : "Extract a file or directory (as zip archive) from a PBS backup.",
+                                          "method" : "GET",
+                                          "name" : "download",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "filepath" : {
+                                                   "description" : "base64-path to the directory or file to download.",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "storage" : {
+                                                   "description" : "The storage identifier.",
+                                                   "format" : "pve-storage-id",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "volume" : {
+                                                   "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "description" : "You need read access for the volume.",
+                                             "user" : "all"
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "type" : "any"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/storage/{storage}/file-restore/download",
+                                    "text" : "download"
+                                 }
+                              ],
+                              "leaf" : 0,
+                              "path" : "/nodes/{node}/storage/{storage}/file-restore",
+                              "text" : "file-restore"
+                           },
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read storage status.",
                                     "method" : "GET",
                                     "name" : "read_status",
@@ -29648,6 +38200,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read storage RRD statistics (returns PNG).",
                                     "method" : "GET",
                                     "name" : "rrd",
@@ -29725,6 +38278,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read storage RRD statistics.",
                                     "method" : "GET",
                                     "name" : "rrddata",
@@ -29795,20 +38349,46 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Upload templates and ISO images.",
                                     "method" : "POST",
                                     "name" : "upload",
                                     "parameters" : {
                                        "additionalProperties" : 0,
                                        "properties" : {
+                                          "checksum" : {
+                                             "description" : "The expected checksum of the file.",
+                                             "optional" : 1,
+                                             "requires" : "checksum-algorithm",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "checksum-algorithm" : {
+                                             "description" : "The algorithm to calculate the checksum of the file.",
+                                             "enum" : [
+                                                "md5",
+                                                "sha1",
+                                                "sha224",
+                                                "sha256",
+                                                "sha384",
+                                                "sha512"
+                                             ],
+                                             "optional" : 1,
+                                             "requires" : "checksum",
+                                             "type" : "string"
+                                          },
                                           "content" : {
                                              "description" : "Content type.",
+                                             "enum" : [
+                                                "iso",
+                                                "vztmpl"
+                                             ],
                                              "format" : "pve-storage-content",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
+                                             "type" : "string"
                                           },
                                           "filename" : {
-                                             "description" : "The name of the file to create.",
+                                             "description" : "The name of the file to create. Caution: This will be normalized!",
+                                             "maxLength" : 255,
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           },
@@ -29825,7 +38405,7 @@ var pveapi = [
                                              "typetext" : "<string>"
                                           },
                                           "tmpfilename" : {
-                                             "description" : "The source file name. This parameter is usually set by the REST handler. You can only overwrite it when connecting to the trustet port on localhost.",
+                                             "description" : "The source file name. This parameter is usually set by the REST handler. You can only overwrite it when connecting to the trusted port on localhost.",
                                              "optional" : 1,
                                              "type" : "string",
                                              "typetext" : "<string>"
@@ -29850,10 +38430,114 @@ var pveapi = [
                               "leaf" : 1,
                               "path" : "/nodes/{node}/storage/{storage}/upload",
                               "text" : "upload"
+                           },
+                           {
+                              "info" : {
+                                 "POST" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Download templates and ISO images by using an URL.",
+                                    "method" : "POST",
+                                    "name" : "download_url",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "checksum" : {
+                                             "description" : "The expected checksum of the file.",
+                                             "optional" : 1,
+                                             "requires" : "checksum-algorithm",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "checksum-algorithm" : {
+                                             "description" : "The algorithm to calculate the checksum of the file.",
+                                             "enum" : [
+                                                "md5",
+                                                "sha1",
+                                                "sha224",
+                                                "sha256",
+                                                "sha384",
+                                                "sha512"
+                                             ],
+                                             "optional" : 1,
+                                             "requires" : "checksum",
+                                             "type" : "string"
+                                          },
+                                          "content" : {
+                                             "description" : "Content type.",
+                                             "enum" : [
+                                                "iso",
+                                                "vztmpl"
+                                             ],
+                                             "format" : "pve-storage-content",
+                                             "type" : "string"
+                                          },
+                                          "filename" : {
+                                             "description" : "The name of the file to create. Caution: This will be normalized!",
+                                             "maxLength" : 255,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "storage" : {
+                                             "description" : "The storage identifier.",
+                                             "format" : "pve-storage-id",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "url" : {
+                                             "description" : "The URL to download the file from.",
+                                             "pattern" : "https?://.*",
+                                             "type" : "string"
+                                          },
+                                          "verify-certificates" : {
+                                             "default" : 1,
+                                             "description" : "If false, no SSL/TLS certificates will be verified.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "and",
+                                          [
+                                             "perm",
+                                             "/storage/{storage}",
+                                             [
+                                                "Datastore.AllocateTemplate"
+                                             ]
+                                          ],
+                                          [
+                                             "perm",
+                                             "/",
+                                             [
+                                                "Sys.Audit",
+                                                "Sys.Modify"
+                                             ]
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/storage/{storage}/download-url",
+                              "text" : "download-url"
                            }
                         ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "",
                               "method" : "GET",
                               "name" : "diridx",
@@ -29912,6 +38596,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get status for all datastores.",
                         "method" : "GET",
                         "name" : "index",
@@ -30043,8 +38728,70 @@ var pveapi = [
                {
                   "children" : [
                      {
+                        "children" : [
+                           {
+                              "info" : {
+                                 "DELETE" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Remove an LVM Volume Group.",
+                                    "method" : "DELETE",
+                                    "name" : "delete",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "cleanup-config" : {
+                                             "default" : 0,
+                                             "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "cleanup-disks" : {
+                                             "default" : 0,
+                                             "description" : "Also wipe disks so they can be repurposed afterwards.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "name" : {
+                                             "description" : "The storage identifier.",
+                                             "format" : "pve-storage-id",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/",
+                                          [
+                                             "Sys.Modify",
+                                             "Datastore.Allocate"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/disks/lvm/{name}",
+                              "text" : "{name}"
+                           }
+                        ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List LVM Volume Groups",
                               "method" : "GET",
                               "name" : "index",
@@ -30131,6 +38878,7 @@ var pveapi = [
                               }
                            },
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Create an LVM Volume Group",
                               "method" : "POST",
                               "name" : "create",
@@ -30180,127 +38928,262 @@ var pveapi = [
                               }
                            }
                         },
-                        "leaf" : 1,
-                        "path" : "/nodes/{node}/disks/lvm",
-                        "text" : "lvm"
+                        "leaf" : 0,
+                        "path" : "/nodes/{node}/disks/lvm",
+                        "text" : "lvm"
+                     },
+                     {
+                        "children" : [
+                           {
+                              "info" : {
+                                 "DELETE" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Remove an LVM thin pool.",
+                                    "method" : "DELETE",
+                                    "name" : "delete",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "cleanup-config" : {
+                                             "default" : 0,
+                                             "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "cleanup-disks" : {
+                                             "default" : 0,
+                                             "description" : "Also wipe disks so they can be repurposed afterwards.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "name" : {
+                                             "description" : "The storage identifier.",
+                                             "format" : "pve-storage-id",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "volume-group" : {
+                                             "description" : "The storage identifier.",
+                                             "format" : "pve-storage-id",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/",
+                                          [
+                                             "Sys.Modify",
+                                             "Datastore.Allocate"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/disks/lvmthin/{name}",
+                              "text" : "{name}"
+                           }
+                        ],
+                        "info" : {
+                           "GET" : {
+                              "allowtoken" : 1,
+                              "description" : "List LVM thinpools",
+                              "method" : "GET",
+                              "name" : "index",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Audit",
+                                       "Datastore.Audit"
+                                    ],
+                                    "any",
+                                    1
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "items" : {
+                                    "properties" : {
+                                       "lv" : {
+                                          "description" : "The name of the thinpool.",
+                                          "type" : "string"
+                                       },
+                                       "lv_size" : {
+                                          "description" : "The size of the thinpool in bytes.",
+                                          "type" : "integer"
+                                       },
+                                       "metadata_size" : {
+                                          "description" : "The size of the metadata lv in bytes.",
+                                          "type" : "integer"
+                                       },
+                                       "metadata_used" : {
+                                          "description" : "The used bytes of the metadata lv.",
+                                          "type" : "integer"
+                                       },
+                                       "used" : {
+                                          "description" : "The used bytes of the thinpool.",
+                                          "type" : "integer"
+                                       },
+                                       "vg" : {
+                                          "description" : "The associated volume group.",
+                                          "type" : "string"
+                                       }
+                                    },
+                                    "type" : "object"
+                                 },
+                                 "type" : "array"
+                              }
+                           },
+                           "POST" : {
+                              "allowtoken" : 1,
+                              "description" : "Create an LVM thinpool",
+                              "method" : "POST",
+                              "name" : "create",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "add_storage" : {
+                                       "default" : 0,
+                                       "description" : "Configure storage using the thinpool.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "device" : {
+                                       "description" : "The block device you want to create the thinpool on.",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "name" : {
+                                       "description" : "The storage identifier.",
+                                       "format" : "pve-storage-id",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Modify",
+                                       "Datastore.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "type" : "string"
+                              }
+                           }
+                        },
+                        "leaf" : 0,
+                        "path" : "/nodes/{node}/disks/lvmthin",
+                        "text" : "lvmthin"
                      },
                      {
-                        "info" : {
-                           "GET" : {
-                              "description" : "List LVM thinpools",
-                              "method" : "GET",
-                              "name" : "index",
-                              "parameters" : {
-                                 "additionalProperties" : 0,
-                                 "properties" : {
-                                    "node" : {
-                                       "description" : "The cluster node name.",
-                                       "format" : "pve-node",
-                                       "type" : "string",
-                                       "typetext" : "<string>"
-                                    }
-                                 }
-                              },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Audit",
-                                       "Datastore.Audit"
-                                    ],
-                                    "any",
-                                    1
-                                 ]
-                              },
-                              "protected" : 1,
-                              "proxyto" : "node",
-                              "returns" : {
-                                 "items" : {
-                                    "properties" : {
-                                       "lv" : {
-                                          "description" : "The name of the thinpool.",
-                                          "type" : "string"
-                                       },
-                                       "lv_size" : {
-                                          "description" : "The size of the thinpool in bytes.",
-                                          "type" : "integer"
-                                       },
-                                       "metadata_size" : {
-                                          "description" : "The size of the metadata lv in bytes.",
-                                          "type" : "integer"
-                                       },
-                                       "metadata_used" : {
-                                          "description" : "The used bytes of the metadata lv.",
-                                          "type" : "integer"
-                                       },
-                                       "used" : {
-                                          "description" : "The used bytes of the thinpool.",
-                                          "type" : "integer"
+                        "children" : [
+                           {
+                              "info" : {
+                                 "DELETE" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Unmounts the storage and removes the mount unit.",
+                                    "method" : "DELETE",
+                                    "name" : "delete",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "cleanup-config" : {
+                                             "default" : 0,
+                                             "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "cleanup-disks" : {
+                                             "default" : 0,
+                                             "description" : "Also wipe disk so it can be repurposed afterwards.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "name" : {
+                                             "description" : "The storage identifier.",
+                                             "format" : "pve-storage-id",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
                                        }
                                     },
-                                    "type" : "object"
-                                 },
-                                 "type" : "array"
-                              }
-                           },
-                           "POST" : {
-                              "description" : "Create an LVM thinpool",
-                              "method" : "POST",
-                              "name" : "create",
-                              "parameters" : {
-                                 "additionalProperties" : 0,
-                                 "properties" : {
-                                    "add_storage" : {
-                                       "default" : 0,
-                                       "description" : "Configure storage using the thinpool.",
-                                       "optional" : 1,
-                                       "type" : "boolean",
-                                       "typetext" : "<boolean>"
-                                    },
-                                    "device" : {
-                                       "description" : "The block device you want to create the thinpool on.",
-                                       "type" : "string",
-                                       "typetext" : "<string>"
-                                    },
-                                    "name" : {
-                                       "description" : "The storage identifier.",
-                                       "format" : "pve-storage-id",
-                                       "type" : "string",
-                                       "typetext" : "<string>"
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/",
+                                          [
+                                             "Sys.Modify",
+                                             "Datastore.Allocate"
+                                          ]
+                                       ]
                                     },
-                                    "node" : {
-                                       "description" : "The cluster node name.",
-                                       "format" : "pve-node",
-                                       "type" : "string",
-                                       "typetext" : "<string>"
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "string"
                                     }
                                  }
                               },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Modify",
-                                       "Datastore.Allocate"
-                                    ]
-                                 ]
-                              },
-                              "protected" : 1,
-                              "proxyto" : "node",
-                              "returns" : {
-                                 "type" : "string"
-                              }
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/disks/directory/{name}",
+                              "text" : "{name}"
                            }
-                        },
-                        "leaf" : 1,
-                        "path" : "/nodes/{node}/disks/lvmthin",
-                        "text" : "lvmthin"
-                     },
-                     {
+                        ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "PVE Managed Directory storages.",
                               "method" : "GET",
                               "name" : "index",
@@ -30359,6 +39242,7 @@ var pveapi = [
                               }
                            },
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Create a Filesystem on an unused disk. Will be mounted under '/mnt/pve/NAME'.",
                               "method" : "POST",
                               "name" : "create",
@@ -30418,7 +39302,7 @@ var pveapi = [
                               }
                            }
                         },
-                        "leaf" : 1,
+                        "leaf" : 0,
                         "path" : "/nodes/{node}/disks/directory",
                         "text" : "directory"
                      },
@@ -30426,7 +39310,60 @@ var pveapi = [
                         "children" : [
                            {
                               "info" : {
+                                 "DELETE" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Destroy a ZFS pool.",
+                                    "method" : "DELETE",
+                                    "name" : "delete",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "cleanup-config" : {
+                                             "default" : 0,
+                                             "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "cleanup-disks" : {
+                                             "default" : 0,
+                                             "description" : "Also wipe disks so they can be repurposed afterwards.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "name" : {
+                                             "description" : "The storage identifier.",
+                                             "format" : "pve-storage-id",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/",
+                                          [
+                                             "Sys.Modify",
+                                             "Datastore.Allocate"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "string"
+                                    }
+                                 },
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Get details about a zpool.",
                                     "method" : "GET",
                                     "name" : "detail",
@@ -30512,6 +39449,7 @@ var pveapi = [
                                           },
                                           "scan" : {
                                              "description" : "Information about the last/current scrub.",
+                                             "optional" : 1,
                                              "type" : "string"
                                           },
                                           "state" : {
@@ -30535,6 +39473,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List Zpools.",
                               "method" : "GET",
                               "name" : "index",
@@ -30607,6 +39546,7 @@ var pveapi = [
                               }
                            },
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Create a ZFS pool.",
                               "method" : "POST",
                               "name" : "create",
@@ -30638,7 +39578,8 @@ var pveapi = [
                                           "gzip",
                                           "lz4",
                                           "lzjb",
-                                          "zle"
+                                          "zle",
+                                          "zstd"
                                        ],
                                        "optional" : 1,
                                        "type" : "string"
@@ -30699,12 +39640,20 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List local disks.",
                               "method" : "GET",
                               "name" : "list",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
+                                    "include-partitions" : {
+                                       "default" : 0,
+                                       "description" : "Also include partitions.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
@@ -30731,14 +39680,27 @@ var pveapi = [
                               },
                               "permissions" : {
                                  "check" : [
-                                    "perm",
-                                    "/",
+                                    "or",
                                     [
-                                       "Sys.Audit",
-                                       "Datastore.Audit"
+                                       "perm",
+                                       "/",
+                                       [
+                                          "Sys.Audit",
+                                          "Datastore.Audit"
+                                       ],
+                                       "any",
+                                       1
                                     ],
-                                    "any",
-                                    1
+                                    [
+                                       "perm",
+                                       "/nodes/{node}",
+                                       [
+                                          "Sys.Audit",
+                                          "Datastore.Audit"
+                                       ],
+                                       "any",
+                                       1
+                                    ]
                                  ]
                               },
                               "protected" : 1,
@@ -30761,9 +39723,17 @@ var pveapi = [
                                           "optional" : 1,
                                           "type" : "string"
                                        },
+                                       "mounted" : {
+                                          "type" : "boolean"
+                                       },
                                        "osdid" : {
                                           "type" : "integer"
                                        },
+                                       "parent" : {
+                                          "description" : "For partitions only. The device path of the disk the partition resides on.",
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
                                        "serial" : {
                                           "optional" : 1,
                                           "type" : "string"
@@ -30797,6 +39767,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get SMART Health of a disk.",
                               "method" : "GET",
                               "name" : "smart",
@@ -30865,6 +39836,7 @@ var pveapi = [
                      {
                         "info" : {
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Initialize Disk with GPT",
                               "method" : "POST",
                               "name" : "initgpt",
@@ -30910,10 +39882,45 @@ var pveapi = [
                         "leaf" : 1,
                         "path" : "/nodes/{node}/disks/initgpt",
                         "text" : "initgpt"
+                     },
+                     {
+                        "info" : {
+                           "PUT" : {
+                              "allowtoken" : 1,
+                              "description" : "Wipe a disk or partition.",
+                              "method" : "PUT",
+                              "name" : "wipe_disk",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "disk" : {
+                                       "description" : "Block device name",
+                                       "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
+                                       "type" : "string"
+                                    },
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "type" : "string"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/disks/wipedisk",
+                        "text" : "wipedisk"
                      }
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Node index.",
                         "method" : "GET",
                         "name" : "index",
@@ -30956,6 +39963,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List available updates.",
                               "method" : "GET",
                               "name" : "list_updates",
@@ -30990,6 +39998,7 @@ var pveapi = [
                               }
                            },
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "This is used to resynchronize the package index files from their sources (apt-get update).",
                               "method" : "POST",
                               "name" : "update_database",
@@ -31041,6 +40050,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get package changelogs.",
                               "method" : "GET",
                               "name" : "changelog",
@@ -31088,6 +40098,323 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
+                              "description" : "Get APT repository information.",
+                              "method" : "GET",
+                              "name" : "repositories",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/nodes/{node}",
+                                    [
+                                       "Sys.Audit"
+                                    ]
+                                 ]
+                              },
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "description" : "Result from parsing the APT repository files in /etc/apt/.",
+                                 "properties" : {
+                                    "digest" : {
+                                       "description" : "Common digest of all files.",
+                                       "type" : "string"
+                                    },
+                                    "errors" : {
+                                       "description" : "List of problematic repository files.",
+                                       "items" : {
+                                          "properties" : {
+                                             "error" : {
+                                                "description" : "The error message",
+                                                "type" : "string"
+                                             },
+                                             "path" : {
+                                                "description" : "Path to the problematic file.",
+                                                "type" : "string"
+                                             }
+                                          },
+                                          "type" : "object"
+                                       },
+                                       "type" : "array"
+                                    },
+                                    "files" : {
+                                       "description" : "List of parsed repository files.",
+                                       "items" : {
+                                          "properties" : {
+                                             "digest" : {
+                                                "description" : "Digest of the file as bytes.",
+                                                "items" : {
+                                                   "type" : "integer"
+                                                },
+                                                "type" : "array"
+                                             },
+                                             "file-type" : {
+                                                "description" : "Format of the file.",
+                                                "enum" : [
+                                                   "list",
+                                                   "sources"
+                                                ],
+                                                "type" : "string"
+                                             },
+                                             "path" : {
+                                                "description" : "Path to the problematic file.",
+                                                "type" : "string"
+                                             },
+                                             "repositories" : {
+                                                "description" : "The parsed repositories.",
+                                                "items" : {
+                                                   "properties" : {
+                                                      "Comment" : {
+                                                         "description" : "Associated comment",
+                                                         "optional" : 1,
+                                                         "type" : "string"
+                                                      },
+                                                      "Components" : {
+                                                         "description" : "List of repository components",
+                                                         "items" : {
+                                                            "type" : "string"
+                                                         },
+                                                         "optional" : 1,
+                                                         "type" : "array"
+                                                      },
+                                                      "Enabled" : {
+                                                         "description" : "Whether the repository is enabled or not",
+                                                         "type" : "boolean"
+                                                      },
+                                                      "FileType" : {
+                                                         "description" : "Format of the defining file.",
+                                                         "enum" : [
+                                                            "list",
+                                                            "sources"
+                                                         ],
+                                                         "type" : "string"
+                                                      },
+                                                      "Options" : {
+                                                         "description" : "Additional options",
+                                                         "items" : {
+                                                            "properties" : {
+                                                               "Key" : {
+                                                                  "type" : "string"
+                                                               },
+                                                               "Values" : {
+                                                                  "items" : {
+                                                                     "type" : "string"
+                                                                  },
+                                                                  "type" : "array"
+                                                               }
+                                                            },
+                                                            "type" : "object"
+                                                         },
+                                                         "optional" : 1,
+                                                         "type" : "array"
+                                                      },
+                                                      "Suites" : {
+                                                         "description" : "List of package distribuitions",
+                                                         "items" : {
+                                                            "type" : "string"
+                                                         },
+                                                         "type" : "array"
+                                                      },
+                                                      "Types" : {
+                                                         "description" : "List of package types.",
+                                                         "items" : {
+                                                            "enum" : [
+                                                               "deb",
+                                                               "deb-src"
+                                                            ],
+                                                            "type" : "string"
+                                                         },
+                                                         "type" : "array"
+                                                      },
+                                                      "URIs" : {
+                                                         "description" : "List of repository URIs.",
+                                                         "items" : {
+                                                            "type" : "string"
+                                                         },
+                                                         "type" : "array"
+                                                      }
+                                                   },
+                                                   "type" : "object"
+                                                },
+                                                "type" : "array"
+                                             }
+                                          },
+                                          "type" : "object"
+                                       },
+                                       "type" : "array"
+                                    },
+                                    "infos" : {
+                                       "description" : "Additional information/warnings for APT repositories.",
+                                       "items" : {
+                                          "properties" : {
+                                             "index" : {
+                                                "description" : "Index of the associated repository within the file.",
+                                                "type" : "string"
+                                             },
+                                             "kind" : {
+                                                "description" : "Kind of the information (e.g. warning).",
+                                                "type" : "string"
+                                             },
+                                             "message" : {
+                                                "description" : "Information message.",
+                                                "type" : "string"
+                                             },
+                                             "path" : {
+                                                "description" : "Path to the associated file.",
+                                                "type" : "string"
+                                             },
+                                             "property" : {
+                                                "description" : "Property from which the info originates.",
+                                                "optional" : 1,
+                                                "type" : "string"
+                                             }
+                                          },
+                                          "type" : "object"
+                                       },
+                                       "type" : "array"
+                                    },
+                                    "standard-repos" : {
+                                       "description" : "List of standard repositories and their configuration status",
+                                       "items" : {
+                                          "properties" : {
+                                             "handle" : {
+                                                "description" : "Handle to identify the repository.",
+                                                "type" : "string"
+                                             },
+                                             "name" : {
+                                                "description" : "Full name of the repository.",
+                                                "type" : "string"
+                                             },
+                                             "status" : {
+                                                "description" : "Indicating enabled/disabled status, if the repository is configured.",
+                                                "optional" : 1,
+                                                "type" : "boolean"
+                                             }
+                                          },
+                                          "type" : "object"
+                                       },
+                                       "type" : "array"
+                                    }
+                                 },
+                                 "type" : "object"
+                              }
+                           },
+                           "POST" : {
+                              "allowtoken" : 1,
+                              "description" : "Change the properties of a repository. Currently only allows enabling/disabling.",
+                              "method" : "POST",
+                              "name" : "change_repository",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "digest" : {
+                                       "description" : "Digest to detect modifications.",
+                                       "maxLength" : 80,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "enabled" : {
+                                       "description" : "Whether the repository should be enabled or not.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "index" : {
+                                       "description" : "Index within the file (starting from 0).",
+                                       "type" : "integer",
+                                       "typetext" : "<integer>"
+                                    },
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "path" : {
+                                       "description" : "Path to the containing file.",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/nodes/{node}",
+                                    [
+                                       "Sys.Modify"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           },
+                           "PUT" : {
+                              "allowtoken" : 1,
+                              "description" : "Add a standard repository to the configuration",
+                              "method" : "PUT",
+                              "name" : "add_repository",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "digest" : {
+                                       "description" : "Digest to detect modifications.",
+                                       "maxLength" : 80,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "handle" : {
+                                       "description" : "Handle that identifies a repository.",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/nodes/{node}",
+                                    [
+                                       "Sys.Modify"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/apt/repositories",
+                        "text" : "repositories"
+                     },
+                     {
+                        "info" : {
+                           "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get package information for important Proxmox packages.",
                               "method" : "GET",
                               "name" : "versions",
@@ -31128,6 +40455,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Directory index for apt (Advanced Package Tool).",
                         "method" : "GET",
                         "name" : "index",
@@ -31175,6 +40503,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "DELETE" : {
+                                    "allowtoken" : 1,
                                     "description" : "Delete rule.",
                                     "method" : "DELETE",
                                     "name" : "delete_rule",
@@ -31219,6 +40548,7 @@ var pveapi = [
                                     }
                                  },
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Get single rule data.",
                                     "method" : "GET",
                                     "name" : "get_rule",
@@ -31271,6 +40601,10 @@ var pveapi = [
                                              "optional" : 1,
                                              "type" : "integer"
                                           },
+                                          "icmp-type" : {
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
                                           "iface" : {
                                              "optional" : 1,
                                              "type" : "string"
@@ -31322,6 +40656,7 @@ var pveapi = [
                                     }
                                  },
                                  "PUT" : {
+                                    "allowtoken" : 1,
                                     "description" : "Modify rule data.",
                                     "method" : "PUT",
                                     "name" : "update_rule",
@@ -31352,6 +40687,7 @@ var pveapi = [
                                           "dest" : {
                                              "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                              "format" : "pve-fw-addr-spec",
+                                             "maxLength" : 512,
                                              "optional" : 1,
                                              "type" : "string",
                                              "typetext" : "<string>"
@@ -31377,6 +40713,13 @@ var pveapi = [
                                              "type" : "integer",
                                              "typetext" : "<integer> (0 - N)"
                                           },
+                                          "icmp-type" : {
+                                             "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+                                             "format" : "pve-fw-icmp-type-spec",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
                                           "iface" : {
                                              "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
                                              "format" : "pve-iface",
@@ -31439,6 +40782,7 @@ var pveapi = [
                                           "source" : {
                                              "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                              "format" : "pve-fw-addr-spec",
+                                             "maxLength" : 512,
                                              "optional" : 1,
                                              "type" : "string",
                                              "typetext" : "<string>"
@@ -31485,6 +40829,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List rules.",
                               "method" : "GET",
                               "name" : "get_rules",
@@ -31528,6 +40873,7 @@ var pveapi = [
                               }
                            },
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Create new rule.",
                               "method" : "POST",
                               "name" : "create_rule",
@@ -31551,6 +40897,7 @@ var pveapi = [
                                     "dest" : {
                                        "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                        "format" : "pve-fw-addr-spec",
+                                       "maxLength" : 512,
                                        "optional" : 1,
                                        "type" : "string",
                                        "typetext" : "<string>"
@@ -31576,6 +40923,13 @@ var pveapi = [
                                        "type" : "integer",
                                        "typetext" : "<integer> (0 - N)"
                                     },
+                                    "icmp-type" : {
+                                       "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
+                                       "format" : "pve-fw-icmp-type-spec",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
                                     "iface" : {
                                        "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
                                        "format" : "pve-iface",
@@ -31631,6 +40985,7 @@ var pveapi = [
                                     "source" : {
                                        "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                        "format" : "pve-fw-addr-spec",
+                                       "maxLength" : 512,
                                        "optional" : 1,
                                        "type" : "string",
                                        "typetext" : "<string>"
@@ -31677,6 +41032,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get host firewall options.",
                               "method" : "GET",
                               "name" : "get_options",
@@ -31747,7 +41103,8 @@ var pveapi = [
                                        "type" : "boolean"
                                     },
                                     "ndp" : {
-                                       "description" : "Enable NDP.",
+                                       "default" : 0,
+                                       "description" : "Enable NDP (Neighbor Discovery Protocol).",
                                        "optional" : 1,
                                        "type" : "boolean"
                                     },
@@ -31758,22 +41115,231 @@ var pveapi = [
                                        "type" : "boolean"
                                     },
                                     "nf_conntrack_max" : {
+                                       "default" : 262144,
                                        "description" : "Maximum number of tracked connections.",
                                        "minimum" : 32768,
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
                                     "nf_conntrack_tcp_timeout_established" : {
+                                       "default" : 432000,
                                        "description" : "Conntrack established timeout.",
                                        "minimum" : 7875,
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "nf_conntrack_tcp_timeout_syn_recv" : {
+                                       "default" : 60,
+                                       "description" : "Conntrack syn recv timeout.",
+                                       "maximum" : 60,
+                                       "minimum" : 30,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "nosmurfs" : {
                                        "description" : "Enable SMURFS filter.",
                                        "optional" : 1,
                                        "type" : "boolean"
                                     },
+                                    "protection_synflood" : {
+                                       "default" : 0,
+                                       "description" : "Enable synflood protection",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
+                                    "protection_synflood_burst" : {
+                                       "default" : 1000,
+                                       "description" : "Synflood protection rate burst by ip src.",
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
+                                    "protection_synflood_rate" : {
+                                       "default" : 200,
+                                       "description" : "Synflood protection rate syn/sec by ip src.",
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
+                                    "smurf_log_level" : {
+                                       "description" : "Log level for SMURFS filter.",
+                                       "enum" : [
+                                          "emerg",
+                                          "alert",
+                                          "crit",
+                                          "err",
+                                          "warning",
+                                          "notice",
+                                          "info",
+                                          "debug",
+                                          "nolog"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "tcp_flags_log_level" : {
+                                       "description" : "Log level for illegal tcp flags filter.",
+                                       "enum" : [
+                                          "emerg",
+                                          "alert",
+                                          "crit",
+                                          "err",
+                                          "warning",
+                                          "notice",
+                                          "info",
+                                          "debug",
+                                          "nolog"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "tcpflags" : {
+                                       "default" : 0,
+                                       "description" : "Filter illegal combinations of TCP flags.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    }
+                                 },
+                                 "type" : "object"
+                              }
+                           },
+                           "PUT" : {
+                              "allowtoken" : 1,
+                              "description" : "Set Firewall options.",
+                              "method" : "PUT",
+                              "name" : "set_options",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "delete" : {
+                                       "description" : "A list of settings you want to delete.",
+                                       "format" : "pve-configid-list",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "digest" : {
+                                       "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                       "maxLength" : 40,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "enable" : {
+                                       "description" : "Enable host firewall rules.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "log_level_in" : {
+                                       "description" : "Log level for incoming traffic.",
+                                       "enum" : [
+                                          "emerg",
+                                          "alert",
+                                          "crit",
+                                          "err",
+                                          "warning",
+                                          "notice",
+                                          "info",
+                                          "debug",
+                                          "nolog"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "log_level_out" : {
+                                       "description" : "Log level for outgoing traffic.",
+                                       "enum" : [
+                                          "emerg",
+                                          "alert",
+                                          "crit",
+                                          "err",
+                                          "warning",
+                                          "notice",
+                                          "info",
+                                          "debug",
+                                          "nolog"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "log_nf_conntrack" : {
+                                       "default" : 0,
+                                       "description" : "Enable logging of conntrack information.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "ndp" : {
+                                       "default" : 0,
+                                       "description" : "Enable NDP (Neighbor Discovery Protocol).",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "nf_conntrack_allow_invalid" : {
+                                       "default" : 0,
+                                       "description" : "Allow invalid packets on connection tracking.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "nf_conntrack_max" : {
+                                       "default" : 262144,
+                                       "description" : "Maximum number of tracked connections.",
+                                       "minimum" : 32768,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (32768 - N)"
+                                    },
+                                    "nf_conntrack_tcp_timeout_established" : {
+                                       "default" : 432000,
+                                       "description" : "Conntrack established timeout.",
+                                       "minimum" : 7875,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (7875 - N)"
+                                    },
+                                    "nf_conntrack_tcp_timeout_syn_recv" : {
+                                       "default" : 60,
+                                       "description" : "Conntrack syn recv timeout.",
+                                       "maximum" : 60,
+                                       "minimum" : 30,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (30 - 60)"
+                                    },
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "nosmurfs" : {
+                                       "description" : "Enable SMURFS filter.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "protection_synflood" : {
+                                       "default" : 0,
+                                       "description" : "Enable synflood protection",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "protection_synflood_burst" : {
+                                       "default" : 1000,
+                                       "description" : "Synflood protection rate burst by ip src.",
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer>"
+                                    },
+                                    "protection_synflood_rate" : {
+                                       "default" : 200,
+                                       "description" : "Synflood protection rate syn/sec by ip src.",
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer>"
+                                    },
                                     "smurf_log_level" : {
                                        "description" : "Log level for SMURFS filter.",
                                        "enum" : [
@@ -31807,152 +41373,7 @@ var pveapi = [
                                        "type" : "string"
                                     },
                                     "tcpflags" : {
-                                       "description" : "Filter illegal combinations of TCP flags.",
-                                       "optional" : 1,
-                                       "type" : "boolean"
-                                    }
-                                 },
-                                 "type" : "object"
-                              }
-                           },
-                           "PUT" : {
-                              "description" : "Set Firewall options.",
-                              "method" : "PUT",
-                              "name" : "set_options",
-                              "parameters" : {
-                                 "additionalProperties" : 0,
-                                 "properties" : {
-                                    "delete" : {
-                                       "description" : "A list of settings you want to delete.",
-                                       "format" : "pve-configid-list",
-                                       "optional" : 1,
-                                       "type" : "string",
-                                       "typetext" : "<string>"
-                                    },
-                                    "digest" : {
-                                       "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                                       "maxLength" : 40,
-                                       "optional" : 1,
-                                       "type" : "string",
-                                       "typetext" : "<string>"
-                                    },
-                                    "enable" : {
-                                       "description" : "Enable host firewall rules.",
-                                       "optional" : 1,
-                                       "type" : "boolean",
-                                       "typetext" : "<boolean>"
-                                    },
-                                    "log_level_in" : {
-                                       "description" : "Log level for incoming traffic.",
-                                       "enum" : [
-                                          "emerg",
-                                          "alert",
-                                          "crit",
-                                          "err",
-                                          "warning",
-                                          "notice",
-                                          "info",
-                                          "debug",
-                                          "nolog"
-                                       ],
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "log_level_out" : {
-                                       "description" : "Log level for outgoing traffic.",
-                                       "enum" : [
-                                          "emerg",
-                                          "alert",
-                                          "crit",
-                                          "err",
-                                          "warning",
-                                          "notice",
-                                          "info",
-                                          "debug",
-                                          "nolog"
-                                       ],
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "log_nf_conntrack" : {
                                        "default" : 0,
-                                       "description" : "Enable logging of conntrack information.",
-                                       "optional" : 1,
-                                       "type" : "boolean",
-                                       "typetext" : "<boolean>"
-                                    },
-                                    "ndp" : {
-                                       "description" : "Enable NDP.",
-                                       "optional" : 1,
-                                       "type" : "boolean",
-                                       "typetext" : "<boolean>"
-                                    },
-                                    "nf_conntrack_allow_invalid" : {
-                                       "default" : 0,
-                                       "description" : "Allow invalid packets on connection tracking.",
-                                       "optional" : 1,
-                                       "type" : "boolean",
-                                       "typetext" : "<boolean>"
-                                    },
-                                    "nf_conntrack_max" : {
-                                       "description" : "Maximum number of tracked connections.",
-                                       "minimum" : 32768,
-                                       "optional" : 1,
-                                       "type" : "integer",
-                                       "typetext" : "<integer> (32768 - N)"
-                                    },
-                                    "nf_conntrack_tcp_timeout_established" : {
-                                       "description" : "Conntrack established timeout.",
-                                       "minimum" : 7875,
-                                       "optional" : 1,
-                                       "type" : "integer",
-                                       "typetext" : "<integer> (7875 - N)"
-                                    },
-                                    "node" : {
-                                       "description" : "The cluster node name.",
-                                       "format" : "pve-node",
-                                       "type" : "string",
-                                       "typetext" : "<string>"
-                                    },
-                                    "nosmurfs" : {
-                                       "description" : "Enable SMURFS filter.",
-                                       "optional" : 1,
-                                       "type" : "boolean",
-                                       "typetext" : "<boolean>"
-                                    },
-                                    "smurf_log_level" : {
-                                       "description" : "Log level for SMURFS filter.",
-                                       "enum" : [
-                                          "emerg",
-                                          "alert",
-                                          "crit",
-                                          "err",
-                                          "warning",
-                                          "notice",
-                                          "info",
-                                          "debug",
-                                          "nolog"
-                                       ],
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "tcp_flags_log_level" : {
-                                       "description" : "Log level for illegal tcp flags filter.",
-                                       "enum" : [
-                                          "emerg",
-                                          "alert",
-                                          "crit",
-                                          "err",
-                                          "warning",
-                                          "notice",
-                                          "info",
-                                          "debug",
-                                          "nolog"
-                                       ],
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "tcpflags" : {
                                        "description" : "Filter illegal combinations of TCP flags.",
                                        "optional" : 1,
                                        "type" : "boolean",
@@ -31983,6 +41404,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Read firewall log",
                               "method" : "GET",
                               "name" : "log",
@@ -32045,6 +41467,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Directory index.",
                         "method" : "GET",
                         "name" : "index",
@@ -32088,6 +41511,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Get replication job status.",
                                     "method" : "GET",
                                     "name" : "job_status",
@@ -32126,6 +41550,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read replication job log.",
                                     "method" : "GET",
                                     "name" : "read_job_log",
@@ -32189,6 +41614,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Schedule replication job to start as soon as possible.",
                                     "method" : "POST",
                                     "name" : "schedule_now",
@@ -32232,6 +41658,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Directory index.",
                               "method" : "GET",
                               "name" : "index",
@@ -32277,6 +41704,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "List status of all replication jobs on this node.",
                         "method" : "GET",
                         "name" : "status",
@@ -32335,6 +41763,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "DELETE" : {
+                                    "allowtoken" : 1,
                                     "description" : "Revoke existing certificate from CA.",
                                     "method" : "DELETE",
                                     "name" : "revoke_certificate",
@@ -32349,6 +41778,15 @@ var pveapi = [
                                           }
                                        }
                                     },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/nodes/{node}",
+                                          [
+                                             "Sys.Modify"
+                                          ]
+                                       ]
+                                    },
                                     "protected" : 1,
                                     "proxyto" : "node",
                                     "returns" : {
@@ -32356,6 +41794,7 @@ var pveapi = [
                                     }
                                  },
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Order a new certificate from ACME-compatible CA.",
                                     "method" : "POST",
                                     "name" : "new_certificate",
@@ -32377,6 +41816,15 @@ var pveapi = [
                                           }
                                        }
                                     },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/nodes/{node}",
+                                          [
+                                             "Sys.Modify"
+                                          ]
+                                       ]
+                                    },
                                     "protected" : 1,
                                     "proxyto" : "node",
                                     "returns" : {
@@ -32384,6 +41832,7 @@ var pveapi = [
                                     }
                                  },
                                  "PUT" : {
+                                    "allowtoken" : 1,
                                     "description" : "Renew existing certificate from CA.",
                                     "method" : "PUT",
                                     "name" : "renew_certificate",
@@ -32405,6 +41854,15 @@ var pveapi = [
                                           }
                                        }
                                     },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/nodes/{node}",
+                                          [
+                                             "Sys.Modify"
+                                          ]
+                                       ]
+                                    },
                                     "protected" : 1,
                                     "proxyto" : "node",
                                     "returns" : {
@@ -32419,6 +41877,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "ACME index.",
                               "method" : "GET",
                               "name" : "index",
@@ -32458,6 +41917,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get information about node's certificates.",
                               "method" : "GET",
                               "name" : "info",
@@ -32512,6 +41972,16 @@ var pveapi = [
                                           "optional" : 1,
                                           "type" : "string"
                                        },
+                                       "public-key-bits" : {
+                                          "description" : "Certificate's public key size",
+                                          "optional" : 1,
+                                          "type" : "integer"
+                                       },
+                                       "public-key-type" : {
+                                          "description" : "Certificate's public key algorithm",
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
                                        "san" : {
                                           "description" : "List of Certificate's SubjectAlternativeName entries.",
                                           "items" : {
@@ -32540,6 +42010,7 @@ var pveapi = [
                      {
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "DELETE custom certificate chain and key.",
                               "method" : "DELETE",
                               "name" : "remove_custom_cert",
@@ -32561,6 +42032,15 @@ var pveapi = [
                                     }
                                  }
                               },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/nodes/{node}",
+                                    [
+                                       "Sys.Modify"
+                                    ]
+                                 ]
+                              },
                               "protected" : 1,
                               "proxyto" : "node",
                               "returns" : {
@@ -32568,6 +42048,7 @@ var pveapi = [
                               }
                            },
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Upload or update custom certificate chain and key.",
                               "method" : "POST",
                               "name" : "upload_custom_cert",
@@ -32609,6 +42090,15 @@ var pveapi = [
                                     }
                                  }
                               },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/nodes/{node}",
+                                    [
+                                       "Sys.Modify"
+                                    ]
+                                 ]
+                              },
                               "protected" : 1,
                               "proxyto" : "node",
                               "returns" : {
@@ -32646,6 +42136,16 @@ var pveapi = [
                                        "optional" : 1,
                                        "type" : "string"
                                     },
+                                    "public-key-bits" : {
+                                       "description" : "Certificate's public key size",
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
+                                    "public-key-type" : {
+                                       "description" : "Certificate's public key algorithm",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
                                     "san" : {
                                        "description" : "List of Certificate's SubjectAlternativeName entries.",
                                        "items" : {
@@ -32672,6 +42172,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Node index.",
                         "method" : "GET",
                         "name" : "index",
@@ -32711,6 +42212,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get node configuration options.",
                         "method" : "GET",
                         "name" : "get_config",
@@ -32722,6 +42224,24 @@ var pveapi = [
                                  "format" : "pve-node",
                                  "type" : "string",
                                  "typetext" : "<string>"
+                              },
+                              "property" : {
+                                 "default" : "all",
+                                 "description" : "Return only a specific property from the node configuration.",
+                                 "enum" : [
+                                    "acme",
+                                    "acmedomain0",
+                                    "acmedomain1",
+                                    "acmedomain2",
+                                    "acmedomain3",
+                                    "acmedomain4",
+                                    "acmedomain5",
+                                    "description",
+                                    "startall-onboot-delay",
+                                    "wakeonlan"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string"
                               }
                            }
                         },
@@ -32736,10 +42256,90 @@ var pveapi = [
                         },
                         "proxyto" : "node",
                         "returns" : {
+                           "properties" : {
+                              "acme" : {
+                                 "description" : "Node specific ACME settings.",
+                                 "format" : {
+                                    "account" : {
+                                       "default" : "default",
+                                       "description" : "ACME account config file name.",
+                                       "format" : "pve-configid",
+                                       "format_description" : "name",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "domains" : {
+                                       "description" : "List of domains for this node's ACME certificate",
+                                       "format" : "pve-acme-domain-list",
+                                       "format_description" : "domain[;domain;...]",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "acmedomain[n]" : {
+                                 "description" : "ACME domain and validation plugin",
+                                 "format" : {
+                                    "alias" : {
+                                       "description" : "Alias for the Domain to verify ACME Challenge over DNS",
+                                       "format" : "pve-acme-alias",
+                                       "format_description" : "domain",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "domain" : {
+                                       "default_key" : 1,
+                                       "description" : "domain for this node's ACME certificate",
+                                       "format" : "pve-acme-domain",
+                                       "format_description" : "domain",
+                                       "type" : "string"
+                                    },
+                                    "plugin" : {
+                                       "default" : "standalone",
+                                       "description" : "The ACME plugin ID",
+                                       "format" : "pve-configid",
+                                       "format_description" : "name of the plugin configuration",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "description" : {
+                                 "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
+                                 "maxLength" : 65536,
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "digest" : {
+                                 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                 "maxLength" : 40,
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "startall-onboot-delay" : {
+                                 "default" : 0,
+                                 "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
+                                 "maximum" : 300,
+                                 "minimum" : 0,
+                                 "optional" : 1,
+                                 "type" : "integer"
+                              },
+                              "wakeonlan" : {
+                                 "description" : "MAC address for wake on LAN",
+                                 "format" : "mac-addr",
+                                 "optional" : 1,
+                                 "type" : "string"
+                              }
+                           },
                            "type" : "object"
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Set node configuration options.",
                         "method" : "PUT",
                         "name" : "set_options",
@@ -32761,12 +42361,43 @@ var pveapi = [
                                        "description" : "List of domains for this node's ACME certificate",
                                        "format" : "pve-acme-domain-list",
                                        "format_description" : "domain[;domain;...]",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "[account=<name>] [,domains=<domain[;domain;...]>]"
+                              },
+                              "acmedomain[n]" : {
+                                 "description" : "ACME domain and validation plugin",
+                                 "format" : {
+                                    "alias" : {
+                                       "description" : "Alias for the Domain to verify ACME Challenge over DNS",
+                                       "format" : "pve-acme-alias",
+                                       "format_description" : "domain",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "domain" : {
+                                       "default_key" : 1,
+                                       "description" : "domain for this node's ACME certificate",
+                                       "format" : "pve-acme-domain",
+                                       "format_description" : "domain",
+                                       "type" : "string"
+                                    },
+                                    "plugin" : {
+                                       "default" : "standalone",
+                                       "description" : "The ACME plugin ID",
+                                       "format" : "pve-configid",
+                                       "format_description" : "name of the plugin configuration",
+                                       "optional" : 1,
                                        "type" : "string"
                                     }
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "domains=<domain[;domain;...]> [,account=<name>]"
+                                 "typetext" : "[domain=]<domain> [,alias=<domain>] [,plugin=<name of the plugin configuration>]"
                               },
                               "delete" : {
                                  "description" : "A list of settings you want to delete.",
@@ -32776,7 +42407,8 @@ var pveapi = [
                                  "typetext" : "<string>"
                               },
                               "description" : {
-                                 "description" : "Node description/comment.",
+                                 "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
+                                 "maxLength" : 65536,
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
@@ -32794,6 +42426,15 @@ var pveapi = [
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
+                              "startall-onboot-delay" : {
+                                 "default" : 0,
+                                 "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
+                                 "maximum" : 300,
+                                 "minimum" : 0,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (0 - 300)"
+                              },
                               "wakeonlan" : {
                                  "description" : "MAC address for wake on LAN",
                                  "format" : "mac-addr",
@@ -32823,9 +42464,243 @@ var pveapi = [
                   "path" : "/nodes/{node}/config",
                   "text" : "config"
                },
+               {
+                  "children" : [
+                     {
+                        "children" : [
+                           {
+                              "children" : [
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "allowtoken" : 1,
+                                          "description" : "List zone content.",
+                                          "method" : "GET",
+                                          "name" : "index",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "zone" : {
+                                                   "description" : "The SDN zone object identifier.",
+                                                   "format" : "pve-sdn-zone-id",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/sdn/zones/{zone}",
+                                                [
+                                                   "SDN.Audit"
+                                                ],
+                                                "any",
+                                                1
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "items" : {
+                                                "properties" : {
+                                                   "status" : {
+                                                      "description" : "Status.",
+                                                      "optional" : 1,
+                                                      "type" : "string"
+                                                   },
+                                                   "statusmsg" : {
+                                                      "description" : "Status details",
+                                                      "optional" : 1,
+                                                      "type" : "string"
+                                                   },
+                                                   "vnet" : {
+                                                      "description" : "Vnet identifier.",
+                                                      "type" : "string"
+                                                   }
+                                                },
+                                                "type" : "object"
+                                             },
+                                             "links" : [
+                                                {
+                                                   "href" : "{vnet}",
+                                                   "rel" : "child"
+                                                }
+                                             ],
+                                             "type" : "array"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/sdn/zones/{zone}/content",
+                                    "text" : "content"
+                                 }
+                              ],
+                              "info" : {
+                                 "GET" : {
+                                    "allowtoken" : 1,
+                                    "description" : "",
+                                    "method" : "GET",
+                                    "name" : "diridx",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "zone" : {
+                                             "description" : "The SDN zone object identifier.",
+                                             "format" : "pve-sdn-zone-id",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/sdn/zones/{zone}",
+                                          [
+                                             "SDN.Audit"
+                                          ],
+                                          "any",
+                                          1
+                                       ]
+                                    },
+                                    "returns" : {
+                                       "items" : {
+                                          "properties" : {
+                                             "subdir" : {
+                                                "type" : "string"
+                                             }
+                                          },
+                                          "type" : "object"
+                                       },
+                                       "links" : [
+                                          {
+                                             "href" : "{subdir}",
+                                             "rel" : "child"
+                                          }
+                                       ],
+                                       "type" : "array"
+                                    }
+                                 }
+                              },
+                              "leaf" : 0,
+                              "path" : "/nodes/{node}/sdn/zones/{zone}",
+                              "text" : "{zone}"
+                           }
+                        ],
+                        "info" : {
+                           "GET" : {
+                              "allowtoken" : 1,
+                              "description" : "Get status for all zones.",
+                              "method" : "GET",
+                              "name" : "index",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "description" : "Only list entries where you have 'SDN.Audit'",
+                                 "user" : "all"
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "items" : {
+                                    "properties" : {
+                                       "status" : {
+                                          "description" : "Status of zone",
+                                          "enum" : [
+                                             "available",
+                                             "pending",
+                                             "error"
+                                          ],
+                                          "type" : "string"
+                                       },
+                                       "zone" : {
+                                          "description" : "The SDN zone object identifier.",
+                                          "format" : "pve-sdn-zone-id",
+                                          "type" : "string"
+                                       }
+                                    },
+                                    "type" : "object"
+                                 },
+                                 "links" : [
+                                    {
+                                       "href" : "{zone}",
+                                       "rel" : "child"
+                                    }
+                                 ],
+                                 "type" : "array"
+                              }
+                           }
+                        },
+                        "leaf" : 0,
+                        "path" : "/nodes/{node}/sdn/zones",
+                        "text" : "zones"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "allowtoken" : 1,
+                        "description" : "SDN index.",
+                        "method" : "GET",
+                        "name" : "sdnindex",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "node" : {
+                                 "description" : "The cluster node name.",
+                                 "format" : "pve-node",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "user" : "all"
+                        },
+                        "returns" : {
+                           "items" : {
+                              "properties" : {},
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{name}",
+                                 "rel" : "child"
+                              }
+                           ],
+                           "type" : "array"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/nodes/{node}/sdn",
+                  "text" : "sdn"
+               },
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "API version details",
                         "method" : "GET",
                         "name" : "version",
@@ -32847,12 +42722,15 @@ var pveapi = [
                         "returns" : {
                            "properties" : {
                               "release" : {
+                                 "description" : "The current installed Proxmox VE Release",
                                  "type" : "string"
                               },
                               "repoid" : {
+                                 "description" : "The short git commit hash ID from which this version was build",
                                  "type" : "string"
                               },
                               "version" : {
+                                 "description" : "The current installed pve-manager package version",
                                  "type" : "string"
                               }
                            },
@@ -32867,6 +42745,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read node status",
                         "method" : "GET",
                         "name" : "status",
@@ -32896,6 +42775,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Reboot or shutdown a node.",
                         "method" : "POST",
                         "name" : "node_cmd",
@@ -32941,6 +42821,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read tap/vm network device interface counters",
                         "method" : "GET",
                         "name" : "netstat",
@@ -32981,6 +42862,7 @@ var pveapi = [
                {
                   "info" : {
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Execute multiple commands in order.",
                         "method" : "POST",
                         "name" : "execute",
@@ -32989,8 +42871,10 @@ var pveapi = [
                            "properties" : {
                               "commands" : {
                                  "description" : "JSON encoded array of commands.",
+                                 "format" : "pve-command-batch",
                                  "type" : "string",
-                                 "typetext" : "<string>"
+                                 "typetext" : "<string>",
+                                 "verbose_description" : "JSON encoded array of commands, where each command is an object with the following properties:\n  args:      <object>\n\n\t     A set of parameter names and their values.\n\n  method:    (GET|POST|PUT|DELETE)\n\n\t     A method related to the API endpoint (GET, POST etc.).\n\n  path:      <string>\n\n\t     A relative path to an API endpoint on this node.\n\n"
                               },
                               "node" : {
                                  "description" : "The cluster node name.",
@@ -33012,6 +42896,10 @@ var pveapi = [
                         "protected" : 1,
                         "proxyto" : "node",
                         "returns" : {
+                           "items" : {
+                              "properties" : {},
+                              "type" : "object"
+                           },
                            "type" : "array"
                         }
                      }
@@ -33023,6 +42911,7 @@ var pveapi = [
                {
                   "info" : {
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Try to wake a node via 'wake on LAN' network packet.",
                         "method" : "POST",
                         "name" : "wakeonlan",
@@ -33061,6 +42950,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read node RRD statistics (returns PNG)",
                         "method" : "GET",
                         "name" : "rrd",
@@ -33128,6 +43018,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read node RRD statistics",
                         "method" : "GET",
                         "name" : "rrddata",
@@ -33188,6 +43079,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read system log",
                         "method" : "GET",
                         "name" : "syslog",
@@ -33269,6 +43161,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read Journal",
                         "method" : "GET",
                         "name" : "journal",
@@ -33342,6 +43235,7 @@ var pveapi = [
                {
                   "info" : {
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Creates a VNC Shell proxy.",
                         "method" : "POST",
                         "name" : "vncshell",
@@ -33352,13 +43246,21 @@ var pveapi = [
                                  "default" : "login",
                                  "description" : "Run specific command or default to login.",
                                  "enum" : [
-                                    "ceph_install",
+                                    "upgrade",
                                     "login",
-                                    "upgrade"
+                                    "ceph_install"
                                  ],
                                  "optional" : 1,
                                  "type" : "string"
                               },
+                              "cmd-opts" : {
+                                 "default" : "",
+                                 "description" : "Add parameters to a command. Encoded as null terminated strings.",
+                                 "optional" : 1,
+                                 "requires" : "cmd",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
                               "height" : {
                                  "description" : "sets the height of the console in pixels.",
                                  "maximum" : 2160,
@@ -33373,13 +43275,6 @@ var pveapi = [
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
-                              "upgrade" : {
-                                 "default" : 0,
-                                 "description" : "Deprecated, use the 'cmd' property instead! Run 'apt-get dist-upgrade' instead of normal shell.",
-                                 "optional" : 1,
-                                 "type" : "boolean",
-                                 "typetext" : "<boolean>"
-                              },
                               "websocket" : {
                                  "description" : "use websocket instead of standard vnc.",
                                  "optional" : 1,
@@ -33436,6 +43331,7 @@ var pveapi = [
                {
                   "info" : {
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Creates a VNC Shell proxy.",
                         "method" : "POST",
                         "name" : "termproxy",
@@ -33446,25 +43342,26 @@ var pveapi = [
                                  "default" : "login",
                                  "description" : "Run specific command or default to login.",
                                  "enum" : [
-                                    "ceph_install",
+                                    "upgrade",
                                     "login",
-                                    "upgrade"
+                                    "ceph_install"
                                  ],
                                  "optional" : 1,
                                  "type" : "string"
                               },
+                              "cmd-opts" : {
+                                 "default" : "",
+                                 "description" : "Add parameters to a command. Encoded as null terminated strings.",
+                                 "optional" : 1,
+                                 "requires" : "cmd",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
                                  "type" : "string",
                                  "typetext" : "<string>"
-                              },
-                              "upgrade" : {
-                                 "default" : 0,
-                                 "description" : "Deprecated, use the 'cmd' property instead! Run 'apt-get dist-upgrade' instead of normal shell.",
-                                 "optional" : 1,
-                                 "type" : "boolean",
-                                 "typetext" : "<boolean>"
                               }
                            }
                         },
@@ -33505,7 +43402,8 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
-                        "description" : "Opens a weksocket for VNC traffic.",
+                        "allowtoken" : 1,
+                        "description" : "Opens a websocket for VNC traffic.",
                         "method" : "GET",
                         "name" : "vncwebsocket",
                         "parameters" : {
@@ -33559,6 +43457,7 @@ var pveapi = [
                {
                   "info" : {
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Creates a SPICE shell.",
                         "method" : "POST",
                         "name" : "spiceshell",
@@ -33569,13 +43468,21 @@ var pveapi = [
                                  "default" : "login",
                                  "description" : "Run specific command or default to login.",
                                  "enum" : [
-                                    "ceph_install",
+                                    "upgrade",
                                     "login",
-                                    "upgrade"
+                                    "ceph_install"
                                  ],
                                  "optional" : 1,
                                  "type" : "string"
                               },
+                              "cmd-opts" : {
+                                 "default" : "",
+                                 "description" : "Add parameters to a command. Encoded as null terminated strings.",
+                                 "optional" : 1,
+                                 "requires" : "cmd",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
@@ -33588,13 +43495,6 @@ var pveapi = [
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
-                              },
-                              "upgrade" : {
-                                 "default" : 0,
-                                 "description" : "Deprecated, use the 'cmd' property instead! Run 'apt-get dist-upgrade' instead of normal shell.",
-                                 "optional" : 1,
-                                 "type" : "boolean",
-                                 "typetext" : "<boolean>"
                               }
                            }
                         },
@@ -33640,6 +43540,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read DNS settings.",
                         "method" : "GET",
                         "name" : "dns",
@@ -33692,6 +43593,7 @@ var pveapi = [
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Write DNS settings.",
                         "method" : "PUT",
                         "name" : "update_dns",
@@ -33755,6 +43657,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read server time and time zone settings.",
                         "method" : "GET",
                         "name" : "time",
@@ -33803,6 +43706,7 @@ var pveapi = [
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Set time zone.",
                         "method" : "PUT",
                         "name" : "set_timezone",
@@ -33845,6 +43749,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get list of appliances.",
                         "method" : "GET",
                         "name" : "aplinfo",
@@ -33872,6 +43777,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Download appliance templates.",
                         "method" : "POST",
                         "name" : "apl_download",
@@ -33891,7 +43797,7 @@ var pveapi = [
                                  "typetext" : "<string>"
                               },
                               "template" : {
-                                 "description" : "The template wich will downloaded",
+                                 "description" : "The template which will downloaded",
                                  "maxLength" : 255,
                                  "type" : "string",
                                  "typetext" : "<string>"
@@ -33921,6 +43827,72 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
+                        "description" : "Query metadata of an URL: file size, file name and mime type.",
+                        "method" : "GET",
+                        "name" : "query_url_metadata",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "node" : {
+                                 "description" : "The cluster node name.",
+                                 "format" : "pve-node",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "url" : {
+                                 "description" : "The URL to query the metadata from.",
+                                 "pattern" : "https?://.*",
+                                 "type" : "string"
+                              },
+                              "verify-certificates" : {
+                                 "default" : 1,
+                                 "description" : "If false, no SSL/TLS certificates will be verified.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Audit",
+                                 "Sys.Modify"
+                              ]
+                           ]
+                        },
+                        "proxyto" : "node",
+                        "returns" : {
+                           "properties" : {
+                              "filename" : {
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "mimetype" : {
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "size" : {
+                                 "optional" : 1,
+                                 "renderer" : "bytes",
+                                 "type" : "integer"
+                              }
+                           },
+                           "type" : "object"
+                        }
+                     }
+                  },
+                  "leaf" : 1,
+                  "path" : "/nodes/{node}/query-url-metadata",
+                  "text" : "query-url-metadata"
+               },
+               {
+                  "info" : {
+                     "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Gather various systems information about a node",
                         "method" : "GET",
                         "name" : "report",
@@ -33958,14 +43930,16 @@ var pveapi = [
                {
                   "info" : {
                      "POST" : {
-                        "description" : "Start all VMs and containers (when onboot=1).",
+                        "allowtoken" : 1,
+                        "description" : "Start all VMs and containers located on this node (by default only those with onboot=1).",
                         "method" : "POST",
                         "name" : "startall",
                         "parameters" : {
                            "additionalProperties" : 0,
                            "properties" : {
                               "force" : {
-                                 "description" : "force if onboot=0.",
+                                 "default" : "off",
+                                 "description" : "Issue start command even if virtual guest have 'onboot' not set or set to off.",
                                  "optional" : 1,
                                  "type" : "boolean",
                                  "typetext" : "<boolean>"
@@ -33977,7 +43951,7 @@ var pveapi = [
                                  "typetext" : "<string>"
                               },
                               "vms" : {
-                                 "description" : "Only consider Guests with these IDs.",
+                                 "description" : "Only consider guests from this comma separated list of VMIDs.",
                                  "format" : "pve-vmid-list",
                                  "optional" : 1,
                                  "type" : "string",
@@ -34008,6 +43982,7 @@ var pveapi = [
                {
                   "info" : {
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Stop all VMs and Containers.",
                         "method" : "POST",
                         "name" : "stopall",
@@ -34052,6 +44027,7 @@ var pveapi = [
                {
                   "info" : {
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Migrate all VMs and Containers.",
                         "method" : "POST",
                         "name" : "migrateall",
@@ -34083,6 +44059,12 @@ var pveapi = [
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
+                              },
+                              "with-local-disks" : {
+                                 "description" : "Enable live storage migration for local disk",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               }
                            }
                         },
@@ -34109,6 +44091,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get the content of /etc/hosts.",
                         "method" : "GET",
                         "name" : "get_etc_hosts",
@@ -34151,6 +44134,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Write /etc/hosts.",
                         "method" : "POST",
                         "name" : "write_etc_hosts",
@@ -34200,6 +44184,7 @@ var pveapi = [
             ],
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Node index.",
                   "method" : "GET",
                   "name" : "index",
@@ -34239,6 +44224,7 @@ var pveapi = [
       ],
       "info" : {
          "GET" : {
+            "allowtoken" : 1,
             "description" : "Cluster node index.",
             "method" : "GET",
             "name" : "index",
@@ -34277,7 +44263,7 @@ var pveapi = [
                         "description" : "Used memory in bytes.",
                         "optional" : 1,
                         "renderer" : "bytes",
-                        "type" : "string"
+                        "type" : "integer"
                      },
                      "node" : {
                         "description" : "The cluster node name.",
@@ -34326,6 +44312,7 @@ var pveapi = [
          {
             "info" : {
                "DELETE" : {
+                  "allowtoken" : 1,
                   "description" : "Delete storage configuration.",
                   "method" : "DELETE",
                   "name" : "delete",
@@ -34355,6 +44342,7 @@ var pveapi = [
                   }
                },
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Read storage configuration.",
                   "method" : "GET",
                   "name" : "read",
@@ -34383,6 +44371,7 @@ var pveapi = [
                   }
                },
                "PUT" : {
+                  "allowtoken" : 1,
                   "description" : "Update storage configuration.",
                   "method" : "PUT",
                   "name" : "update",
@@ -34457,6 +44446,12 @@ var pveapi = [
                            "type" : "string",
                            "typetext" : "<string>"
                         },
+                        "data-pool" : {
+                           "description" : "Data Pool (for erasure coding only)",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
                         "delete" : {
                            "description" : "A list of settings you want to delete.",
                            "format" : "pve-configid-list",
@@ -34485,6 +44480,18 @@ var pveapi = [
                            "type" : "string",
                            "typetext" : "<string>"
                         },
+                        "encryption-key" : {
+                           "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "fingerprint" : {
+                           "description" : "Certificate SHA 256 fingerprint.",
+                           "optional" : 1,
+                           "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
+                           "type" : "string"
+                        },
                         "format" : {
                            "description" : "Default image format.",
                            "format" : "pve-storage-format",
@@ -34492,6 +44499,13 @@ var pveapi = [
                            "type" : "string",
                            "typetext" : "<string>"
                         },
+                        "fs-name" : {
+                           "description" : "The Ceph filesystem name.",
+                           "format" : "pve-configid",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
                         "fuse" : {
                            "description" : "Mount CephFS through FUSE.",
                            "optional" : 1,
@@ -34505,6 +44519,12 @@ var pveapi = [
                            "type" : "string",
                            "typetext" : "<string>"
                         },
+                        "keyring" : {
+                           "description" : "Client keyring contents (for external clusters).",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
                         "krbd" : {
                            "description" : "Always access rbd through krbd kernel module.",
                            "optional" : 1,
@@ -34517,8 +44537,22 @@ var pveapi = [
                            "type" : "string",
                            "typetext" : "<string>"
                         },
+                        "master-pubkey" : {
+                           "description" : "Base64-encoded, PEM-formatted public RSA key. Used to encrypt a copy of the encryption-key which will be added to each encrypted backup.",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "max-protected-backups" : {
+                           "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
+                           "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
+                           "minimum" : -1,
+                           "optional" : 1,
+                           "type" : "integer",
+                           "typetext" : "<integer> (-1 - N)"
+                        },
                         "maxfiles" : {
-                           "description" : "Maximal number of backup files per VM. Use '0' for unlimted.",
+                           "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
                            "minimum" : 0,
                            "optional" : 1,
                            "type" : "integer",
@@ -34538,6 +44572,26 @@ var pveapi = [
                            "type" : "string",
                            "typetext" : "<string>"
                         },
+                        "mountpoint" : {
+                           "description" : "mount point",
+                           "format" : "pve-storage-path",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "namespace" : {
+                           "description" : "Namespace.",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "nocow" : {
+                           "default" : 0,
+                           "description" : "Set the NOCOW flag on files. Disables data checksumming and causes data errors to be unrecoverable from while allowing direct I/O. Only use this if data does not need to be any more safe than on a single ext4 formatted disk with no underlying raid system.",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
+                        },
                         "nodes" : {
                            "description" : "List of cluster node names.",
                            "format" : "pve-node-list",
@@ -34559,7 +44613,7 @@ var pveapi = [
                            "typetext" : "<string>"
                         },
                         "password" : {
-                           "description" : "Password for CIFS share.",
+                           "description" : "Password for accessing the share/datastore.",
                            "maxLength" : 256,
                            "optional" : 1,
                            "type" : "string",
@@ -34571,14 +44625,33 @@ var pveapi = [
                            "type" : "string",
                            "typetext" : "<string>"
                         },
-                        "redundancy" : {
-                           "default" : 2,
-                           "description" : "The redundancy count specifies the number of nodes to which the resource should be deployed. It must be at least 1 and at most the number of nodes in the cluster.",
-                           "maximum" : 16,
+                        "port" : {
+                           "default" : 8007,
+                           "description" : "For non default port.",
+                           "maximum" : 65535,
                            "minimum" : 1,
                            "optional" : 1,
                            "type" : "integer",
-                           "typetext" : "<integer> (1 - 16)"
+                           "typetext" : "<integer> (1 - 65535)"
+                        },
+                        "preallocation" : {
+                           "default" : "metadata",
+                           "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
+                           "enum" : [
+                              "off",
+                              "metadata",
+                              "falloc",
+                              "full"
+                           ],
+                           "optional" : 1,
+                           "type" : "string"
+                        },
+                        "prune-backups" : {
+                           "description" : "The retention options with shorter intervals are processed first with --keep-last being the very first one. Each option covers a specific period of time. We say that backups within this period are covered by this option. The next option does not take care of already covered backups and only considers older backups.",
+                           "format" : "prune-backups",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
                         },
                         "saferemove" : {
                            "description" : "Zero-out data when removing LVs.",
@@ -34614,11 +44687,15 @@ var pveapi = [
                            "typetext" : "<boolean>"
                         },
                         "smbversion" : {
-                           "description" : "SMB protocol version",
+                           "default" : "default",
+                           "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
                            "enum" : [
+                              "default",
                               "2.0",
                               "2.1",
-                              "3.0"
+                              "3",
+                              "3.0",
+                              "3.11"
                            ],
                            "optional" : 1,
                            "type" : "string"
@@ -34678,7 +44755,46 @@ var pveapi = [
                   },
                   "protected" : 1,
                   "returns" : {
-                     "type" : "null"
+                     "properties" : {
+                        "config" : {
+                           "additionalProperties" : 1,
+                           "description" : "Partial, possible server generated, configuration properties.",
+                           "optional" : 1,
+                           "properties" : {
+                              "encryption-key" : {
+                                 "description" : "The, possible auto-generated, encryption-key.",
+                                 "optional" : 1,
+                                 "type" : "string"
+                              }
+                           },
+                           "type" : "object"
+                        },
+                        "storage" : {
+                           "description" : "The ID of the created storage.",
+                           "type" : "string"
+                        },
+                        "type" : {
+                           "description" : "The type of the created storage.",
+                           "enum" : [
+                              "btrfs",
+                              "cephfs",
+                              "cifs",
+                              "dir",
+                              "glusterfs",
+                              "iscsi",
+                              "iscsidirect",
+                              "lvm",
+                              "lvmthin",
+                              "nfs",
+                              "pbs",
+                              "rbd",
+                              "zfs",
+                              "zfspool"
+                           ],
+                           "type" : "string"
+                        }
+                     },
+                     "type" : "object"
                   }
                }
             },
@@ -34689,6 +44805,7 @@ var pveapi = [
       ],
       "info" : {
          "GET" : {
+            "allowtoken" : 1,
             "description" : "Storage index.",
             "method" : "GET",
             "name" : "index",
@@ -34698,19 +44815,18 @@ var pveapi = [
                   "type" : {
                      "description" : "Only list storage of specific type",
                      "enum" : [
+                        "btrfs",
                         "cephfs",
                         "cifs",
                         "dir",
-                        "drbd",
-                        "fake",
                         "glusterfs",
                         "iscsi",
                         "iscsidirect",
                         "lvm",
                         "lvmthin",
                         "nfs",
+                        "pbs",
                         "rbd",
-                        "sheepdog",
                         "zfs",
                         "zfspool"
                      ],
@@ -34742,6 +44858,7 @@ var pveapi = [
             }
          },
          "POST" : {
+            "allowtoken" : 1,
             "description" : "Create a new storage.",
             "method" : "POST",
             "name" : "create",
@@ -34829,6 +44946,18 @@ var pveapi = [
                      "type" : "string",
                      "typetext" : "<string>"
                   },
+                  "data-pool" : {
+                     "description" : "Data Pool (for erasure coding only)",
+                     "optional" : 1,
+                     "type" : "string",
+                     "typetext" : "<string>"
+                  },
+                  "datastore" : {
+                     "description" : "Proxmox Backup Server datastore name.",
+                     "optional" : 1,
+                     "type" : "string",
+                     "typetext" : "<string>"
+                  },
                   "disable" : {
                      "description" : "Flag to disable the storage.",
                      "optional" : 1,
@@ -34842,6 +44971,12 @@ var pveapi = [
                      "type" : "string",
                      "typetext" : "<string>"
                   },
+                  "encryption-key" : {
+                     "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
+                     "optional" : 1,
+                     "type" : "string",
+                     "typetext" : "<string>"
+                  },
                   "export" : {
                      "description" : "NFS export path.",
                      "format" : "pve-storage-path",
@@ -34849,6 +44984,12 @@ var pveapi = [
                      "type" : "string",
                      "typetext" : "<string>"
                   },
+                  "fingerprint" : {
+                     "description" : "Certificate SHA 256 fingerprint.",
+                     "optional" : 1,
+                     "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
+                     "type" : "string"
+                  },
                   "format" : {
                      "description" : "Default image format.",
                      "format" : "pve-storage-format",
@@ -34856,6 +44997,13 @@ var pveapi = [
                      "type" : "string",
                      "typetext" : "<string>"
                   },
+                  "fs-name" : {
+                     "description" : "The Ceph filesystem name.",
+                     "format" : "pve-configid",
+                     "optional" : 1,
+                     "type" : "string",
+                     "typetext" : "<string>"
+                  },
                   "fuse" : {
                      "description" : "Mount CephFS through FUSE.",
                      "optional" : 1,
@@ -34875,6 +45023,12 @@ var pveapi = [
                      "type" : "string",
                      "typetext" : "<string>"
                   },
+                  "keyring" : {
+                     "description" : "Client keyring contents (for external clusters).",
+                     "optional" : 1,
+                     "type" : "string",
+                     "typetext" : "<string>"
+                  },
                   "krbd" : {
                      "description" : "Always access rbd through krbd kernel module.",
                      "optional" : 1,
@@ -34887,8 +45041,22 @@ var pveapi = [
                      "type" : "string",
                      "typetext" : "<string>"
                   },
+                  "master-pubkey" : {
+                     "description" : "Base64-encoded, PEM-formatted public RSA key. Used to encrypt a copy of the encryption-key which will be added to each encrypted backup.",
+                     "optional" : 1,
+                     "type" : "string",
+                     "typetext" : "<string>"
+                  },
+                  "max-protected-backups" : {
+                     "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
+                     "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
+                     "minimum" : -1,
+                     "optional" : 1,
+                     "type" : "integer",
+                     "typetext" : "<integer> (-1 - N)"
+                  },
                   "maxfiles" : {
-                     "description" : "Maximal number of backup files per VM. Use '0' for unlimted.",
+                     "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
                      "minimum" : 0,
                      "optional" : 1,
                      "type" : "integer",
@@ -34908,6 +45076,26 @@ var pveapi = [
                      "type" : "string",
                      "typetext" : "<string>"
                   },
+                  "mountpoint" : {
+                     "description" : "mount point",
+                     "format" : "pve-storage-path",
+                     "optional" : 1,
+                     "type" : "string",
+                     "typetext" : "<string>"
+                  },
+                  "namespace" : {
+                     "description" : "Namespace.",
+                     "optional" : 1,
+                     "type" : "string",
+                     "typetext" : "<string>"
+                  },
+                  "nocow" : {
+                     "default" : 0,
+                     "description" : "Set the NOCOW flag on files. Disables data checksumming and causes data errors to be unrecoverable from while allowing direct I/O. Only use this if data does not need to be any more safe than on a single ext4 formatted disk with no underlying raid system.",
+                     "optional" : 1,
+                     "type" : "boolean",
+                     "typetext" : "<boolean>"
+                  },
                   "nodes" : {
                      "description" : "List of cluster node names.",
                      "format" : "pve-node-list",
@@ -34929,7 +45117,7 @@ var pveapi = [
                      "typetext" : "<string>"
                   },
                   "password" : {
-                     "description" : "Password for CIFS share.",
+                     "description" : "Password for accessing the share/datastore.",
                      "maxLength" : 256,
                      "optional" : 1,
                      "type" : "string",
@@ -34948,6 +45136,15 @@ var pveapi = [
                      "type" : "string",
                      "typetext" : "<string>"
                   },
+                  "port" : {
+                     "default" : 8007,
+                     "description" : "For non default port.",
+                     "maximum" : 65535,
+                     "minimum" : 1,
+                     "optional" : 1,
+                     "type" : "integer",
+                     "typetext" : "<integer> (1 - 65535)"
+                  },
                   "portal" : {
                      "description" : "iSCSI portal (IP or DNS name with optional port).",
                      "format" : "pve-storage-portal-dns",
@@ -34955,14 +45152,24 @@ var pveapi = [
                      "type" : "string",
                      "typetext" : "<string>"
                   },
-                  "redundancy" : {
-                     "default" : 2,
-                     "description" : "The redundancy count specifies the number of nodes to which the resource should be deployed. It must be at least 1 and at most the number of nodes in the cluster.",
-                     "maximum" : 16,
-                     "minimum" : 1,
+                  "preallocation" : {
+                     "default" : "metadata",
+                     "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
+                     "enum" : [
+                        "off",
+                        "metadata",
+                        "falloc",
+                        "full"
+                     ],
                      "optional" : 1,
-                     "type" : "integer",
-                     "typetext" : "<integer> (1 - 16)"
+                     "type" : "string"
+                  },
+                  "prune-backups" : {
+                     "description" : "The retention options with shorter intervals are processed first with --keep-last being the very first one. Each option covers a specific period of time. We say that backups within this period are covered by this option. The next option does not take care of already covered backups and only considers older backups.",
+                     "format" : "prune-backups",
+                     "optional" : 1,
+                     "type" : "string",
+                     "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
                   },
                   "saferemove" : {
                      "description" : "Zero-out data when removing LVs.",
@@ -35004,11 +45211,15 @@ var pveapi = [
                      "typetext" : "<boolean>"
                   },
                   "smbversion" : {
-                     "description" : "SMB protocol version",
+                     "default" : "default",
+                     "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
                      "enum" : [
+                        "default",
                         "2.0",
                         "2.1",
-                        "3.0"
+                        "3",
+                        "3.0",
+                        "3.11"
                      ],
                      "optional" : 1,
                      "type" : "string"
@@ -35064,19 +45275,18 @@ var pveapi = [
                   "type" : {
                      "description" : "Storage type.",
                      "enum" : [
+                        "btrfs",
                         "cephfs",
                         "cifs",
                         "dir",
-                        "drbd",
-                        "fake",
                         "glusterfs",
                         "iscsi",
                         "iscsidirect",
                         "lvm",
                         "lvmthin",
                         "nfs",
+                        "pbs",
                         "rbd",
-                        "sheepdog",
                         "zfs",
                         "zfspool"
                      ],
@@ -35115,7 +45325,46 @@ var pveapi = [
             },
             "protected" : 1,
             "returns" : {
-               "type" : "null"
+               "properties" : {
+                  "config" : {
+                     "additionalProperties" : 1,
+                     "description" : "Partial, possible server generated, configuration properties.",
+                     "optional" : 1,
+                     "properties" : {
+                        "encryption-key" : {
+                           "description" : "The, possible auto-generated, encryption-key.",
+                           "optional" : 1,
+                           "type" : "string"
+                        }
+                     },
+                     "type" : "object"
+                  },
+                  "storage" : {
+                     "description" : "The ID of the created storage.",
+                     "type" : "string"
+                  },
+                  "type" : {
+                     "description" : "The type of the created storage.",
+                     "enum" : [
+                        "btrfs",
+                        "cephfs",
+                        "cifs",
+                        "dir",
+                        "glusterfs",
+                        "iscsi",
+                        "iscsidirect",
+                        "lvm",
+                        "lvmthin",
+                        "nfs",
+                        "pbs",
+                        "rbd",
+                        "zfs",
+                        "zfspool"
+                     ],
+                     "type" : "string"
+                  }
+               },
+               "type" : "object"
             }
          }
       },
@@ -35132,12 +45381,20 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get user TFA types (Personal and Realm).",
                               "method" : "GET",
                               "name" : "read_user_tfa_type",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
+                                    "multiple" : {
+                                       "default" : 0,
+                                       "description" : "Request all entries as an array.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
                                     "userid" : {
                                        "description" : "User ID",
                                        "format" : "pve-userid",
@@ -35176,8 +45433,24 @@ var pveapi = [
                                        "optional" : 1,
                                        "type" : "string"
                                     },
+                                    "types" : {
+                                       "description" : "Array of the user configured TFA types, if any. Only available if 'multiple' was not passed.",
+                                       "items" : {
+                                          "description" : "A TFA type.",
+                                          "enum" : [
+                                             "totp",
+                                             "u2f",
+                                             "yubico",
+                                             "webauthn",
+                                             "recovedry"
+                                          ],
+                                          "type" : "string"
+                                       },
+                                       "optional" : 1,
+                                       "type" : "array"
+                                    },
                                     "user" : {
-                                       "description" : "The type of TFA the user has set, if any.",
+                                       "description" : "The type of TFA the user has set, if any. Only set if 'multiple' was not passed.",
                                        "enum" : [
                                           "oath",
                                           "u2f"
@@ -35193,10 +45466,376 @@ var pveapi = [
                         "leaf" : 1,
                         "path" : "/access/users/{userid}/tfa",
                         "text" : "tfa"
+                     },
+                     {
+                        "children" : [
+                           {
+                              "info" : {
+                                 "DELETE" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Remove API token for a specific user.",
+                                    "method" : "DELETE",
+                                    "name" : "remove_token",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "tokenid" : {
+                                             "description" : "User-specific token identifier.",
+                                             "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
+                                             "type" : "string"
+                                          },
+                                          "userid" : {
+                                             "description" : "User ID",
+                                             "format" : "pve-userid",
+                                             "maxLength" : 64,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "or",
+                                          [
+                                             "userid-param",
+                                             "self"
+                                          ],
+                                          [
+                                             "userid-group",
+                                             [
+                                                "User.Modify"
+                                             ]
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "returns" : {
+                                       "type" : "null"
+                                    }
+                                 },
+                                 "GET" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Get specific API token information.",
+                                    "method" : "GET",
+                                    "name" : "read_token",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "tokenid" : {
+                                             "description" : "User-specific token identifier.",
+                                             "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
+                                             "type" : "string"
+                                          },
+                                          "userid" : {
+                                             "description" : "User ID",
+                                             "format" : "pve-userid",
+                                             "maxLength" : 64,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "or",
+                                          [
+                                             "userid-param",
+                                             "self"
+                                          ],
+                                          [
+                                             "userid-group",
+                                             [
+                                                "User.Modify"
+                                             ]
+                                          ]
+                                       ]
+                                    },
+                                    "returns" : {
+                                       "properties" : {
+                                          "comment" : {
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "expire" : {
+                                             "default" : "same as user",
+                                             "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer"
+                                          },
+                                          "privsep" : {
+                                             "default" : 1,
+                                             "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
+                                             "optional" : 1,
+                                             "type" : "boolean"
+                                          }
+                                       },
+                                       "type" : "object"
+                                    }
+                                 },
+                                 "POST" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Generate a new API token for a specific user. NOTE: returns API token value, which needs to be stored as it cannot be retrieved afterwards!",
+                                    "method" : "POST",
+                                    "name" : "generate_token",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "comment" : {
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "expire" : {
+                                             "default" : "same as user",
+                                             "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (0 - N)"
+                                          },
+                                          "privsep" : {
+                                             "default" : 1,
+                                             "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "tokenid" : {
+                                             "description" : "User-specific token identifier.",
+                                             "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
+                                             "type" : "string"
+                                          },
+                                          "userid" : {
+                                             "description" : "User ID",
+                                             "format" : "pve-userid",
+                                             "maxLength" : 64,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "or",
+                                          [
+                                             "userid-param",
+                                             "self"
+                                          ],
+                                          [
+                                             "userid-group",
+                                             [
+                                                "User.Modify"
+                                             ]
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "returns" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "full-tokenid" : {
+                                             "description" : "The full token id.",
+                                             "format_description" : "<userid>!<tokenid>",
+                                             "type" : "string"
+                                          },
+                                          "info" : {
+                                             "properties" : {
+                                                "comment" : {
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "expire" : {
+                                                   "default" : "same as user",
+                                                   "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
+                                                   "minimum" : 0,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "privsep" : {
+                                                   "default" : 1,
+                                                   "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                }
+                                             },
+                                             "type" : "object"
+                                          },
+                                          "value" : {
+                                             "description" : "API token value used for authentication.",
+                                             "type" : "string"
+                                          }
+                                       },
+                                       "type" : "object"
+                                    }
+                                 },
+                                 "PUT" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Update API token for a specific user.",
+                                    "method" : "PUT",
+                                    "name" : "update_token_info",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "comment" : {
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "expire" : {
+                                             "default" : "same as user",
+                                             "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (0 - N)"
+                                          },
+                                          "privsep" : {
+                                             "default" : 1,
+                                             "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "tokenid" : {
+                                             "description" : "User-specific token identifier.",
+                                             "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
+                                             "type" : "string"
+                                          },
+                                          "userid" : {
+                                             "description" : "User ID",
+                                             "format" : "pve-userid",
+                                             "maxLength" : 64,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "or",
+                                          [
+                                             "userid-param",
+                                             "self"
+                                          ],
+                                          [
+                                             "userid-group",
+                                             [
+                                                "User.Modify"
+                                             ]
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "returns" : {
+                                       "description" : "Updated token information.",
+                                       "properties" : {
+                                          "comment" : {
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "expire" : {
+                                             "default" : "same as user",
+                                             "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer"
+                                          },
+                                          "privsep" : {
+                                             "default" : 1,
+                                             "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
+                                             "optional" : 1,
+                                             "type" : "boolean"
+                                          }
+                                       },
+                                       "type" : "object"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/access/users/{userid}/token/{tokenid}",
+                              "text" : "{tokenid}"
+                           }
+                        ],
+                        "info" : {
+                           "GET" : {
+                              "allowtoken" : 1,
+                              "description" : "Get user API tokens.",
+                              "method" : "GET",
+                              "name" : "token_index",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "userid" : {
+                                       "description" : "User ID",
+                                       "format" : "pve-userid",
+                                       "maxLength" : 64,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "or",
+                                    [
+                                       "userid-param",
+                                       "self"
+                                    ],
+                                    [
+                                       "userid-group",
+                                       [
+                                          "User.Modify"
+                                       ]
+                                    ]
+                                 ]
+                              },
+                              "returns" : {
+                                 "items" : {
+                                    "properties" : {
+                                       "comment" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "expire" : {
+                                          "default" : "same as user",
+                                          "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
+                                          "minimum" : 0,
+                                          "optional" : 1,
+                                          "type" : "integer"
+                                       },
+                                       "privsep" : {
+                                          "default" : 1,
+                                          "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
+                                          "optional" : 1,
+                                          "type" : "boolean"
+                                       },
+                                       "tokenid" : {
+                                          "description" : "User-specific token identifier.",
+                                          "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
+                                          "type" : "string"
+                                       }
+                                    },
+                                    "type" : "object"
+                                 },
+                                 "links" : [
+                                    {
+                                       "href" : "{tokenid}",
+                                       "rel" : "child"
+                                    }
+                                 ],
+                                 "type" : "array"
+                              }
+                           }
+                        },
+                        "leaf" : 0,
+                        "path" : "/access/users/{userid}/token",
+                        "text" : "token"
                      }
                   ],
                   "info" : {
                      "DELETE" : {
+                        "allowtoken" : 1,
                         "description" : "Delete user.",
                         "method" : "DELETE",
                         "name" : "delete_user",
@@ -35233,6 +45872,7 @@ var pveapi = [
                         }
                      },
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get user configuration.",
                         "method" : "GET",
                         "name" : "read_user",
@@ -35286,6 +45926,11 @@ var pveapi = [
                                  "type" : "string"
                               },
                               "groups" : {
+                                 "items" : {
+                                    "format" : "pve-groupid",
+                                    "type" : "string"
+                                 },
+                                 "optional" : 1,
                                  "type" : "array"
                               },
                               "keys" : {
@@ -35295,13 +45940,40 @@ var pveapi = [
                               },
                               "lastname" : {
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string"
+                              },
+                              "tokens" : {
+                                 "additionalProperties" : {
+                                    "properties" : {
+                                       "comment" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "expire" : {
+                                          "default" : "same as user",
+                                          "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
+                                          "minimum" : 0,
+                                          "optional" : 1,
+                                          "type" : "integer"
+                                       },
+                                       "privsep" : {
+                                          "default" : 1,
+                                          "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
+                                          "optional" : 1,
+                                          "type" : "boolean"
+                                       }
+                                    },
+                                    "type" : "object"
+                                 },
+                                 "optional" : 1,
+                                 "type" : "object"
                               }
                            },
                            "type" : "object"
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Update user configuration.",
                         "method" : "PUT",
                         "name" : "update_user",
@@ -35377,7 +46049,7 @@ var pveapi = [
                                  "User.Modify"
                               ],
                               "groups_param",
-                              1
+                              "update"
                            ]
                         },
                         "protected" : 1,
@@ -35393,6 +46065,7 @@ var pveapi = [
             ],
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "User index.",
                   "method" : "GET",
                   "name" : "index",
@@ -35404,6 +46077,13 @@ var pveapi = [
                            "optional" : 1,
                            "type" : "boolean",
                            "typetext" : "<boolean>"
+                        },
+                        "full" : {
+                           "default" : 0,
+                           "description" : "Include group and token information.",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
                         }
                      }
                   },
@@ -35439,6 +46119,11 @@ var pveapi = [
                               "optional" : 1,
                               "type" : "string"
                            },
+                           "groups" : {
+                              "format" : "pve-groupid-list",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
                            "keys" : {
                               "description" : "Keys for two factor auth (yubico).",
                               "optional" : 1,
@@ -35448,6 +46133,43 @@ var pveapi = [
                               "optional" : 1,
                               "type" : "string"
                            },
+                           "realm-type" : {
+                              "description" : "The type of the users realm",
+                              "format" : "pve-realm",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "tokens" : {
+                              "items" : {
+                                 "properties" : {
+                                    "comment" : {
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "expire" : {
+                                       "default" : "same as user",
+                                       "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
+                                    "privsep" : {
+                                       "default" : 1,
+                                       "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
+                                    "tokenid" : {
+                                       "description" : "User-specific token identifier.",
+                                       "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "type" : "object"
+                              },
+                              "optional" : 1,
+                              "type" : "array"
+                           },
                            "userid" : {
                               "description" : "User ID",
                               "format" : "pve-userid",
@@ -35467,6 +46189,7 @@ var pveapi = [
                   }
                },
                "POST" : {
+                  "allowtoken" : 1,
                   "description" : "Create new user.",
                   "method" : "POST",
                   "name" : "create_user",
@@ -35550,7 +46273,7 @@ var pveapi = [
                               "User.Modify"
                            ],
                            "groups_param",
-                           1
+                           "create"
                         ]
                      ],
                      "description" : "You need 'Realm.AllocateUser' on '/access/realm/<realm>' on the realm of user <userid>, and 'User.Modify' permissions to '/access/groups/<group>' for any group specified (or 'User.Modify' on '/access/groups' if you pass no groups."
@@ -35570,6 +46293,7 @@ var pveapi = [
                {
                   "info" : {
                      "DELETE" : {
+                        "allowtoken" : 1,
                         "description" : "Delete group.",
                         "method" : "DELETE",
                         "name" : "delete_group",
@@ -35598,6 +46322,7 @@ var pveapi = [
                         }
                      },
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get group configuration.",
                         "method" : "GET",
                         "name" : "read_group",
@@ -35644,6 +46369,7 @@ var pveapi = [
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Update group data.",
                         "method" : "PUT",
                         "name" : "update_group",
@@ -35684,6 +46410,7 @@ var pveapi = [
             ],
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Group index.",
                   "method" : "GET",
                   "name" : "index",
@@ -35704,6 +46431,12 @@ var pveapi = [
                            "groupid" : {
                               "format" : "pve-groupid",
                               "type" : "string"
+                           },
+                           "users" : {
+                              "description" : "list of users which form this group",
+                              "format" : "pve-userid-list",
+                              "optional" : 1,
+                              "type" : "string"
                            }
                         },
                         "type" : "object"
@@ -35718,6 +46451,7 @@ var pveapi = [
                   }
                },
                "POST" : {
+                  "allowtoken" : 1,
                   "description" : "Create new group.",
                   "method" : "POST",
                   "name" : "create_group",
@@ -35760,6 +46494,7 @@ var pveapi = [
                {
                   "info" : {
                      "DELETE" : {
+                        "allowtoken" : 1,
                         "description" : "Delete role.",
                         "method" : "DELETE",
                         "name" : "delete_role",
@@ -35788,6 +46523,7 @@ var pveapi = [
                         }
                      },
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get role configuration.",
                         "method" : "GET",
                         "name" : "read_role",
@@ -35835,6 +46571,10 @@ var pveapi = [
                                  "optional" : 1,
                                  "type" : "boolean"
                               },
+                              "Pool.Audit" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
                               "Realm.Allocate" : {
                                  "optional" : 1,
                                  "type" : "boolean"
@@ -35843,6 +46583,14 @@ var pveapi = [
                                  "optional" : 1,
                                  "type" : "boolean"
                               },
+                              "SDN.Allocate" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "SDN.Audit" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
                               "Sys.Audit" : {
                                  "optional" : 1,
                                  "type" : "boolean"
@@ -35891,6 +46639,10 @@ var pveapi = [
                                  "optional" : 1,
                                  "type" : "boolean"
                               },
+                              "VM.Config.Cloudinit" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
                               "VM.Config.Disk" : {
                                  "optional" : 1,
                                  "type" : "boolean"
@@ -35940,6 +46692,7 @@ var pveapi = [
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Update an existing role.",
                         "method" : "PUT",
                         "name" : "update_role",
@@ -35987,6 +46740,7 @@ var pveapi = [
             ],
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Role index.",
                   "method" : "GET",
                   "name" : "index",
@@ -36026,6 +46780,7 @@ var pveapi = [
                   }
                },
                "POST" : {
+                  "allowtoken" : 1,
                   "description" : "Create new role.",
                   "method" : "POST",
                   "name" : "create_role",
@@ -36067,6 +46822,7 @@ var pveapi = [
          {
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Get Access Control List (ACLs).",
                   "method" : "GET",
                   "name" : "read_acl",
@@ -36089,78 +46845,893 @@ var pveapi = [
                               "default" : 1,
                               "description" : "Allow to propagate (inherit) permissions.",
                               "optional" : 1,
-                              "type" : "boolean"
+                              "type" : "boolean"
+                           },
+                           "roleid" : {
+                              "type" : "string"
+                           },
+                           "type" : {
+                              "enum" : [
+                                 "user",
+                                 "group",
+                                 "token"
+                              ],
+                              "type" : "string"
+                           },
+                           "ugid" : {
+                              "type" : "string"
+                           }
+                        },
+                        "type" : "object"
+                     },
+                     "type" : "array"
+                  }
+               },
+               "PUT" : {
+                  "allowtoken" : 1,
+                  "description" : "Update Access Control List (add or remove permissions).",
+                  "method" : "PUT",
+                  "name" : "update_acl",
+                  "parameters" : {
+                     "additionalProperties" : 0,
+                     "properties" : {
+                        "delete" : {
+                           "description" : "Remove permissions (instead of adding it).",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
+                        },
+                        "groups" : {
+                           "description" : "List of groups.",
+                           "format" : "pve-groupid-list",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "path" : {
+                           "description" : "Access control path",
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "propagate" : {
+                           "default" : 1,
+                           "description" : "Allow to propagate (inherit) permissions.",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
+                        },
+                        "roles" : {
+                           "description" : "List of roles.",
+                           "format" : "pve-roleid-list",
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "tokens" : {
+                           "description" : "List of API tokens.",
+                           "format" : "pve-tokenid-list",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "users" : {
+                           "description" : "List of users.",
+                           "format" : "pve-userid-list",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        }
+                     }
+                  },
+                  "permissions" : {
+                     "check" : [
+                        "perm-modify",
+                        "{path}"
+                     ]
+                  },
+                  "protected" : 1,
+                  "returns" : {
+                     "type" : "null"
+                  }
+               }
+            },
+            "leaf" : 1,
+            "path" : "/access/acl",
+            "text" : "acl"
+         },
+         {
+            "children" : [
+               {
+                  "children" : [
+                     {
+                        "info" : {
+                           "POST" : {
+                              "allowtoken" : 1,
+                              "description" : "Syncs users and/or groups from the configured LDAP to user.cfg. NOTE: Synced groups will have the name 'name-$realm', so make sure those groups do not exist to prevent overwriting.",
+                              "method" : "POST",
+                              "name" : "sync",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "dry-run" : {
+                                       "default" : 0,
+                                       "description" : "If set, does not write anything.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "enable-new" : {
+                                       "default" : "1",
+                                       "description" : "Enable newly synced users immediately.",
+                                       "optional" : "1",
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "full" : {
+                                       "description" : "DEPRECATED: use 'remove-vanished' instead. If set, uses the LDAP Directory as source of truth, deleting users or groups not returned from the sync and removing all locally modified properties of synced users. If not set, only syncs information which is present in the synced data, and does not delete or modify anything else.",
+                                       "optional" : "1",
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "purge" : {
+                                       "description" : "DEPRECATED: use 'remove-vanished' instead. Remove ACLs for users or groups which were removed from the config during a sync.",
+                                       "optional" : "1",
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "realm" : {
+                                       "description" : "Authentication domain ID",
+                                       "format" : "pve-realm",
+                                       "maxLength" : 32,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "remove-vanished" : {
+                                       "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync.",
+                                       "optional" : "1",
+                                       "pattern" : "(?:(?:acl|properties|entry);)*(?:acl|properties|entry)",
+                                       "type" : "string",
+                                       "typetext" : "[acl];[properties];[entry]"
+                                    },
+                                    "scope" : {
+                                       "description" : "Select what to sync.",
+                                       "enum" : [
+                                          "users",
+                                          "groups",
+                                          "both"
+                                       ],
+                                       "optional" : "1",
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "and",
+                                    [
+                                       "perm",
+                                       "/access/realm/{realm}",
+                                       [
+                                          "Realm.AllocateUser"
+                                       ]
+                                    ],
+                                    [
+                                       "perm",
+                                       "/access/groups",
+                                       [
+                                          "User.Modify"
+                                       ]
+                                    ]
+                                 ],
+                                 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and  'User.Modify' permissions to '/access/groups/'."
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "description" : "Worker Task-UPID",
+                                 "type" : "string"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/access/domains/{realm}/sync",
+                        "text" : "sync"
+                     }
+                  ],
+                  "info" : {
+                     "DELETE" : {
+                        "allowtoken" : 1,
+                        "description" : "Delete an authentication server.",
+                        "method" : "DELETE",
+                        "name" : "delete",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "realm" : {
+                                 "description" : "Authentication domain ID",
+                                 "format" : "pve-realm",
+                                 "maxLength" : 32,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/access/realm",
+                              [
+                                 "Realm.Allocate"
+                              ]
+                           ]
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "type" : "null"
+                        }
+                     },
+                     "GET" : {
+                        "allowtoken" : 1,
+                        "description" : "Get auth server configuration.",
+                        "method" : "GET",
+                        "name" : "read",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "realm" : {
+                                 "description" : "Authentication domain ID",
+                                 "format" : "pve-realm",
+                                 "maxLength" : 32,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/access/realm",
+                              [
+                                 "Realm.Allocate",
+                                 "Sys.Audit"
+                              ],
+                              "any",
+                              1
+                           ]
+                        },
+                        "returns" : {}
+                     },
+                     "PUT" : {
+                        "allowtoken" : 1,
+                        "description" : "Update authentication server settings.",
+                        "method" : "PUT",
+                        "name" : "update",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "acr-values" : {
+                                 "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "autocreate" : {
+                                 "default" : 0,
+                                 "description" : "Automatically create users if they do not exist.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "base_dn" : {
+                                 "description" : "LDAP base domain name",
+                                 "maxLength" : 256,
+                                 "optional" : 1,
+                                 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+                                 "type" : "string"
+                              },
+                              "bind_dn" : {
+                                 "description" : "LDAP bind domain name",
+                                 "maxLength" : 256,
+                                 "optional" : 1,
+                                 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+                                 "type" : "string"
+                              },
+                              "capath" : {
+                                 "default" : "/etc/ssl/certs",
+                                 "description" : "Path to the CA certificate store",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "case-sensitive" : {
+                                 "default" : 1,
+                                 "description" : "username is case-sensitive",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "cert" : {
+                                 "description" : "Path to the client certificate",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "certkey" : {
+                                 "description" : "Path to the client certificate key",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "client-id" : {
+                                 "description" : "OpenID Client ID",
+                                 "maxLength" : 256,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "client-key" : {
+                                 "description" : "OpenID Client Key",
+                                 "maxLength" : 256,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "comment" : {
+                                 "description" : "Description.",
+                                 "maxLength" : 4096,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "default" : {
+                                 "description" : "Use this as default realm",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "delete" : {
+                                 "description" : "A list of settings you want to delete.",
+                                 "format" : "pve-configid-list",
+                                 "maxLength" : 4096,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "digest" : {
+                                 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                 "maxLength" : 40,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "domain" : {
+                                 "description" : "AD domain name",
+                                 "maxLength" : 256,
+                                 "optional" : 1,
+                                 "pattern" : "\\S+",
+                                 "type" : "string"
+                              },
+                              "filter" : {
+                                 "description" : "LDAP filter for user sync.",
+                                 "maxLength" : 2048,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "group_classes" : {
+                                 "default" : "groupOfNames, group, univentionGroup, ipausergroup",
+                                 "description" : "The objectclasses for groups.",
+                                 "format" : "ldap-simple-attr-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "group_dn" : {
+                                 "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
+                                 "maxLength" : 256,
+                                 "optional" : 1,
+                                 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+                                 "type" : "string"
+                              },
+                              "group_filter" : {
+                                 "description" : "LDAP filter for group sync.",
+                                 "maxLength" : 2048,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "group_name_attr" : {
+                                 "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
+                                 "format" : "ldap-simple-attr",
+                                 "maxLength" : 256,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "issuer-url" : {
+                                 "description" : "OpenID Issuer Url",
+                                 "maxLength" : 256,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "mode" : {
+                                 "default" : "ldap",
+                                 "description" : "LDAP protocol mode.",
+                                 "enum" : [
+                                    "ldap",
+                                    "ldaps",
+                                    "ldap+starttls"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "password" : {
+                                 "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "port" : {
+                                 "description" : "Server port.",
+                                 "maximum" : 65535,
+                                 "minimum" : 1,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (1 - 65535)"
+                              },
+                              "prompt" : {
+                                 "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
+                                 "optional" : 1,
+                                 "pattern" : "(?:none|login|consent|select_account|\\S+)",
+                                 "type" : "string"
+                              },
+                              "realm" : {
+                                 "description" : "Authentication domain ID",
+                                 "format" : "pve-realm",
+                                 "maxLength" : 32,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "scopes" : {
+                                 "default" : "email profile",
+                                 "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "secure" : {
+                                 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "server1" : {
+                                 "description" : "Server IP address (or DNS name)",
+                                 "format" : "address",
+                                 "maxLength" : 256,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "server2" : {
+                                 "description" : "Fallback Server IP address (or DNS name)",
+                                 "format" : "address",
+                                 "maxLength" : 256,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "sslversion" : {
+                                 "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
+                                 "enum" : [
+                                    "tlsv1",
+                                    "tlsv1_1",
+                                    "tlsv1_2",
+                                    "tlsv1_3"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "sync-defaults-options" : {
+                                 "description" : "The default options for behavior of synchronizations.",
+                                 "format" : "realm-sync-options",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=[acl];[properties];[entry]] [,scope=<users|groups|both>]"
+                              },
+                              "sync_attributes" : {
+                                 "description" : "Comma separated list of key=value pairs for specifying which LDAP attributes map to which PVE user field. For example, to map the LDAP attribute 'mail' to PVEs 'email', write  'email=mail'. By default, each PVE user field is represented  by an LDAP attribute of the same name.",
+                                 "optional" : 1,
+                                 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+                                 "type" : "string"
+                              },
+                              "tfa" : {
+                                 "description" : "Use Two-factor authentication.",
+                                 "format" : "pve-tfa-config",
+                                 "maxLength" : 128,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
+                              },
+                              "user_attr" : {
+                                 "description" : "LDAP user attribute name",
+                                 "maxLength" : 256,
+                                 "optional" : 1,
+                                 "pattern" : "\\S{2,}",
+                                 "type" : "string"
+                              },
+                              "user_classes" : {
+                                 "default" : "inetorgperson, posixaccount, person, user",
+                                 "description" : "The objectclasses for users.",
+                                 "format" : "ldap-simple-attr-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "verify" : {
+                                 "default" : 0,
+                                 "description" : "Verify the server's SSL certificate",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              }
+                           },
+                           "type" : "object"
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/access/realm",
+                              [
+                                 "Realm.Allocate"
+                              ]
+                           ]
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "type" : "null"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/access/domains/{realm}",
+                  "text" : "{realm}"
+               }
+            ],
+            "info" : {
+               "GET" : {
+                  "allowtoken" : 1,
+                  "description" : "Authentication domain index.",
+                  "method" : "GET",
+                  "name" : "index",
+                  "parameters" : {
+                     "additionalProperties" : 0
+                  },
+                  "permissions" : {
+                     "description" : "Anyone can access that, because we need that list for the login box (before the user is authenticated).",
+                     "user" : "world"
+                  },
+                  "returns" : {
+                     "items" : {
+                        "properties" : {
+                           "comment" : {
+                              "description" : "A comment. The GUI use this text when you select a domain (Realm) on the login window.",
+                              "optional" : 1,
+                              "type" : "string"
                            },
-                           "roleid" : {
+                           "realm" : {
                               "type" : "string"
                            },
-                           "type" : {
+                           "tfa" : {
+                              "description" : "Two-factor authentication provider.",
                               "enum" : [
-                                 "user",
-                                 "group"
+                                 "yubico",
+                                 "oath"
                               ],
+                              "optional" : 1,
                               "type" : "string"
                            },
-                           "ugid" : {
+                           "type" : {
                               "type" : "string"
                            }
                         },
                         "type" : "object"
                      },
+                     "links" : [
+                        {
+                           "href" : "{realm}",
+                           "rel" : "child"
+                        }
+                     ],
                      "type" : "array"
                   }
                },
-               "PUT" : {
-                  "description" : "Update Access Control List (add or remove permissions).",
-                  "method" : "PUT",
-                  "name" : "update_acl",
+               "POST" : {
+                  "allowtoken" : 1,
+                  "description" : "Add an authentication server.",
+                  "method" : "POST",
+                  "name" : "create",
                   "parameters" : {
                      "additionalProperties" : 0,
                      "properties" : {
-                        "delete" : {
-                           "description" : "Remove permissions (instead of adding it).",
+                        "acr-values" : {
+                           "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "autocreate" : {
+                           "default" : 0,
+                           "description" : "Automatically create users if they do not exist.",
                            "optional" : 1,
                            "type" : "boolean",
                            "typetext" : "<boolean>"
                         },
-                        "groups" : {
-                           "description" : "List of groups.",
-                           "format" : "pve-groupid-list",
+                        "base_dn" : {
+                           "description" : "LDAP base domain name",
+                           "maxLength" : 256,
+                           "optional" : 1,
+                           "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+                           "type" : "string"
+                        },
+                        "bind_dn" : {
+                           "description" : "LDAP bind domain name",
+                           "maxLength" : 256,
+                           "optional" : 1,
+                           "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+                           "type" : "string"
+                        },
+                        "capath" : {
+                           "default" : "/etc/ssl/certs",
+                           "description" : "Path to the CA certificate store",
                            "optional" : 1,
                            "type" : "string",
                            "typetext" : "<string>"
                         },
-                        "path" : {
-                           "description" : "Access control path",
+                        "case-sensitive" : {
+                           "default" : 1,
+                           "description" : "username is case-sensitive",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
+                        },
+                        "cert" : {
+                           "description" : "Path to the client certificate",
+                           "optional" : 1,
                            "type" : "string",
                            "typetext" : "<string>"
                         },
-                        "propagate" : {
-                           "default" : 1,
-                           "description" : "Allow to propagate (inherit) permissions.",
+                        "certkey" : {
+                           "description" : "Path to the client certificate key",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "client-id" : {
+                           "description" : "OpenID Client ID",
+                           "maxLength" : 256,
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "client-key" : {
+                           "description" : "OpenID Client Key",
+                           "maxLength" : 256,
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "comment" : {
+                           "description" : "Description.",
+                           "maxLength" : 4096,
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "default" : {
+                           "description" : "Use this as default realm",
                            "optional" : 1,
                            "type" : "boolean",
                            "typetext" : "<boolean>"
                         },
-                        "roles" : {
-                           "description" : "List of roles.",
-                           "format" : "pve-roleid-list",
+                        "domain" : {
+                           "description" : "AD domain name",
+                           "maxLength" : 256,
+                           "optional" : 1,
+                           "pattern" : "\\S+",
+                           "type" : "string"
+                        },
+                        "filter" : {
+                           "description" : "LDAP filter for user sync.",
+                           "maxLength" : 2048,
+                           "optional" : 1,
                            "type" : "string",
                            "typetext" : "<string>"
                         },
-                        "users" : {
-                           "description" : "List of users.",
-                           "format" : "pve-userid-list",
+                        "group_classes" : {
+                           "default" : "groupOfNames, group, univentionGroup, ipausergroup",
+                           "description" : "The objectclasses for groups.",
+                           "format" : "ldap-simple-attr-list",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "group_dn" : {
+                           "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
+                           "maxLength" : 256,
+                           "optional" : 1,
+                           "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+                           "type" : "string"
+                        },
+                        "group_filter" : {
+                           "description" : "LDAP filter for group sync.",
+                           "maxLength" : 2048,
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "group_name_attr" : {
+                           "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
+                           "format" : "ldap-simple-attr",
+                           "maxLength" : 256,
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "issuer-url" : {
+                           "description" : "OpenID Issuer Url",
+                           "maxLength" : 256,
                            "optional" : 1,
                            "type" : "string",
                            "typetext" : "<string>"
+                        },
+                        "mode" : {
+                           "default" : "ldap",
+                           "description" : "LDAP protocol mode.",
+                           "enum" : [
+                              "ldap",
+                              "ldaps",
+                              "ldap+starttls"
+                           ],
+                           "optional" : 1,
+                           "type" : "string"
+                        },
+                        "password" : {
+                           "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "port" : {
+                           "description" : "Server port.",
+                           "maximum" : 65535,
+                           "minimum" : 1,
+                           "optional" : 1,
+                           "type" : "integer",
+                           "typetext" : "<integer> (1 - 65535)"
+                        },
+                        "prompt" : {
+                           "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
+                           "optional" : 1,
+                           "pattern" : "(?:none|login|consent|select_account|\\S+)",
+                           "type" : "string"
+                        },
+                        "realm" : {
+                           "description" : "Authentication domain ID",
+                           "format" : "pve-realm",
+                           "maxLength" : 32,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "scopes" : {
+                           "default" : "email profile",
+                           "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "secure" : {
+                           "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
+                        },
+                        "server1" : {
+                           "description" : "Server IP address (or DNS name)",
+                           "format" : "address",
+                           "maxLength" : 256,
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "server2" : {
+                           "description" : "Fallback Server IP address (or DNS name)",
+                           "format" : "address",
+                           "maxLength" : 256,
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "sslversion" : {
+                           "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
+                           "enum" : [
+                              "tlsv1",
+                              "tlsv1_1",
+                              "tlsv1_2",
+                              "tlsv1_3"
+                           ],
+                           "optional" : 1,
+                           "type" : "string"
+                        },
+                        "sync-defaults-options" : {
+                           "description" : "The default options for behavior of synchronizations.",
+                           "format" : "realm-sync-options",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=[acl];[properties];[entry]] [,scope=<users|groups|both>]"
+                        },
+                        "sync_attributes" : {
+                           "description" : "Comma separated list of key=value pairs for specifying which LDAP attributes map to which PVE user field. For example, to map the LDAP attribute 'mail' to PVEs 'email', write  'email=mail'. By default, each PVE user field is represented  by an LDAP attribute of the same name.",
+                           "optional" : 1,
+                           "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
+                           "type" : "string"
+                        },
+                        "tfa" : {
+                           "description" : "Use Two-factor authentication.",
+                           "format" : "pve-tfa-config",
+                           "maxLength" : 128,
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
+                        },
+                        "type" : {
+                           "description" : "Realm type.",
+                           "enum" : [
+                              "ad",
+                              "ldap",
+                              "openid",
+                              "pam",
+                              "pve"
+                           ],
+                           "type" : "string"
+                        },
+                        "user_attr" : {
+                           "description" : "LDAP user attribute name",
+                           "maxLength" : 256,
+                           "optional" : 1,
+                           "pattern" : "\\S{2,}",
+                           "type" : "string"
+                        },
+                        "user_classes" : {
+                           "default" : "inetorgperson, posixaccount, person, user",
+                           "description" : "The objectclasses for users.",
+                           "format" : "ldap-simple-attr-list",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "username-claim" : {
+                           "description" : "OpenID claim used to generate the unique username.",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "verify" : {
+                           "default" : 0,
+                           "description" : "Verify the server's SSL certificate",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
                         }
-                     }
+                     },
+                     "type" : "object"
                   },
                   "permissions" : {
                      "check" : [
-                        "perm-modify",
-                        "{path}"
+                        "perm",
+                        "/access/realm",
+                        [
+                           "Realm.Allocate"
+                        ]
                      ]
                   },
                   "protected" : 1,
@@ -36169,18 +47740,19 @@ var pveapi = [
                   }
                }
             },
-            "leaf" : 1,
-            "path" : "/access/acl",
-            "text" : "acl"
+            "leaf" : 0,
+            "path" : "/access/domains",
+            "text" : "domains"
          },
          {
             "children" : [
                {
                   "info" : {
-                     "DELETE" : {
-                        "description" : "Delete an authentication server.",
-                        "method" : "DELETE",
-                        "name" : "delete",
+                     "POST" : {
+                        "allowtoken" : 1,
+                        "description" : "Get the OpenId Authorization Url for the specified realm.",
+                        "method" : "POST",
+                        "name" : "auth_url",
                         "parameters" : {
                            "additionalProperties" : 0,
                            "properties" : {
@@ -36190,34 +47762,338 @@ var pveapi = [
                                  "maxLength" : 32,
                                  "type" : "string",
                                  "typetext" : "<string>"
+                              },
+                              "redirect-url" : {
+                                 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
+                                 "maxLength" : 255,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
                         "permissions" : {
-                           "check" : [
-                              "perm",
-                              "/access/realm",
-                              [
-                                 "Realm.Allocate"
-                              ]
-                           ]
+                           "user" : "world"
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "description" : "Redirection URL.",
+                           "type" : "string"
+                        }
+                     }
+                  },
+                  "leaf" : 1,
+                  "path" : "/access/openid/auth-url",
+                  "text" : "auth-url"
+               },
+               {
+                  "info" : {
+                     "POST" : {
+                        "allowtoken" : 1,
+                        "description" : " Verify OpenID authorization code and create a ticket.",
+                        "method" : "POST",
+                        "name" : "login",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "code" : {
+                                 "description" : "OpenId authorization code.",
+                                 "maxLength" : 4096,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "redirect-url" : {
+                                 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
+                                 "maxLength" : 255,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "state" : {
+                                 "description" : "OpenId state.",
+                                 "maxLength" : 1024,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "user" : "world"
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "properties" : {
+                              "CSRFPreventionToken" : {
+                                 "type" : "string"
+                              },
+                              "cap" : {
+                                 "type" : "object"
+                              },
+                              "clustername" : {
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "ticket" : {
+                                 "type" : "string"
+                              },
+                              "username" : {
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "leaf" : 1,
+                  "path" : "/access/openid/login",
+                  "text" : "login"
+               }
+            ],
+            "info" : {
+               "GET" : {
+                  "allowtoken" : 1,
+                  "description" : "Directory index.",
+                  "method" : "GET",
+                  "name" : "index",
+                  "parameters" : {
+                     "additionalProperties" : 0
+                  },
+                  "permissions" : {
+                     "user" : "all"
+                  },
+                  "returns" : {
+                     "items" : {
+                        "properties" : {
+                           "subdir" : {
+                              "type" : "string"
+                           }
+                        },
+                        "type" : "object"
+                     },
+                     "links" : [
+                        {
+                           "href" : "{subdir}",
+                           "rel" : "child"
+                        }
+                     ],
+                     "type" : "array"
+                  }
+               }
+            },
+            "leaf" : 0,
+            "path" : "/access/openid",
+            "text" : "openid"
+         },
+         {
+            "children" : [
+               {
+                  "children" : [
+                     {
+                        "info" : {
+                           "DELETE" : {
+                              "allowtoken" : 0,
+                              "description" : "Delete a TFA entry by ID.",
+                              "method" : "DELETE",
+                              "name" : "delete_tfa",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "id" : {
+                                       "description" : "A TFA entry id.",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "password" : {
+                                       "description" : "The current password.",
+                                       "maxLength" : 64,
+                                       "minLength" : 5,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "userid" : {
+                                       "description" : "User ID",
+                                       "format" : "pve-userid",
+                                       "maxLength" : 64,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "or",
+                                    [
+                                       "userid-param",
+                                       "self"
+                                    ],
+                                    [
+                                       "userid-group",
+                                       [
+                                          "User.Modify"
+                                       ]
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           },
+                           "GET" : {
+                              "allowtoken" : 0,
+                              "description" : "Fetch a requested TFA entry if present.",
+                              "method" : "GET",
+                              "name" : "get_tfa_entry",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "id" : {
+                                       "description" : "A TFA entry id.",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "userid" : {
+                                       "description" : "User ID",
+                                       "format" : "pve-userid",
+                                       "maxLength" : 64,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "or",
+                                    [
+                                       "userid-param",
+                                       "self"
+                                    ],
+                                    [
+                                       "userid-group",
+                                       [
+                                          "User.Modify",
+                                          "Sys.Audit"
+                                       ]
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "description" : "TFA Entry.",
+                                 "properties" : {
+                                    "created" : {
+                                       "description" : "Creation time of this entry as unix epoch.",
+                                       "type" : "integer"
+                                    },
+                                    "description" : {
+                                       "description" : "User chosen description for this entry.",
+                                       "type" : "string"
+                                    },
+                                    "enable" : {
+                                       "default" : 1,
+                                       "description" : "Whether this TFA entry is currently enabled.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
+                                    "id" : {
+                                       "description" : "The id used to reference this entry.",
+                                       "type" : "string"
+                                    },
+                                    "type" : {
+                                       "description" : "TFA Entry Type.",
+                                       "enum" : [
+                                          "totp",
+                                          "u2f",
+                                          "webauthn",
+                                          "recovery",
+                                          "yubico"
+                                       ],
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "type" : "object"
+                              }
+                           },
+                           "PUT" : {
+                              "allowtoken" : 0,
+                              "description" : "Add a TFA entry for a user.",
+                              "method" : "PUT",
+                              "name" : "update_tfa_entry",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "description" : {
+                                       "description" : "A description to distinguish multiple entries from one another",
+                                       "maxLength" : 255,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "enable" : {
+                                       "description" : "Whether the entry should be enabled for login.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "id" : {
+                                       "description" : "A TFA entry id.",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "password" : {
+                                       "description" : "The current password.",
+                                       "maxLength" : 64,
+                                       "minLength" : 5,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "userid" : {
+                                       "description" : "User ID",
+                                       "format" : "pve-userid",
+                                       "maxLength" : 64,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "or",
+                                    [
+                                       "userid-param",
+                                       "self"
+                                    ],
+                                    [
+                                       "userid-group",
+                                       [
+                                          "User.Modify"
+                                       ]
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           }
                         },
-                        "protected" : 1,
-                        "returns" : {
-                           "type" : "null"
-                        }
-                     },
+                        "leaf" : 1,
+                        "path" : "/access/tfa/{userid}/{id}",
+                        "text" : "{id}"
+                     }
+                  ],
+                  "info" : {
                      "GET" : {
-                        "description" : "Get auth server configuration.",
+                        "allowtoken" : 0,
+                        "description" : "List TFA configurations of users.",
                         "method" : "GET",
-                        "name" : "read",
+                        "name" : "list_user_tfa",
                         "parameters" : {
                            "additionalProperties" : 0,
                            "properties" : {
-                              "realm" : {
-                                 "description" : "Authentication domain ID",
-                                 "format" : "pve-realm",
-                                 "maxLength" : 32,
+                              "userid" : {
+                                 "description" : "User ID",
+                                 "format" : "pve-userid",
+                                 "maxLength" : 64,
                                  "type" : "string",
                                  "typetext" : "<string>"
                               }
@@ -36225,373 +48101,271 @@ var pveapi = [
                         },
                         "permissions" : {
                            "check" : [
-                              "perm",
-                              "/access/realm",
+                              "or",
                               [
-                                 "Realm.Allocate",
-                                 "Sys.Audit"
+                                 "userid-param",
+                                 "self"
                               ],
-                              "any",
-                              1
+                              [
+                                 "userid-group",
+                                 [
+                                    "User.Modify",
+                                    "Sys.Audit"
+                                 ]
+                              ]
                            ]
                         },
-                        "returns" : {}
+                        "protected" : 1,
+                        "returns" : {
+                           "description" : "A list of the user's TFA entries.",
+                           "items" : {
+                              "description" : "TFA Entry.",
+                              "properties" : {
+                                 "created" : {
+                                    "description" : "Creation time of this entry as unix epoch.",
+                                    "type" : "integer"
+                                 },
+                                 "description" : {
+                                    "description" : "User chosen description for this entry.",
+                                    "type" : "string"
+                                 },
+                                 "enable" : {
+                                    "default" : 1,
+                                    "description" : "Whether this TFA entry is currently enabled.",
+                                    "optional" : 1,
+                                    "type" : "boolean"
+                                 },
+                                 "id" : {
+                                    "description" : "The id used to reference this entry.",
+                                    "type" : "string"
+                                 },
+                                 "type" : {
+                                    "description" : "TFA Entry Type.",
+                                    "enum" : [
+                                       "totp",
+                                       "u2f",
+                                       "webauthn",
+                                       "recovery",
+                                       "yubico"
+                                    ],
+                                    "type" : "string"
+                                 }
+                              },
+                              "type" : "object"
+                           },
+                           "type" : "array"
+                        }
                      },
-                     "PUT" : {
-                        "description" : "Update authentication server settings.",
-                        "method" : "PUT",
-                        "name" : "update",
+                     "POST" : {
+                        "allowtoken" : 0,
+                        "description" : "Add a TFA entry for a user.",
+                        "method" : "POST",
+                        "name" : "add_tfa_entry",
                         "parameters" : {
                            "additionalProperties" : 0,
                            "properties" : {
-                              "base_dn" : {
-                                 "description" : "LDAP base domain name",
-                                 "maxLength" : 256,
-                                 "optional" : 1,
-                                 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
-                                 "type" : "string"
-                              },
-                              "bind_dn" : {
-                                 "description" : "LDAP bind domain name",
-                                 "maxLength" : 256,
-                                 "optional" : 1,
-                                 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
-                                 "type" : "string"
-                              },
-                              "capath" : {
-                                 "default" : "/etc/ssl/certs",
-                                 "description" : "Path to the CA certificate store",
-                                 "optional" : 1,
-                                 "type" : "string",
-                                 "typetext" : "<string>"
-                              },
-                              "cert" : {
-                                 "description" : "Path to the client certificate",
-                                 "optional" : 1,
-                                 "type" : "string",
-                                 "typetext" : "<string>"
-                              },
-                              "certkey" : {
-                                 "description" : "Path to the client certificate key",
+                              "challenge" : {
+                                 "description" : "When responding to a u2f challenge: the original challenge string",
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
-                              "comment" : {
-                                 "description" : "Description.",
-                                 "maxLength" : 4096,
+                              "description" : {
+                                 "description" : "A description to distinguish multiple entries from one another",
+                                 "maxLength" : 255,
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
-                              "default" : {
-                                 "description" : "Use this as default realm",
-                                 "optional" : 1,
-                                 "type" : "boolean",
-                                 "typetext" : "<boolean>"
-                              },
-                              "delete" : {
-                                 "description" : "A list of settings you want to delete.",
-                                 "format" : "pve-configid-list",
-                                 "maxLength" : 4096,
+                              "password" : {
+                                 "description" : "The current password.",
+                                 "maxLength" : 64,
+                                 "minLength" : 5,
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
-                              "digest" : {
-                                 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                                 "maxLength" : 40,
+                              "totp" : {
+                                 "description" : "A totp URI.",
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
-                              "domain" : {
-                                 "description" : "AD domain name",
-                                 "maxLength" : 256,
-                                 "optional" : 1,
-                                 "pattern" : "\\S+",
+                              "type" : {
+                                 "description" : "TFA Entry Type.",
+                                 "enum" : [
+                                    "totp",
+                                    "u2f",
+                                    "webauthn",
+                                    "recovery",
+                                    "yubico"
+                                 ],
                                  "type" : "string"
                               },
-                              "port" : {
-                                 "description" : "Server port.",
-                                 "maximum" : 65535,
-                                 "minimum" : 1,
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "<integer> (1 - 65535)"
-                              },
-                              "realm" : {
-                                 "description" : "Authentication domain ID",
-                                 "format" : "pve-realm",
-                                 "maxLength" : 32,
-                                 "type" : "string",
-                                 "typetext" : "<string>"
-                              },
-                              "secure" : {
-                                 "description" : "Use secure LDAPS protocol.",
-                                 "optional" : 1,
-                                 "type" : "boolean",
-                                 "typetext" : "<boolean>"
-                              },
-                              "server1" : {
-                                 "description" : "Server IP address (or DNS name)",
-                                 "format" : "address",
-                                 "maxLength" : 256,
-                                 "optional" : 1,
+                              "userid" : {
+                                 "description" : "User ID",
+                                 "format" : "pve-userid",
+                                 "maxLength" : 64,
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
-                              "server2" : {
-                                 "description" : "Fallback Server IP address (or DNS name)",
-                                 "format" : "address",
-                                 "maxLength" : 256,
+                              "value" : {
+                                 "description" : "The current value for the provided totp URI, or a Webauthn/U2F challenge response",
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
-                              },
-                              "tfa" : {
-                                 "description" : "Use Two-factor authentication.",
-                                 "format" : "pve-tfa-config",
-                                 "maxLength" : 128,
-                                 "optional" : 1,
-                                 "type" : "string",
-                                 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
-                              },
-                              "user_attr" : {
-                                 "description" : "LDAP user attribute name",
-                                 "maxLength" : 256,
-                                 "optional" : 1,
-                                 "pattern" : "\\S{2,}",
-                                 "type" : "string"
-                              },
-                              "verify" : {
-                                 "default" : 0,
-                                 "description" : "Verify the server's SSL certificate",
-                                 "optional" : 1,
-                                 "type" : "boolean",
-                                 "typetext" : "<boolean>"
                               }
-                           },
-                           "type" : "object"
+                           }
                         },
                         "permissions" : {
                            "check" : [
-                              "perm",
-                              "/access/realm",
+                              "or",
                               [
-                                 "Realm.Allocate"
+                                 "userid-param",
+                                 "self"
+                              ],
+                              [
+                                 "userid-group",
+                                 [
+                                    "User.Modify"
+                                 ]
                               ]
                            ]
                         },
                         "protected" : 1,
                         "returns" : {
-                           "type" : "null"
+                           "properties" : {
+                              "challenge" : {
+                                 "description" : "When adding u2f entries, this contains a challenge the user must respond to in order to finish the registration.",
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "id" : {
+                                 "description" : "The id of a newly added TFA entry.",
+                                 "type" : "string"
+                              },
+                              "recovery" : {
+                                 "description" : "When adding recovery codes, this contains the list of codes to be displayed to the user",
+                                 "items" : {
+                                    "description" : "A recovery entry.",
+                                    "type" : "string"
+                                 },
+                                 "optional" : 1,
+                                 "type" : "array"
+                              }
+                           },
+                           "type" : "object"
                         }
                      }
                   },
-                  "leaf" : 1,
-                  "path" : "/access/domains/{realm}",
-                  "text" : "{realm}"
+                  "leaf" : 0,
+                  "path" : "/access/tfa/{userid}",
+                  "text" : "{userid}"
                }
             ],
             "info" : {
                "GET" : {
-                  "description" : "Authentication domain index.",
+                  "allowtoken" : 0,
+                  "description" : "List TFA configurations of users.",
                   "method" : "GET",
-                  "name" : "index",
+                  "name" : "list_tfa",
                   "parameters" : {
                      "additionalProperties" : 0
                   },
                   "permissions" : {
-                     "description" : "Anyone can access that, because we need that list for the login box (before the user is authenticated).",
-                     "user" : "world"
+                     "description" : "Returns all or just the logged-in user, depending on privileges.",
+                     "user" : "all"
                   },
+                  "protected" : 1,
                   "returns" : {
+                     "description" : "The list tuples of user and TFA entries.",
                      "items" : {
                         "properties" : {
-                           "comment" : {
-                              "description" : "A comment. The GUI use this text when you select a domain (Realm) on the login window.",
-                              "optional" : 1,
-                              "type" : "string"
-                           },
-                           "realm" : {
-                              "type" : "string"
+                           "entries" : {
+                              "items" : {
+                                 "description" : "TFA Entry.",
+                                 "properties" : {
+                                    "created" : {
+                                       "description" : "Creation time of this entry as unix epoch.",
+                                       "type" : "integer"
+                                    },
+                                    "description" : {
+                                       "description" : "User chosen description for this entry.",
+                                       "type" : "string"
+                                    },
+                                    "enable" : {
+                                       "default" : 1,
+                                       "description" : "Whether this TFA entry is currently enabled.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
+                                    "id" : {
+                                       "description" : "The id used to reference this entry.",
+                                       "type" : "string"
+                                    },
+                                    "type" : {
+                                       "description" : "TFA Entry Type.",
+                                       "enum" : [
+                                          "totp",
+                                          "u2f",
+                                          "webauthn",
+                                          "recovery",
+                                          "yubico"
+                                       ],
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "type" : "object"
+                              },
+                              "type" : "array"
                            },
-                           "tfa" : {
-                              "description" : "Two-factor authentication provider.",
-                              "enum" : [
-                                 "yubico",
-                                 "oath"
-                              ],
-                              "optional" : 1,
+                           "userid" : {
+                              "description" : "User this entry belongs to.",
                               "type" : "string"
                            }
                         },
                         "type" : "object"
                      },
-                     "links" : [
-                        {
-                           "href" : "{realm}",
-                           "rel" : "child"
-                        }
-                     ],
                      "type" : "array"
                   }
                },
                "POST" : {
-                  "description" : "Add an authentication server.",
+                  "allowtoken" : 0,
+                  "description" : "Finish a u2f challenge.",
                   "method" : "POST",
-                  "name" : "create",
+                  "name" : "verify_tfa",
                   "parameters" : {
                      "additionalProperties" : 0,
                      "properties" : {
-                        "base_dn" : {
-                           "description" : "LDAP base domain name",
-                           "maxLength" : 256,
-                           "optional" : 1,
-                           "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
-                           "type" : "string"
-                        },
-                        "bind_dn" : {
-                           "description" : "LDAP bind domain name",
-                           "maxLength" : 256,
-                           "optional" : 1,
-                           "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
-                           "type" : "string"
-                        },
-                        "capath" : {
-                           "default" : "/etc/ssl/certs",
-                           "description" : "Path to the CA certificate store",
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "cert" : {
-                           "description" : "Path to the client certificate",
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "certkey" : {
-                           "description" : "Path to the client certificate key",
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "comment" : {
-                           "description" : "Description.",
-                           "maxLength" : 4096,
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "default" : {
-                           "description" : "Use this as default realm",
-                           "optional" : 1,
-                           "type" : "boolean",
-                           "typetext" : "<boolean>"
-                        },
-                        "domain" : {
-                           "description" : "AD domain name",
-                           "maxLength" : 256,
-                           "optional" : 1,
-                           "pattern" : "\\S+",
-                           "type" : "string"
-                        },
-                        "port" : {
-                           "description" : "Server port.",
-                           "maximum" : 65535,
-                           "minimum" : 1,
-                           "optional" : 1,
-                           "type" : "integer",
-                           "typetext" : "<integer> (1 - 65535)"
-                        },
-                        "realm" : {
-                           "description" : "Authentication domain ID",
-                           "format" : "pve-realm",
-                           "maxLength" : 32,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "secure" : {
-                           "description" : "Use secure LDAPS protocol.",
-                           "optional" : 1,
-                           "type" : "boolean",
-                           "typetext" : "<boolean>"
-                        },
-                        "server1" : {
-                           "description" : "Server IP address (or DNS name)",
-                           "format" : "address",
-                           "maxLength" : 256,
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "server2" : {
-                           "description" : "Fallback Server IP address (or DNS name)",
-                           "format" : "address",
-                           "maxLength" : 256,
-                           "optional" : 1,
+                        "response" : {
+                           "description" : "The response to the current authentication challenge.",
                            "type" : "string",
                            "typetext" : "<string>"
-                        },
-                        "tfa" : {
-                           "description" : "Use Two-factor authentication.",
-                           "format" : "pve-tfa-config",
-                           "maxLength" : 128,
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
-                        },
-                        "type" : {
-                           "description" : "Realm type.",
-                           "enum" : [
-                              "ad",
-                              "ldap",
-                              "pam",
-                              "pve"
-                           ],
-                           "type" : "string"
-                        },
-                        "user_attr" : {
-                           "description" : "LDAP user attribute name",
-                           "maxLength" : 256,
-                           "optional" : 1,
-                           "pattern" : "\\S{2,}",
-                           "type" : "string"
-                        },
-                        "verify" : {
-                           "default" : 0,
-                           "description" : "Verify the server's SSL certificate",
-                           "optional" : 1,
-                           "type" : "boolean",
-                           "typetext" : "<boolean>"
                         }
-                     },
-                     "type" : "object"
+                     }
                   },
                   "permissions" : {
-                     "check" : [
-                        "perm",
-                        "/access/realm",
-                        [
-                           "Realm.Allocate"
-                        ]
-                     ]
+                     "user" : "all"
                   },
                   "protected" : 1,
                   "returns" : {
-                     "type" : "null"
+                     "properties" : {
+                        "ticket" : {
+                           "type" : "string"
+                        }
+                     },
+                     "type" : "object"
                   }
                }
             },
             "leaf" : 0,
-            "path" : "/access/domains",
-            "text" : "domains"
+            "path" : "/access/tfa",
+            "text" : "tfa"
          },
          {
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Dummy. Useful for formatters which want to provide a login page.",
                   "method" : "GET",
                   "name" : "get_ticket",
@@ -36606,12 +48380,20 @@ var pveapi = [
                   }
                },
                "POST" : {
+                  "allowtoken" : 0,
                   "description" : "Create or verify authentication ticket.",
                   "method" : "POST",
                   "name" : "create_ticket",
                   "parameters" : {
                      "additionalProperties" : 0,
                      "properties" : {
+                        "new-format" : {
+                           "default" : 0,
+                           "description" : "With webauthn the format of half-authenticated tickts changed. New clients should pass 1 here and not worry about the old format. The old format is deprecated and will be retired with PVE-8.0",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
+                        },
                         "otp" : {
                            "description" : "One-time password for Two-factor authentication.",
                            "optional" : 1,
@@ -36648,6 +48430,12 @@ var pveapi = [
                            "type" : "string",
                            "typetext" : "<string>"
                         },
+                        "tfa-challenge" : {
+                           "description" : "The signed TFA challenge string the user wants to respond to.",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
                         "username" : {
                            "description" : "User name",
                            "maxLength" : 64,
@@ -36690,6 +48478,7 @@ var pveapi = [
          {
             "info" : {
                "PUT" : {
+                  "allowtoken" : 0,
                   "description" : "Change user password.",
                   "method" : "PUT",
                   "name" : "change_password",
@@ -36747,122 +48536,46 @@ var pveapi = [
          },
          {
             "info" : {
-               "POST" : {
-                  "description" : "Finish a u2f challenge.",
-                  "method" : "POST",
-                  "name" : "verify_tfa",
-                  "parameters" : {
-                     "additionalProperties" : 0,
-                     "properties" : {
-                        "response" : {
-                           "description" : "The response to the current authentication challenge.",
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        }
-                     }
-                  },
-                  "permissions" : {
-                     "user" : "all"
-                  },
-                  "protected" : 1,
-                  "returns" : {
-                     "properties" : {
-                        "ticket" : {
-                           "type" : "string"
-                        }
-                     },
-                     "type" : "object"
-                  }
-               },
-               "PUT" : {
-                  "description" : "Change user u2f authentication.",
-                  "method" : "PUT",
-                  "name" : "change_tfa",
+               "GET" : {
+                  "allowtoken" : 1,
+                  "description" : "Retrieve effective permissions of given user/token.",
+                  "method" : "GET",
+                  "name" : "permissions",
                   "parameters" : {
                      "additionalProperties" : 0,
                      "properties" : {
-                        "action" : {
-                           "description" : "The action to perform",
-                           "enum" : [
-                              "delete",
-                              "new",
-                              "confirm"
-                           ],
-                           "type" : "string"
-                        },
-                        "config" : {
-                           "description" : "A TFA configuration. This must currently be of type TOTP of not set at all.",
-                           "format" : "pve-tfa-config",
-                           "maxLength" : 128,
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
-                        },
-                        "key" : {
-                           "description" : "When adding TOTP, the shared secret value.",
-                           "optional" : 1,
-                           "pattern" : "(?^:[A-Z2-7=]{16}|[A-Fa-f0-9]{40})",
-                           "type" : "string"
-                        },
-                        "password" : {
-                           "description" : "The current password.",
-                           "maxLength" : 64,
-                           "minLength" : 5,
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "response" : {
-                           "description" : "Either the the response to the current u2f registration challenge, or, when adding TOTP, the currently valid TOTP value.",
+                        "path" : {
+                           "description" : "Only dump this specific path, not the whole tree.",
                            "optional" : 1,
                            "type" : "string",
                            "typetext" : "<string>"
                         },
                         "userid" : {
-                           "description" : "User ID",
-                           "format" : "pve-userid",
-                           "maxLength" : 64,
-                           "type" : "string",
-                           "typetext" : "<string>"
+                           "description" : "User ID or full API token ID",
+                           "optional" : 1,
+                           "pattern" : "(?^:^(?^:[^\\s:/]+)\\@(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)(?:!(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+))?$)",
+                           "type" : "string"
                         }
                      }
                   },
                   "permissions" : {
-                     "check" : [
-                        "or",
-                        [
-                           "userid-param",
-                           "self"
-                        ],
-                        [
-                           "and",
-                           [
-                              "userid-param",
-                              "Realm.AllocateUser"
-                           ],
-                           [
-                              "userid-group",
-                              [
-                                 "User.Modify"
-                              ]
-                           ]
-                        ]
-                     ],
-                     "description" : "A user can change their own u2f or totp token."
+                     "description" : "Each user/token is allowed to dump their own permissions. A user can dump the permissions of another user if they have 'Sys.Audit' permission on /access.",
+                     "user" : "all"
                   },
-                  "protected" : 1,
                   "returns" : {
+                     "description" : "Map of \"path\" => (Map of \"privilege\" => \"propagate boolean\").",
                      "type" : "object"
                   }
                }
             },
             "leaf" : 1,
-            "path" : "/access/tfa",
-            "text" : "tfa"
+            "path" : "/access/permissions",
+            "text" : "permissions"
          }
       ],
       "info" : {
          "GET" : {
+            "allowtoken" : 1,
             "description" : "Directory index.",
             "method" : "GET",
             "name" : "index",
@@ -36900,6 +48613,7 @@ var pveapi = [
          {
             "info" : {
                "DELETE" : {
+                  "allowtoken" : 1,
                   "description" : "Delete pool.",
                   "method" : "DELETE",
                   "name" : "delete_pool",
@@ -36929,6 +48643,7 @@ var pveapi = [
                   }
                },
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Get pool configuration.",
                   "method" : "GET",
                   "name" : "read_pool",
@@ -36939,6 +48654,15 @@ var pveapi = [
                            "format" : "pve-poolid",
                            "type" : "string",
                            "typetext" : "<string>"
+                        },
+                        "type" : {
+                           "enum" : [
+                              "qemu",
+                              "lxc",
+                              "storage"
+                           ],
+                           "optional" : 1,
+                           "type" : "string"
                         }
                      }
                   },
@@ -36947,7 +48671,7 @@ var pveapi = [
                         "perm",
                         "/pool/{poolid}",
                         [
-                           "Pool.Allocate"
+                           "Pool.Audit"
                         ]
                      ]
                   },
@@ -36995,6 +48719,7 @@ var pveapi = [
                   }
                },
                "PUT" : {
+                  "allowtoken" : 1,
                   "description" : "Update pool data.",
                   "method" : "PUT",
                   "name" : "update_pool",
@@ -37056,6 +48781,7 @@ var pveapi = [
       ],
       "info" : {
          "GET" : {
+            "allowtoken" : 1,
             "description" : "Pool index.",
             "method" : "GET",
             "name" : "index",
@@ -37063,7 +48789,7 @@ var pveapi = [
                "additionalProperties" : 0
             },
             "permissions" : {
-               "description" : "List all pools where you have Pool.Allocate or VM.Allocate permissions on /pool/<pool>.",
+               "description" : "List all pools where you have Pool.Audit permissions on /pool/<pool>.",
                "user" : "all"
             },
             "returns" : {
@@ -37085,6 +48811,7 @@ var pveapi = [
             }
          },
          "POST" : {
+            "allowtoken" : 1,
             "description" : "Create new pool.",
             "method" : "POST",
             "name" : "create_pool",
@@ -37125,7 +48852,8 @@ var pveapi = [
    {
       "info" : {
          "GET" : {
-            "description" : "API version details. The result also includes the global datacenter confguration.",
+            "allowtoken" : 1,
+            "description" : "API version details, including some parts of the global datacenter config.",
             "method" : "GET",
             "name" : "version",
             "parameters" : {
@@ -37136,13 +48864,27 @@ var pveapi = [
             },
             "returns" : {
                "properties" : {
+                  "console" : {
+                     "description" : "The default console viewer to use.",
+                     "enum" : [
+                        "applet",
+                        "vv",
+                        "html5",
+                        "xtermjs"
+                     ],
+                     "optional" : 1,
+                     "type" : "string"
+                  },
                   "release" : {
+                     "description" : "The current Proxmox VE point release in `x.y` format.",
                      "type" : "string"
                   },
                   "repoid" : {
+                     "description" : "The short git revision from which this version was build.",
                      "type" : "string"
                   },
                   "version" : {
+                     "description" : "The full pve-manager package version of this node.",
                      "type" : "string"
                   }
                },