]> git.proxmox.com Git - pve-docs.git/blobdiff - api-viewer/apidata.js
update static data and schema definitions
[pve-docs.git] / api-viewer / apidata.js
index 45c0206c015a45448e9bbcc67f6c1cdb3466003e..a44e50e1e7f22345de5e4e9eea78c36204dc9b95 100644 (file)
@@ -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,
@@ -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,
@@ -289,11 +294,42 @@ var pveapi = [
          },
          {
             "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,12 +350,19 @@ 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,
@@ -327,7 +370,7 @@ var pveapi = [
                                        "typetext" : "<boolean>"
                                     },
                                     "link[n]" : {
-                                       "description" : "Address and priority information of a single corosync link.",
+                                       "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
                                        "format" : {
                                           "address" : {
                                              "default_key" : 1,
@@ -338,7 +381,7 @@ var pveapi = [
                                           },
                                           "priority" : {
                                              "default" : 0,
-                                             "description" : "The priority for the link when knet is used in 'passive' mode. Lower value means higher priority.",
+                                             "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,
@@ -349,6 +392,13 @@ var pveapi = [
                                        "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",
@@ -379,6 +429,12 @@ var pveapi = [
                                     },
                                     "corosync_conf" : {
                                        "type" : "string"
+                                    },
+                                    "warnings" : {
+                                       "items" : {
+                                          "type" : "string"
+                                       },
+                                       "type" : "array"
                                     }
                                  },
                                  "type" : "object"
@@ -392,6 +448,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Corosync node list.",
                         "method" : "GET",
                         "name" : "nodes",
@@ -433,6 +490,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get information needed to join this cluster over the connected node.",
                         "method" : "GET",
                         "name" : "join_info",
@@ -493,7 +551,7 @@ var pveapi = [
                                           "type" : "integer"
                                        },
                                        "ring0_addr" : {
-                                          "description" : "Address and priority information of a single corosync link.",
+                                          "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
                                           "format" : {
                                              "address" : {
                                                 "default_key" : 1,
@@ -504,7 +562,7 @@ var pveapi = [
                                              },
                                              "priority" : {
                                                 "default" : 0,
-                                                "description" : "The priority for the link when knet is used in 'passive' mode. Lower value means higher priority.",
+                                                "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,
@@ -532,7 +590,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" : {
@@ -555,8 +614,7 @@ var pveapi = [
                                  "typetext" : "<string>"
                               },
                               "link[n]" : {
-                                 "default" : "IP resolved by node's hostname",
-                                 "description" : "Address and priority information of a single corosync link.",
+                                 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
                                  "format" : {
                                     "address" : {
                                        "default_key" : 1,
@@ -567,7 +625,7 @@ var pveapi = [
                                     },
                                     "priority" : {
                                        "default" : 0,
-                                       "description" : "The priority for the link when knet is used in 'passive' mode. Lower value means higher priority.",
+                                       "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,
@@ -613,6 +671,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get corosync totem protocol settings.",
                         "method" : "GET",
                         "name" : "totem",
@@ -640,6 +699,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get QDevice status",
                         "method" : "GET",
                         "name" : "status",
@@ -667,6 +727,7 @@ var pveapi = [
             ],
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Directory index.",
                   "method" : "GET",
                   "name" : "index",
@@ -697,7 +758,8 @@ 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" : {
@@ -711,7 +773,7 @@ var pveapi = [
                            "typetext" : "<string>"
                         },
                         "link[n]" : {
-                           "description" : "Address and priority information of a single corosync link.",
+                           "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
                            "format" : {
                               "address" : {
                                  "default_key" : 1,
@@ -722,7 +784,7 @@ var pveapi = [
                               },
                               "priority" : {
                                  "default" : 0,
-                                 "description" : "The priority for the link when knet is used in 'passive' mode. Lower value means higher priority.",
+                                 "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,
@@ -768,6 +830,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "DELETE" : {
+                                    "allowtoken" : 1,
                                     "description" : "Delete rule.",
                                     "method" : "DELETE",
                                     "name" : "delete_rule",
@@ -813,6 +876,7 @@ var pveapi = [
                                     }
                                  },
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Get single rule data.",
                                     "method" : "GET",
                                     "name" : "get_rule",
@@ -917,6 +981,7 @@ var pveapi = [
                                     }
                                  },
                                  "PUT" : {
+                                    "allowtoken" : 1,
                                     "description" : "Modify rule data.",
                                     "method" : "PUT",
                                     "name" : "update_rule",
@@ -1081,6 +1146,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "Delete security group.",
                               "method" : "DELETE",
                               "name" : "delete_security_group",
@@ -1111,6 +1177,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List rules.",
                               "method" : "GET",
                               "name" : "get_rules",
@@ -1155,6 +1222,7 @@ var pveapi = [
                               }
                            },
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Create new rule.",
                               "method" : "POST",
                               "name" : "create_rule",
@@ -1305,6 +1373,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "List security groups.",
                         "method" : "GET",
                         "name" : "list_security_groups",
@@ -1347,6 +1416,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Create new security group.",
                         "method" : "POST",
                         "name" : "create_security_group",
@@ -1406,6 +1476,7 @@ var pveapi = [
                      {
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "Delete rule.",
                               "method" : "DELETE",
                               "name" : "delete_rule",
@@ -1444,6 +1515,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get single rule data.",
                               "method" : "GET",
                               "name" : "get_rule",
@@ -1541,6 +1613,7 @@ var pveapi = [
                               }
                            },
                            "PUT" : {
+                              "allowtoken" : 1,
                               "description" : "Modify rule data.",
                               "method" : "PUT",
                               "name" : "update_rule",
@@ -1698,6 +1771,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "List rules.",
                         "method" : "GET",
                         "name" : "get_rules",
@@ -1733,6 +1807,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Create new rule.",
                         "method" : "POST",
                         "name" : "create_rule",
@@ -1880,6 +1955,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "DELETE" : {
+                                    "allowtoken" : 1,
                                     "description" : "Remove IP or Network from IPSet.",
                                     "method" : "DELETE",
                                     "name" : "remove_ip",
@@ -1923,6 +1999,7 @@ var pveapi = [
                                     }
                                  },
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read IP or Network settings from IPSet.",
                                     "method" : "GET",
                                     "name" : "read_ip",
@@ -1959,6 +2036,7 @@ var pveapi = [
                                     }
                                  },
                                  "PUT" : {
+                                    "allowtoken" : 1,
                                     "description" : "Update IP or Network settings",
                                     "method" : "PUT",
                                     "name" : "update_ip",
@@ -2019,6 +2097,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "Delete IPSet",
                               "method" : "DELETE",
                               "name" : "delete_ipset",
@@ -2049,6 +2128,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List IPSet content",
                               "method" : "GET",
                               "name" : "get_ipset",
@@ -2106,6 +2186,7 @@ var pveapi = [
                               }
                            },
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Add IP or Network to IPSet.",
                               "method" : "POST",
                               "name" : "create_ip",
@@ -2159,6 +2240,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "List IPSets",
                         "method" : "GET",
                         "name" : "ipset_index",
@@ -2207,6 +2289,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Create new IPSet",
                         "method" : "POST",
                         "name" : "create_ipset",
@@ -2266,6 +2349,7 @@ var pveapi = [
                      {
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "Remove IP or Network alias.",
                               "method" : "DELETE",
                               "name" : "remove_alias",
@@ -2303,6 +2387,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Read alias.",
                               "method" : "GET",
                               "name" : "read_alias",
@@ -2332,6 +2417,7 @@ var pveapi = [
                               }
                            },
                            "PUT" : {
+                              "allowtoken" : 1,
                               "description" : "Update IP or Network alias.",
                               "method" : "PUT",
                               "name" : "update_alias",
@@ -2395,6 +2481,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "List aliases",
                         "method" : "GET",
                         "name" : "get_aliases",
@@ -2442,6 +2529,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Create IP or Network Alias.",
                         "method" : "POST",
                         "name" : "create_alias",
@@ -2490,6 +2578,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get Firewall options.",
                         "method" : "GET",
                         "name" : "get_options",
@@ -2572,6 +2661,7 @@ var pveapi = [
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Set Firewall options.",
                         "method" : "PUT",
                         "name" : "set_options",
@@ -2679,6 +2769,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "List available macros",
                         "method" : "GET",
                         "name" : "get_macros",
@@ -2713,6 +2804,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
                         "method" : "GET",
                         "name" : "refs",
@@ -2773,6 +2865,7 @@ var pveapi = [
             ],
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Directory index.",
                   "method" : "GET",
                   "name" : "index",
@@ -2806,6 +2899,7 @@ var pveapi = [
                {
                   "info" : {
                      "DELETE" : {
+                        "allowtoken" : 1,
                         "description" : "Delete vzdump backup job definition.",
                         "method" : "DELETE",
                         "name" : "delete_job",
@@ -2835,6 +2929,7 @@ var pveapi = [
                         }
                      },
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read vzdump backup job definition.",
                         "method" : "GET",
                         "name" : "read_job",
@@ -2863,6 +2958,7 @@ var pveapi = [
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Update vzdump backup job definition.",
                         "method" : "PUT",
                         "name" : "update_job",
@@ -2891,7 +2987,8 @@ var pveapi = [
                                     "0",
                                     "1",
                                     "gzip",
-                                    "lzo"
+                                    "lzo",
+                                    "zstd"
                                  ],
                                  "optional" : 1,
                                  "type" : "string"
@@ -3091,6 +3188,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>"
                               }
                            }
                         },
@@ -3116,6 +3220,7 @@ var pveapi = [
             ],
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "List vzdump backup schedule.",
                   "method" : "GET",
                   "name" : "index",
@@ -3152,6 +3257,7 @@ var pveapi = [
                   }
                },
                "POST" : {
+                  "allowtoken" : 1,
                   "description" : "Create new vzdump backup job.",
                   "method" : "POST",
                   "name" : "create_job",
@@ -3180,7 +3286,8 @@ var pveapi = [
                               "0",
                               "1",
                               "gzip",
-                              "lzo"
+                              "lzo",
+                              "zstd"
                            ],
                            "optional" : 1,
                            "type" : "string"
@@ -3368,6 +3475,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>"
                         }
                      }
                   },
@@ -3400,6 +3514,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Request resource migration (online) to another node.",
                                     "method" : "POST",
                                     "name" : "migrate",
@@ -3442,6 +3557,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",
@@ -3484,6 +3600,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "Delete resource configuration.",
                               "method" : "DELETE",
                               "name" : "delete",
@@ -3513,6 +3630,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Read resource configuration.",
                               "method" : "GET",
                               "name" : "read",
@@ -3590,6 +3708,7 @@ var pveapi = [
                               }
                            },
                            "PUT" : {
+                              "allowtoken" : 1,
                               "description" : "Update resource configuration.",
                               "method" : "PUT",
                               "name" : "update",
@@ -3686,6 +3805,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "List HA resources.",
                         "method" : "GET",
                         "name" : "index",
@@ -3731,6 +3851,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Create a new HA resource.",
                         "method" : "POST",
                         "name" : "create",
@@ -3823,6 +3944,7 @@ var pveapi = [
                      {
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "Delete ha group configuration.",
                               "method" : "DELETE",
                               "name" : "delete",
@@ -3852,6 +3974,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Read ha group configuration.",
                               "method" : "GET",
                               "name" : "read",
@@ -3878,6 +4001,7 @@ var pveapi = [
                               "returns" : {}
                            },
                            "PUT" : {
+                              "allowtoken" : 1,
                               "description" : "Update ha group configuration.",
                               "method" : "PUT",
                               "name" : "update",
@@ -3960,6 +4084,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get HA groups.",
                         "method" : "GET",
                         "name" : "index",
@@ -3994,6 +4119,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Create a new HA group.",
                         "method" : "POST",
                         "name" : "create",
@@ -4071,6 +4197,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get HA manger status.",
                               "method" : "GET",
                               "name" : "status",
@@ -4098,6 +4225,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get full HA manger status, including LRM status.",
                               "method" : "GET",
                               "name" : "manager_status",
@@ -4125,6 +4253,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Directory index.",
                         "method" : "GET",
                         "name" : "index",
@@ -4156,6 +4285,7 @@ var pveapi = [
             ],
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Directory index.",
                   "method" : "GET",
                   "name" : "index",
@@ -4201,6 +4331,485 @@ 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" : [
+                                          "acmedns",
+                                          "acmeproxy",
+                                          "active24",
+                                          "ad",
+                                          "ali",
+                                          "autodns",
+                                          "aws",
+                                          "azure",
+                                          "cf",
+                                          "clouddns",
+                                          "cloudns",
+                                          "cn",
+                                          "conoha",
+                                          "constellix",
+                                          "cx",
+                                          "cyon",
+                                          "da",
+                                          "ddnss",
+                                          "desec",
+                                          "dgon",
+                                          "dnsimple",
+                                          "do",
+                                          "doapi",
+                                          "domeneshop",
+                                          "dp",
+                                          "dpi",
+                                          "dreamhost",
+                                          "duckdns",
+                                          "durabledns",
+                                          "dyn",
+                                          "dynu",
+                                          "dynv6",
+                                          "easydns",
+                                          "euserv",
+                                          "exoscale",
+                                          "freedns",
+                                          "gandi_livedns",
+                                          "gcloud",
+                                          "gd",
+                                          "gdnsdk",
+                                          "he",
+                                          "hexonet",
+                                          "hostingde",
+                                          "infoblox",
+                                          "internetbs",
+                                          "inwx",
+                                          "ispconfig",
+                                          "jd",
+                                          "kas",
+                                          "kinghost",
+                                          "knot",
+                                          "leaseweb",
+                                          "lexicon",
+                                          "linode",
+                                          "linode_v4",
+                                          "loopia",
+                                          "lua",
+                                          "maradns",
+                                          "me",
+                                          "miab",
+                                          "misaka",
+                                          "myapi",
+                                          "mydevil",
+                                          "mydnsjp",
+                                          "namecheap",
+                                          "namecom",
+                                          "namesilo",
+                                          "nederhost",
+                                          "neodigit",
+                                          "netcup",
+                                          "nic",
+                                          "nsd",
+                                          "nsone",
+                                          "nsupdate",
+                                          "nw",
+                                          "one",
+                                          "online",
+                                          "openprovider",
+                                          "opnsense",
+                                          "ovh",
+                                          "pdns",
+                                          "pleskxml",
+                                          "pointhq",
+                                          "rackspace",
+                                          "rcode0",
+                                          "regru",
+                                          "schlundtech",
+                                          "selectel",
+                                          "servercow",
+                                          "tele3",
+                                          "ultra",
+                                          "unoeuro",
+                                          "variomedia",
+                                          "vscale",
+                                          "vultr",
+                                          "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" : [
+                                    "acmedns",
+                                    "acmeproxy",
+                                    "active24",
+                                    "ad",
+                                    "ali",
+                                    "autodns",
+                                    "aws",
+                                    "azure",
+                                    "cf",
+                                    "clouddns",
+                                    "cloudns",
+                                    "cn",
+                                    "conoha",
+                                    "constellix",
+                                    "cx",
+                                    "cyon",
+                                    "da",
+                                    "ddnss",
+                                    "desec",
+                                    "dgon",
+                                    "dnsimple",
+                                    "do",
+                                    "doapi",
+                                    "domeneshop",
+                                    "dp",
+                                    "dpi",
+                                    "dreamhost",
+                                    "duckdns",
+                                    "durabledns",
+                                    "dyn",
+                                    "dynu",
+                                    "dynv6",
+                                    "easydns",
+                                    "euserv",
+                                    "exoscale",
+                                    "freedns",
+                                    "gandi_livedns",
+                                    "gcloud",
+                                    "gd",
+                                    "gdnsdk",
+                                    "he",
+                                    "hexonet",
+                                    "hostingde",
+                                    "infoblox",
+                                    "internetbs",
+                                    "inwx",
+                                    "ispconfig",
+                                    "jd",
+                                    "kas",
+                                    "kinghost",
+                                    "knot",
+                                    "leaseweb",
+                                    "lexicon",
+                                    "linode",
+                                    "linode_v4",
+                                    "loopia",
+                                    "lua",
+                                    "maradns",
+                                    "me",
+                                    "miab",
+                                    "misaka",
+                                    "myapi",
+                                    "mydevil",
+                                    "mydnsjp",
+                                    "namecheap",
+                                    "namecom",
+                                    "namesilo",
+                                    "nederhost",
+                                    "neodigit",
+                                    "netcup",
+                                    "nic",
+                                    "nsd",
+                                    "nsone",
+                                    "nsupdate",
+                                    "nw",
+                                    "one",
+                                    "online",
+                                    "openprovider",
+                                    "opnsense",
+                                    "ovh",
+                                    "pdns",
+                                    "pleskxml",
+                                    "pointhq",
+                                    "rackspace",
+                                    "rcode0",
+                                    "regru",
+                                    "schlundtech",
+                                    "selectel",
+                                    "servercow",
+                                    "tele3",
+                                    "ultra",
+                                    "unoeuro",
+                                    "variomedia",
+                                    "vscale",
+                                    "vultr",
+                                    "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",
@@ -4224,6 +4833,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Return existing ACME account information.",
                               "method" : "GET",
                               "name" : "get_account",
@@ -4269,6 +4879,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",
@@ -4306,6 +4917,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "ACMEAccount index.",
                         "method" : "GET",
                         "name" : "account_index",
@@ -4331,6 +4943,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Register a new ACME account with CA.",
                         "method" : "POST",
                         "name" : "register_account",
@@ -4380,6 +4993,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Retrieve ACME TermsOfService URL from CA.",
                         "method" : "GET",
                         "name" : "get_tos",
@@ -4400,6 +5014,7 @@ var pveapi = [
                         },
                         "returns" : {
                            "description" : "ACME TermsOfService URL.",
+                           "optional" : 1,
                            "type" : "string"
                         }
                      }
@@ -4411,6 +5026,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get named known ACME directory endpoints.",
                         "method" : "GET",
                         "name" : "get_directories",
@@ -4446,6 +5062,7 @@ var pveapi = [
             ],
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "ACMEAccount index.",
                   "method" : "GET",
                   "name" : "index",
@@ -4479,11 +5096,23 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get ceph metadata.",
                         "method" : "GET",
                         "name" : "metadata",
                         "parameters" : {
-                           "additionalProperties" : 0
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "scope" : {
+                                 "default" : "all",
+                                 "enum" : [
+                                    "all",
+                                    "versions"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string"
+                              }
+                           }
                         },
                         "permissions" : {
                            "check" : [
@@ -4510,6 +5139,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get ceph status.",
                         "method" : "GET",
                         "name" : "status",
@@ -4543,6 +5173,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get the status of a specific ceph flag.",
                               "method" : "GET",
                               "name" : "get_flag",
@@ -4583,6 +5214,7 @@ var pveapi = [
                               }
                            },
                            "PUT" : {
+                              "allowtoken" : 1,
                               "description" : "Set or clear (unset) a specific ceph flag",
                               "method" : "PUT",
                               "name" : "update_flag",
@@ -4635,6 +5267,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "get the status of all ceph flags",
                         "method" : "GET",
                         "name" : "get_all_flags",
@@ -4685,6 +5318,7 @@ var pveapi = [
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Set/Unset multiple ceph flags at once.",
                         "method" : "PUT",
                         "name" : "set_flags",
@@ -4781,6 +5415,7 @@ var pveapi = [
             ],
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Cluster ceph index.",
                   "method" : "GET",
                   "name" : "cephindex",
@@ -4812,50 +5447,191 @@ var pveapi = [
          {
             "children" : [
                {
-                  "info" : {
-                     "DELETE" : {
-                        "description" : "Delete sdn object configuration.",
-                        "method" : "DELETE",
-                        "name" : "delete",
-                        "parameters" : {
-                           "additionalProperties" : 0,
-                           "properties" : {
-                              "sdn" : {
-                                 "description" : "The SDN object identifier.",
-                                 "format" : "pve-sdn-id",
-                                 "type" : "string",
-                                 "typetext" : "<string>"
+                  "children" : [
+                     {
+                        "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" : {
+                                    "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",
+                                       "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>"
+                                    },
+                                    "ipv4" : {
+                                       "description" : "Anycast router ipv4 address.",
+                                       "format" : "CIDRv4",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "ipv6" : {
+                                       "description" : "Anycast router ipv6 address.",
+                                       "format" : "CIDRv6",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "mac" : {
+                                       "description" : "Anycast router mac address",
+                                       "format" : "mac-addr",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "tag" : {
+                                       "description" : "vlan or vxlan id",
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer>"
+                                    },
+                                    "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"
                               }
                            }
                         },
-                        "protected" : 1,
-                        "returns" : {
-                           "type" : "null"
-                        }
-                     },
+                        "leaf" : 1,
+                        "path" : "/cluster/sdn/vnets/{vnet}",
+                        "text" : "{vnet}"
+                     }
+                  ],
+                  "info" : {
                      "GET" : {
-                        "description" : "Read sdn configuration.",
+                        "allowtoken" : 1,
+                        "description" : "SDN vnets index.",
                         "method" : "GET",
-                        "name" : "read",
+                        "name" : "index",
                         "parameters" : {
-                           "additionalProperties" : 0,
-                           "properties" : {
-                              "sdn" : {
-                                 "description" : "The SDN object identifier.",
-                                 "format" : "pve-sdn-id",
-                                 "type" : "string",
-                                 "typetext" : "<string>"
-                              }
-                           }
+                           "additionalProperties" : 0
+                        },
+                        "permissions" : {
+                           "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/vnets/<vnet>'",
+                           "user" : "all"
                         },
                         "returns" : {
-                           "type" : "object"
+                           "items" : {
+                              "properties" : {},
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{vnet}",
+                                 "rel" : "child"
+                              }
+                           ],
+                           "type" : "array"
                         }
                      },
-                     "PUT" : {
-                        "description" : "Update sdn object configuration.",
-                        "method" : "PUT",
-                        "name" : "update",
+                     "POST" : {
+                        "allowtoken" : 1,
+                        "description" : "Create a new sdn vnet object.",
+                        "method" : "POST",
+                        "name" : "create",
                         "parameters" : {
                            "additionalProperties" : 0,
                            "properties" : {
@@ -4865,83 +5641,321 @@ var pveapi = [
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
-                              "asn" : {
-                                 "description" : "autonomous system number",
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "<integer>"
-                              },
-                              "controller" : {
-                                 "description" : "Frr router name",
+                              "ipv4" : {
+                                 "description" : "Anycast router ipv4 address.",
+                                 "format" : "CIDRv4",
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
-                              "delete" : {
-                                 "description" : "A list of settings you want to delete.",
-                                 "format" : "pve-configid-list",
-                                 "maxLength" : 4096,
+                              "ipv6" : {
+                                 "description" : "Anycast router ipv6 address.",
+                                 "format" : "CIDRv6",
                                  "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,
+                              "mac" : {
+                                 "description" : "Anycast router mac address",
+                                 "format" : "mac-addr",
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
-                              "dp-id" : {
-                                 "description" : "Faucet dataplane id",
-                                 "optional" : 1,
+                              "tag" : {
+                                 "description" : "vlan or vxlan id",
+                                 "optional" : 0,
                                  "type" : "integer",
                                  "typetext" : "<integer>"
                               },
-                              "gateway-external-peers" : {
-                                 "description" : "upstream bgp peers address list.",
-                                 "format" : "ip-list",
+                              "type" : {
+                                 "description" : "Type",
+                                 "enum" : [
+                                    "vnet"
+                                 ],
                                  "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "vnet" : {
+                                 "description" : "The SDN vnet object identifier.",
+                                 "format" : "pve-sdn-vnet-id",
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
-                              "gateway-nodes" : {
-                                 "description" : "List of cluster node names.",
-                                 "format" : "pve-node-list",
-                                 "optional" : 1,
+                              "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>"
+                                    }
+                                 }
                               },
-                              "ipv4" : {
-                                 "description" : "Anycast router ipv4 address.",
-                                 "format" : "CIDRv4",
+                              "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" : {
+                                    "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" : {
+                                    "bridge" : {
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "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>"
+                                    },
+                                    "dp-id" : {
+                                       "description" : "Faucet dataplane id",
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer>"
+                                    },
+                                    "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>"
+                                    },
+                                    "tag" : {
+                                       "description" : "vlan tag",
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer>"
+                                    },
+                                    "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" : {
+                              "type" : {
+                                 "description" : "Only list sdn zones of specific type",
+                                 "enum" : [
+                                    "evpn",
+                                    "faucet",
+                                    "qinq",
+                                    "vlan",
+                                    "vxlan"
+                                 ],
                                  "optional" : 1,
-                                 "type" : "string",
-                                 "typetext" : "<string>"
+                                 "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" : {
+                                 "type" : {
+                                    "type" : "string"
+                                 },
+                                 "zone" : {
+                                    "type" : "string"
+                                 }
                               },
-                              "ipv6" : {
-                                 "description" : "Anycast router ipv6 address.",
-                                 "format" : "CIDRv6",
+                              "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" : {
+                              "bridge" : {
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
-                              "mac" : {
-                                 "description" : "Anycast router mac address",
-                                 "format" : "mac-addr",
+                              "controller" : {
+                                 "description" : "Frr router name",
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
+                              "dp-id" : {
+                                 "description" : "Faucet dataplane id",
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer>"
+                              },
                               "mtu" : {
                                  "description" : "mtu",
                                  "optional" : 1,
                                  "type" : "integer",
                                  "typetext" : "<integer>"
                               },
-                              "multicast-address" : {
-                                 "description" : "Multicast address.",
-                                 "format" : "ipv4-multicast",
+                              "nodes" : {
+                                 "description" : "List of cluster node names.",
+                                 "format" : "pve-node-list",
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
@@ -4953,140 +5967,340 @@ var pveapi = [
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
-                              "sdn" : {
-                                 "description" : "The SDN object identifier.",
-                                 "format" : "pve-sdn-id",
-                                 "type" : "string",
-                                 "typetext" : "<string>"
-                              },
                               "tag" : {
-                                 "description" : "vlan or vxlan id",
+                                 "description" : "vlan tag",
                                  "optional" : 1,
                                  "type" : "integer",
                                  "typetext" : "<integer>"
                               },
-                              "transportzone" : {
-                                 "description" : "transportzone id",
-                                 "optional" : 1,
-                                 "type" : "string",
-                                 "typetext" : "<string>"
-                              },
-                              "unicast-address" : {
-                                 "description" : "Unicast peers address ip list.",
-                                 "format" : "ip-list",
-                                 "optional" : 1,
-                                 "type" : "string",
-                                 "typetext" : "<string>"
+                              "type" : {
+                                 "description" : "Plugin type.",
+                                 "enum" : [
+                                    "evpn",
+                                    "faucet",
+                                    "qinq",
+                                    "vlan",
+                                    "vxlan"
+                                 ],
+                                 "format" : "pve-configid",
+                                 "type" : "string"
                               },
-                              "uplink-id" : {
-                                 "description" : "Uplink interface",
-                                 "maximum" : 4096,
-                                 "minimum" : 1,
+                              "vrf-vxlan" : {
+                                 "description" : "l3vni.",
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "<integer> (1 - 4096)"
+                                 "typetext" : "<integer>"
                               },
-                              "vlan-allowed" : {
-                                 "description" : "Allowed vlan range",
-                                 "format" : "pve-sdn-vlanrange",
-                                 "optional" : 1,
+                              "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>"
+                                    }
+                                 }
+                              },
+                              "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",
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer>"
+                                    },
+                                    "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>"
+                                    },
+                                    "gateway-external-peers" : {
+                                       "description" : "upstream bgp peers address list.",
+                                       "format" : "ip-list",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "gateway-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>"
+                                    }
+                                 },
+                                 "type" : "object"
                               },
-                              "vlan-protocol" : {
-                                 "default" : "802.1q",
-                                 "description" : "vlan protocol",
+                              "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" : {
+                              "type" : {
+                                 "description" : "Only list sdn controllers of specific type",
                                  "enum" : [
-                                    "802.1q",
-                                    "802.1ad"
+                                    "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"
+                                 },
+                                 "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",
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer>"
                               },
-                              "vrf" : {
-                                 "description" : "vrf name.",
+                              "controller" : {
+                                 "description" : "The SDN controller object identifier.",
+                                 "format" : "pve-sdn-controller-id",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "gateway-external-peers" : {
+                                 "description" : "upstream bgp peers address list.",
+                                 "format" : "ip-list",
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
-                              "vrf-vxlan" : {
-                                 "description" : "l3vni.",
+                              "gateway-nodes" : {
+                                 "description" : "List of cluster node names.",
+                                 "format" : "pve-node-list",
                                  "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "<integer>"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
-                              "vxlan-allowed" : {
-                                 "description" : "Allowed vlan range",
-                                 "format" : "pve-sdn-vxlanrange",
+                              "peers" : {
+                                 "description" : "peers address list.",
+                                 "format" : "ip-list",
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
+                              },
+                              "type" : {
+                                 "description" : "Plugin type.",
+                                 "enum" : [
+                                    "evpn",
+                                    "faucet"
+                                 ],
+                                 "format" : "pve-configid",
+                                 "type" : "string"
                               }
                            },
                            "type" : "object"
                         },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/sdn/controllers",
+                              [
+                                 "SDN.Allocate"
+                              ]
+                           ]
+                        },
                         "protected" : 1,
                         "returns" : {
                            "type" : "null"
                         }
                      }
                   },
-                  "leaf" : 1,
-                  "path" : "/cluster/sdn/{sdn}",
-                  "text" : "{sdn}"
+                  "leaf" : 0,
+                  "path" : "/cluster/sdn/controllers",
+                  "text" : "controllers"
                }
             ],
             "info" : {
-               "DELETE" : {
-                  "description" : "Revert sdn changes.",
-                  "method" : "DELETE",
-                  "name" : "revert_configuration",
-                  "parameters" : {
-                     "additionalProperties" : 0
-                  },
-                  "protected" : 1,
-                  "returns" : {
-                     "type" : "null"
-                  }
-               },
                "GET" : {
-                  "description" : "SDN index.",
+                  "allowtoken" : 1,
+                  "description" : "Directory index.",
                   "method" : "GET",
                   "name" : "index",
                   "parameters" : {
-                     "additionalProperties" : 0,
-                     "properties" : {
-                        "type" : {
-                           "description" : "Only list sdn of specific type",
-                           "enum" : [
-                              "evpn",
-                              "evpncontroller",
-                              "faucet",
-                              "faucetcontroller",
-                              "qinq",
-                              "vlan",
-                              "vnet",
-                              "vxlan"
-                           ],
-                           "optional" : 1,
-                           "type" : "string"
-                        }
-                     }
+                     "additionalProperties" : 0
                   },
                   "permissions" : {
-                     "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/cluster/sdn/<sdn>'",
-                     "user" : "all"
+                     "check" : [
+                        "perm",
+                        "/",
+                        [
+                           "SDN.Audit"
+                        ]
+                     ]
                   },
                   "returns" : {
                      "items" : {
                         "properties" : {
-                           "role" : {
-                              "type" : "string"
-                           },
-                           "sdn" : {
-                              "type" : "string"
-                           },
-                           "type" : {
+                           "id" : {
                               "type" : "string"
                            }
                         },
@@ -5094,201 +6308,33 @@ var pveapi = [
                      },
                      "links" : [
                         {
-                           "href" : "{sdn}",
+                           "href" : "{id}",
                            "rel" : "child"
                         }
                      ],
                      "type" : "array"
                   }
                },
-               "POST" : {
-                  "description" : "Create a new sdn object.",
-                  "method" : "POST",
-                  "name" : "create",
-                  "parameters" : {
-                     "additionalProperties" : 0,
-                     "properties" : {
-                        "alias" : {
-                           "description" : "alias name of the vnet",
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "asn" : {
-                           "description" : "autonomous system number",
-                           "optional" : 1,
-                           "type" : "integer",
-                           "typetext" : "<integer>"
-                        },
-                        "controller" : {
-                           "description" : "Frr router name",
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "dp-id" : {
-                           "description" : "Faucet dataplane id",
-                           "optional" : 1,
-                           "type" : "integer",
-                           "typetext" : "<integer>"
-                        },
-                        "gateway-external-peers" : {
-                           "description" : "upstream bgp peers address list.",
-                           "format" : "ip-list",
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "gateway-nodes" : {
-                           "description" : "List of cluster node names.",
-                           "format" : "pve-node-list",
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "ipv4" : {
-                           "description" : "Anycast router ipv4 address.",
-                           "format" : "CIDRv4",
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "ipv6" : {
-                           "description" : "Anycast router ipv6 address.",
-                           "format" : "CIDRv6",
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "mac" : {
-                           "description" : "Anycast router mac address",
-                           "format" : "mac-addr",
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "mtu" : {
-                           "description" : "mtu",
-                           "optional" : 1,
-                           "type" : "integer",
-                           "typetext" : "<integer>"
-                        },
-                        "multicast-address" : {
-                           "description" : "Multicast address.",
-                           "format" : "ipv4-multicast",
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "peers" : {
-                           "description" : "peers address list.",
-                           "format" : "ip-list",
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "sdn" : {
-                           "description" : "The SDN object identifier.",
-                           "format" : "pve-sdn-id",
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "tag" : {
-                           "description" : "vlan or vxlan id",
-                           "optional" : 1,
-                           "type" : "integer",
-                           "typetext" : "<integer>"
-                        },
-                        "transportzone" : {
-                           "description" : "transportzone id",
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "type" : {
-                           "description" : "Plugin type.",
-                           "enum" : [
-                              "evpn",
-                              "evpncontroller",
-                              "faucet",
-                              "faucetcontroller",
-                              "qinq",
-                              "vlan",
-                              "vnet",
-                              "vxlan"
-                           ],
-                           "format" : "pve-configid",
-                           "type" : "string"
-                        },
-                        "unicast-address" : {
-                           "description" : "Unicast peers address ip list.",
-                           "format" : "ip-list",
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "uplink-id" : {
-                           "description" : "Uplink interface",
-                           "maximum" : 4096,
-                           "minimum" : 1,
-                           "optional" : 1,
-                           "type" : "integer",
-                           "typetext" : "<integer> (1 - 4096)"
-                        },
-                        "vlan-allowed" : {
-                           "description" : "Allowed vlan range",
-                           "format" : "pve-sdn-vlanrange",
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "vlan-protocol" : {
-                           "default" : "802.1q",
-                           "description" : "vlan protocol",
-                           "enum" : [
-                              "802.1q",
-                              "802.1ad"
-                           ],
-                           "optional" : 1,
-                           "type" : "string"
-                        },
-                        "vrf" : {
-                           "description" : "vrf name.",
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        },
-                        "vrf-vxlan" : {
-                           "description" : "l3vni.",
-                           "optional" : 1,
-                           "type" : "integer",
-                           "typetext" : "<integer>"
-                        },
-                        "vxlan-allowed" : {
-                           "description" : "Allowed vlan range",
-                           "format" : "pve-sdn-vxlanrange",
-                           "optional" : 1,
-                           "type" : "string",
-                           "typetext" : "<string>"
-                        }
-                     },
-                     "type" : "object"
-                  },
-                  "protected" : 1,
-                  "returns" : {
-                     "type" : "null"
-                  }
-               },
                "PUT" : {
-                  "description" : "Apply sdn changes.",
+                  "allowtoken" : 1,
+                  "description" : "Apply sdn controller changes && reload.",
                   "method" : "PUT",
-                  "name" : "apply_configuration",
+                  "name" : "reload",
                   "parameters" : {
                      "additionalProperties" : 0
                   },
+                  "permissions" : {
+                     "check" : [
+                        "perm",
+                        "/sdn",
+                        [
+                           "SDN.Allocate"
+                        ]
+                     ]
+                  },
                   "protected" : 1,
                   "returns" : {
-                     "type" : "null"
+                     "type" : "string"
                   }
                }
             },
@@ -5299,6 +6345,7 @@ var pveapi = [
          {
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Read cluster log",
                   "method" : "GET",
                   "name" : "log",
@@ -5333,6 +6380,7 @@ var pveapi = [
          {
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Resources index (cluster wide).",
                   "method" : "GET",
                   "name" : "resources",
@@ -5460,6 +6508,7 @@ var pveapi = [
          {
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "List recent tasks (cluster wide).",
                   "method" : "GET",
                   "name" : "tasks",
@@ -5489,6 +6538,7 @@ var pveapi = [
          {
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Get datacenter options.",
                   "method" : "GET",
                   "name" : "get_options",
@@ -5509,6 +6559,7 @@ var pveapi = [
                   }
                },
                "PUT" : {
+                  "allowtoken" : 1,
                   "description" : "Set datacenter options.",
                   "method" : "PUT",
                   "name" : "set_options",
@@ -5599,19 +6650,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/')",
@@ -5768,6 +6820,7 @@ var pveapi = [
          {
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Get cluster status information.",
                   "method" : "GET",
                   "name" : "get_status",
@@ -5787,8 +6840,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"
@@ -5804,6 +6908,7 @@ var pveapi = [
          {
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Get next free VMID. If you pass an VMID it will raise an error if the ID is already used.",
                   "method" : "GET",
                   "name" : "nextid",
@@ -5836,6 +6941,7 @@ var pveapi = [
       ],
       "info" : {
          "GET" : {
+            "allowtoken" : 1,
             "description" : "Cluster index.",
             "method" : "GET",
             "name" : "index",
@@ -5879,6 +6985,7 @@ var pveapi = [
                                        {
                                           "info" : {
                                              "DELETE" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Delete rule.",
                                                 "method" : "DELETE",
                                                 "name" : "delete_rule",
@@ -5930,6 +7037,7 @@ var pveapi = [
                                                 }
                                              },
                                              "GET" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Get single rule data.",
                                                 "method" : "GET",
                                                 "name" : "get_rule",
@@ -6040,6 +7148,7 @@ var pveapi = [
                                                 }
                                              },
                                              "PUT" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Modify rule data.",
                                                 "method" : "PUT",
                                                 "name" : "update_rule",
@@ -6210,6 +7319,7 @@ var pveapi = [
                                     ],
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "List rules.",
                                           "method" : "GET",
                                           "name" : "get_rules",
@@ -6260,6 +7370,7 @@ var pveapi = [
                                           }
                                        },
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Create new rule.",
                                           "method" : "POST",
                                           "name" : "create_rule",
@@ -6418,6 +7529,7 @@ var pveapi = [
                                        {
                                           "info" : {
                                              "DELETE" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Remove IP or Network alias.",
                                                 "method" : "DELETE",
                                                 "name" : "remove_alias",
@@ -6468,6 +7580,7 @@ var pveapi = [
                                                 }
                                              },
                                              "GET" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Read alias.",
                                                 "method" : "GET",
                                                 "name" : "read_alias",
@@ -6510,6 +7623,7 @@ var pveapi = [
                                                 }
                                              },
                                              "PUT" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Update IP or Network alias.",
                                                 "method" : "PUT",
                                                 "name" : "update_alias",
@@ -6586,6 +7700,7 @@ var pveapi = [
                                     ],
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "List aliases",
                                           "method" : "GET",
                                           "name" : "get_aliases",
@@ -6648,6 +7763,7 @@ var pveapi = [
                                           }
                                        },
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Create IP or Network Alias.",
                                           "method" : "POST",
                                           "name" : "create_alias",
@@ -6713,6 +7829,7 @@ var pveapi = [
                                              {
                                                 "info" : {
                                                    "DELETE" : {
+                                                      "allowtoken" : 1,
                                                       "description" : "Remove IP or Network from IPSet.",
                                                       "method" : "DELETE",
                                                       "name" : "remove_ip",
@@ -6769,6 +7886,7 @@ var pveapi = [
                                                       }
                                                    },
                                                    "GET" : {
+                                                      "allowtoken" : 1,
                                                       "description" : "Read IP or Network settings from IPSet.",
                                                       "method" : "GET",
                                                       "name" : "read_ip",
@@ -6818,6 +7936,7 @@ var pveapi = [
                                                       }
                                                    },
                                                    "PUT" : {
+                                                      "allowtoken" : 1,
                                                       "description" : "Update IP or Network settings",
                                                       "method" : "PUT",
                                                       "name" : "update_ip",
@@ -6891,6 +8010,7 @@ var pveapi = [
                                           ],
                                           "info" : {
                                              "DELETE" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Delete IPSet",
                                                 "method" : "DELETE",
                                                 "name" : "delete_ipset",
@@ -6934,6 +8054,7 @@ var pveapi = [
                                                 }
                                              },
                                              "GET" : {
+                                                "allowtoken" : 1,
                                                 "description" : "List IPSet content",
                                                 "method" : "GET",
                                                 "name" : "get_ipset",
@@ -7004,6 +8125,7 @@ var pveapi = [
                                                 }
                                              },
                                              "POST" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Add IP or Network to IPSet.",
                                                 "method" : "POST",
                                                 "name" : "create_ip",
@@ -7070,6 +8192,7 @@ var pveapi = [
                                     ],
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "List IPSets",
                                           "method" : "GET",
                                           "name" : "ipset_index",
@@ -7133,6 +8256,7 @@ var pveapi = [
                                           }
                                        },
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Create new IPSet",
                                           "method" : "POST",
                                           "name" : "create_ipset",
@@ -7203,6 +8327,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Get VM firewall options.",
                                           "method" : "GET",
                                           "name" : "get_options",
@@ -7237,11 +8362,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"
@@ -7284,12 +8411,14 @@ var pveapi = [
                                                    "type" : "string"
                                                 },
                                                 "macfilter" : {
+                                                   "default" : 0,
                                                    "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"
                                                 },
@@ -7323,6 +8452,7 @@ var pveapi = [
                                           }
                                        },
                                        "PUT" : {
+                                          "allowtoken" : 1,
                                           "description" : "Set Firewall options.",
                                           "method" : "PUT",
                                           "name" : "set_options",
@@ -7337,6 +8467,7 @@ var pveapi = [
                                                    "typetext" : "<string>"
                                                 },
                                                 "dhcp" : {
+                                                   "default" : 0,
                                                    "description" : "Enable DHCP.",
                                                    "optional" : 1,
                                                    "type" : "boolean",
@@ -7350,6 +8481,7 @@ var pveapi = [
                                                    "typetext" : "<string>"
                                                 },
                                                 "enable" : {
+                                                   "default" : 0,
                                                    "description" : "Enable/disable firewall rules.",
                                                    "optional" : 1,
                                                    "type" : "boolean",
@@ -7394,13 +8526,15 @@ var pveapi = [
                                                    "type" : "string"
                                                 },
                                                 "macfilter" : {
+                                                   "default" : 0,
                                                    "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>"
@@ -7469,6 +8603,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Read firewall log",
                                           "method" : "GET",
                                           "name" : "log",
@@ -7538,6 +8673,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
                                           "method" : "GET",
                                           "name" : "refs",
@@ -7608,6 +8744,7 @@ var pveapi = [
                               ],
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Directory index.",
                                     "method" : "GET",
                                     "name" : "index",
@@ -7656,6 +8793,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute fsfreeze-freeze.",
                                           "method" : "POST",
                                           "name" : "fsfreeze-freeze",
@@ -7701,6 +8839,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute fsfreeze-status.",
                                           "method" : "POST",
                                           "name" : "fsfreeze-status",
@@ -7746,6 +8885,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute fsfreeze-thaw.",
                                           "method" : "POST",
                                           "name" : "fsfreeze-thaw",
@@ -7791,6 +8931,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute fstrim.",
                                           "method" : "POST",
                                           "name" : "fstrim",
@@ -7836,6 +8977,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute get-fsinfo.",
                                           "method" : "GET",
                                           "name" : "get-fsinfo",
@@ -7881,6 +9023,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute get-host-name.",
                                           "method" : "GET",
                                           "name" : "get-host-name",
@@ -7926,6 +9069,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute get-memory-block-info.",
                                           "method" : "GET",
                                           "name" : "get-memory-block-info",
@@ -7971,6 +9115,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute get-memory-blocks.",
                                           "method" : "GET",
                                           "name" : "get-memory-blocks",
@@ -8016,6 +9161,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute get-osinfo.",
                                           "method" : "GET",
                                           "name" : "get-osinfo",
@@ -8061,6 +9207,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute get-time.",
                                           "method" : "GET",
                                           "name" : "get-time",
@@ -8106,6 +9253,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute get-timezone.",
                                           "method" : "GET",
                                           "name" : "get-timezone",
@@ -8151,6 +9299,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute get-users.",
                                           "method" : "GET",
                                           "name" : "get-users",
@@ -8196,6 +9345,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute get-vcpus.",
                                           "method" : "GET",
                                           "name" : "get-vcpus",
@@ -8241,6 +9391,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute info.",
                                           "method" : "GET",
                                           "name" : "info",
@@ -8286,6 +9437,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute network-get-interfaces.",
                                           "method" : "GET",
                                           "name" : "network-get-interfaces",
@@ -8331,6 +9483,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute ping.",
                                           "method" : "POST",
                                           "name" : "ping",
@@ -8376,6 +9529,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute shutdown.",
                                           "method" : "POST",
                                           "name" : "shutdown",
@@ -8421,6 +9575,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute suspend-disk.",
                                           "method" : "POST",
                                           "name" : "suspend-disk",
@@ -8466,6 +9621,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute suspend-hybrid.",
                                           "method" : "POST",
                                           "name" : "suspend-hybrid",
@@ -8511,6 +9667,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Execute suspend-ram.",
                                           "method" : "POST",
                                           "name" : "suspend-ram",
@@ -8556,6 +9713,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",
@@ -8620,6 +9778,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",
@@ -8629,6 +9788,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>"
                                                 },
@@ -8676,6 +9843,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",
@@ -8761,6 +9929,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",
@@ -8822,6 +9991,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Writes the given file via guest agent.",
                                           "method" : "POST",
                                           "name" : "file-write",
@@ -8877,6 +10047,7 @@ var pveapi = [
                               ],
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Qemu Agent command index.",
                                     "method" : "GET",
                                     "name" : "index",
@@ -8918,6 +10089,7 @@ var pveapi = [
                                     }
                                  },
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Execute Qemu Guest Agent commands.",
                                     "method" : "POST",
                                     "name" : "agent",
@@ -8989,6 +10161,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read VM RRD statistics (returns PNG)",
                                     "method" : "GET",
                                     "name" : "rrd",
@@ -9063,6 +10236,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read VM RRD statistics",
                                     "method" : "GET",
                                     "name" : "rrddata",
@@ -9130,7 +10304,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" : {
@@ -9177,7 +10352,7 @@ var pveapi = [
                                     },
                                     "proxyto" : "node",
                                     "returns" : {
-                                       "description" : "The current VM configuration.",
+                                       "description" : "The VM configuration.",
                                        "properties" : {
                                           "acpi" : {
                                              "default" : 1,
@@ -9199,6 +10374,16 @@ var pveapi = [
                                                    "description" : "Run fstrim after cloning/moving a disk.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
+                                                },
+                                                "type" : {
+                                                   "default" : "virtio",
+                                                   "description" : "Select the agent type",
+                                                   "enum" : [
+                                                      "virtio",
+                                                      "isa"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
                                                 }
                                              },
                                              "optional" : 1,
@@ -9321,81 +10506,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",
-                                                      "Cascadelake-Server",
-                                                      "Conroe",
-                                                      "core2duo",
-                                                      "coreduo",
-                                                      "EPYC",
-                                                      "EPYC-IBPB",
-                                                      "Haswell",
-                                                      "Haswell-IBRS",
-                                                      "Haswell-noTSX",
-                                                      "Haswell-noTSX-IBRS",
-                                                      "host",
-                                                      "IvyBridge",
-                                                      "IvyBridge-IBRS",
-                                                      "KnightsMill",
-                                                      "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, md-clear, hv-tlbflush, hv-evmcs, aes.",
-                                                   "format_description" : "+FLAG[;-FLAG...]",
-                                                   "optional" : 1,
-                                                   "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb|md-clear|hv-tlbflush|hv-evmcs|aes))(;(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb|md-clear|hv-tlbflush|hv-evmcs|aes)))*)",
-                                                   "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"
                                           },
@@ -9912,7 +11023,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" : {
@@ -9955,6 +11066,7 @@ var pveapi = [
                                                    "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_description" : "bridge",
                                                    "optional" : 1,
+                                                   "pattern" : "[-_.\\w\\d]+",
                                                    "type" : "string"
                                                 },
                                                 "e1000" : {
@@ -10143,7 +11255,7 @@ var pveapi = [
                                              ],
                                              "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\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).",
@@ -10164,6 +11276,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 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" : {
@@ -10481,7 +11622,7 @@ 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.",
@@ -10920,6 +12061,12 @@ var pveapi = [
                                              "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)."
                                           },
+                                          "tags" : {
+                                             "description" : "Tags of the VM. This is only meta information.",
+                                             "format" : "pve-tag-list",
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
                                           "tdf" : {
                                              "default" : 0,
                                              "description" : "Enable/disable time drift fix.",
@@ -10934,7 +12081,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" : {
+                                                "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"
                                           },
@@ -11338,6 +12496,7 @@ var pveapi = [
                                     }
                                  },
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Set virtual machine options (asynchrounous API).",
                                     "method" : "POST",
                                     "name" : "update_vm_async",
@@ -11365,11 +12524,21 @@ var pveapi = [
                                                    "description" : "Run fstrim after cloning/moving a disk.",
                                                    "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.",
@@ -11504,84 +12673,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",
-                                                      "Cascadelake-Server",
-                                                      "Conroe",
-                                                      "core2duo",
-                                                      "coreduo",
-                                                      "EPYC",
-                                                      "EPYC-IBPB",
-                                                      "Haswell",
-                                                      "Haswell-IBRS",
-                                                      "Haswell-noTSX",
-                                                      "Haswell-noTSX-IBRS",
-                                                      "host",
-                                                      "IvyBridge",
-                                                      "IvyBridge-IBRS",
-                                                      "KnightsMill",
-                                                      "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, md-clear, hv-tlbflush, hv-evmcs, aes.",
-                                                   "format_description" : "+FLAG[;-FLAG...]",
-                                                   "optional" : 1,
-                                                   "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb|md-clear|hv-tlbflush|hv-evmcs|aes))(;(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb|md-clear|hv-tlbflush|hv-evmcs|aes)))*)",
-                                                   "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" : "<string>"
                                           },
                                           "cpulimit" : {
                                              "default" : 0,
@@ -12126,7 +13221,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" : {
@@ -12174,6 +13269,7 @@ var pveapi = [
                                                    "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_description" : "bridge",
                                                    "optional" : 1,
+                                                   "pattern" : "[-_.\\w\\d]+",
                                                    "type" : "string"
                                                 },
                                                 "e1000" : {
@@ -12372,7 +13468,7 @@ var pveapi = [
                                              ],
                                              "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\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).",
@@ -12402,6 +13498,36 @@ 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 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).",
                                              "format" : {
@@ -12720,7 +13846,7 @@ var pveapi = [
                                              "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>]"
                                           },
                                           "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.",
@@ -13174,6 +14300,13 @@ var pveapi = [
                                              "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)."
                                           },
+                                          "tags" : {
+                                             "description" : "Tags of the VM. This is only meta information.",
+                                             "format" : "pve-tag-list",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
                                           "tdf" : {
                                              "default" : 0,
                                              "description" : "Enable/disable time drift fix.",
@@ -13190,10 +14323,21 @@ 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).",
@@ -13630,6 +14774,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",
@@ -13657,11 +14802,21 @@ var pveapi = [
                                                    "description" : "Run fstrim after cloning/moving a disk.",
                                                    "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.",
@@ -13788,84 +14943,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",
-                                                      "Cascadelake-Server",
-                                                      "Conroe",
-                                                      "core2duo",
-                                                      "coreduo",
-                                                      "EPYC",
-                                                      "EPYC-IBPB",
-                                                      "Haswell",
-                                                      "Haswell-IBRS",
-                                                      "Haswell-noTSX",
-                                                      "Haswell-noTSX-IBRS",
-                                                      "host",
-                                                      "IvyBridge",
-                                                      "IvyBridge-IBRS",
-                                                      "KnightsMill",
-                                                      "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, md-clear, hv-tlbflush, hv-evmcs, aes.",
-                                                   "format_description" : "+FLAG[;-FLAG...]",
-                                                   "optional" : 1,
-                                                   "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb|md-clear|hv-tlbflush|hv-evmcs|aes))(;(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb|md-clear|hv-tlbflush|hv-evmcs|aes)))*)",
-                                                   "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" : "<string>"
                                           },
                                           "cpulimit" : {
                                              "default" : 0,
@@ -14410,7 +15491,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" : {
@@ -14458,6 +15539,7 @@ var pveapi = [
                                                    "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_description" : "bridge",
                                                    "optional" : 1,
+                                                   "pattern" : "[-_.\\w\\d]+",
                                                    "type" : "string"
                                                 },
                                                 "e1000" : {
@@ -14656,7 +15738,7 @@ var pveapi = [
                                              ],
                                              "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\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).",
@@ -14686,6 +15768,36 @@ 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 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).",
                                              "format" : {
@@ -15004,7 +16116,7 @@ var pveapi = [
                                              "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>]"
                                           },
                                           "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.",
@@ -15458,6 +16570,13 @@ var pveapi = [
                                              "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)."
                                           },
+                                          "tags" : {
+                                             "description" : "Tags of the VM. This is only meta information.",
+                                             "format" : "pve-tag-list",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
                                           "tdf" : {
                                              "default" : 0,
                                              "description" : "Enable/disable time drift fix.",
@@ -15474,10 +16593,21 @@ 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).",
@@ -15920,7 +17050,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" : {
@@ -15989,6 +17120,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "PUT" : {
+                                    "allowtoken" : 1,
                                     "description" : "Unlink/delete disk images.",
                                     "method" : "PUT",
                                     "name" : "unlink",
@@ -16045,6 +17177,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Creates a TCP VNC proxy connections.",
                                     "method" : "POST",
                                     "name" : "vncproxy",
@@ -16111,6 +17244,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Creates a TCP proxy connections.",
                                     "method" : "POST",
                                     "name" : "termproxy",
@@ -16179,6 +17313,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Opens a weksocket for VNC traffic.",
                                     "method" : "GET",
                                     "name" : "vncwebsocket",
@@ -16240,6 +17375,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Returns a SPICE configuration to connect to the VM.",
                                     "method" : "POST",
                                     "name" : "spiceproxy",
@@ -16311,6 +17447,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Get virtual machine status.",
                                           "method" : "GET",
                                           "name" : "vm_status",
@@ -16404,6 +17541,11 @@ var pveapi = [
                                                    ],
                                                    "type" : "string"
                                                 },
+                                                "tags" : {
+                                                   "description" : "The current configured tags, if any",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
                                                 "uptime" : {
                                                    "description" : "Uptime.",
                                                    "optional" : 1,
@@ -16428,17 +17570,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" : {
@@ -16484,11 +17633,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" : "storagepair-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",
@@ -16521,6 +17679,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",
@@ -16592,6 +17751,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Reset virtual machine.",
                                           "method" : "POST",
                                           "name" : "vm_reset",
@@ -16642,6 +17802,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",
@@ -16713,6 +17874,7 @@ 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",
@@ -16764,6 +17926,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Suspend virtual machine.",
                                           "method" : "POST",
                                           "name" : "vm_suspend",
@@ -16813,7 +17976,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",
@@ -16829,6 +17993,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Resume virtual machine.",
                                           "method" : "POST",
                                           "name" : "vm_resume",
@@ -16884,6 +18049,7 @@ var pveapi = [
                               ],
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Directory index",
                                     "method" : "GET",
                                     "name" : "vmcmdidx",
@@ -16935,6 +18101,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "PUT" : {
+                                    "allowtoken" : 1,
                                     "description" : "Send key event to virtual machine.",
                                     "method" : "PUT",
                                     "name" : "vm_sendkey",
@@ -16990,6 +18157,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Check if feature for virtual machine is available.",
                                     "method" : "GET",
                                     "name" : "vm_feature",
@@ -17062,6 +18230,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Create a copy of virtual machine/template.",
                                     "method" : "POST",
                                     "name" : "clone_vm",
@@ -17202,6 +18371,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Move volume to different storage.",
                                     "method" : "POST",
                                     "name" : "move_vm_disk",
@@ -17251,6 +18421,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",
@@ -17343,6 +18530,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Get preconditions for migration.",
                                     "method" : "GET",
                                     "name" : "migrate_vm_precondition",
@@ -17410,6 +18598,7 @@ var pveapi = [
                                     }
                                  },
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Migrate virtual machine. Creates a new migration task.",
                                     "method" : "POST",
                                     "name" : "migrate_vm",
@@ -17465,8 +18654,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" : "storagepair-list",
                                              "optional" : 1,
                                              "type" : "string",
                                              "typetext" : "<string>"
@@ -17510,6 +18699,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Execute Qemu monitor commands.",
                                     "method" : "POST",
                                     "name" : "monitor",
@@ -17560,6 +18750,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "PUT" : {
+                                    "allowtoken" : 1,
                                     "description" : "Extend volume size.",
                                     "method" : "PUT",
                                     "name" : "resize_vm",
@@ -17594,6 +18785,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",
@@ -17673,6 +18881,7 @@ var pveapi = [
                                        {
                                           "info" : {
                                              "GET" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Get snapshot configuration",
                                                 "method" : "GET",
                                                 "name" : "get_snapshot_config",
@@ -17707,7 +18916,8 @@ var pveapi = [
                                                       "/vms/{vmid}",
                                                       [
                                                          "VM.Snapshot",
-                                                         "VM.Snapshot.Rollback"
+                                                         "VM.Snapshot.Rollback",
+                                                         "VM.Audit"
                                                       ],
                                                       "any",
                                                       1
@@ -17719,6 +18929,7 @@ var pveapi = [
                                                 }
                                              },
                                              "PUT" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Update snapshot metadata.",
                                                 "method" : "PUT",
                                                 "name" : "update_snapshot_config",
@@ -17776,6 +18987,7 @@ var pveapi = [
                                        {
                                           "info" : {
                                              "POST" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Rollback VM state to specified snapshot.",
                                                 "method" : "POST",
                                                 "name" : "rollback",
@@ -17831,6 +19043,7 @@ var pveapi = [
                                     ],
                                     "info" : {
                                        "DELETE" : {
+                                          "allowtoken" : 1,
                                           "description" : "Delete a VM snapshot.",
                                           "method" : "DELETE",
                                           "name" : "delsnapshot",
@@ -17882,6 +19095,7 @@ var pveapi = [
                                           }
                                        },
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "",
                                           "method" : "GET",
                                           "name" : "snapshot_cmd_idx",
@@ -17935,6 +19149,7 @@ var pveapi = [
                               ],
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "List all snapshots.",
                                     "method" : "GET",
                                     "name" : "snapshot_list",
@@ -18007,6 +19222,7 @@ var pveapi = [
                                     }
                                  },
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Snapshot a VM.",
                                     "method" : "POST",
                                     "name" : "snapshot",
@@ -18071,6 +19287,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Create a Template.",
                                     "method" : "POST",
                                     "name" : "template",
@@ -18098,6 +19315,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",
@@ -18166,6 +19400,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Get automatically generated cloudinit config.",
                                           "method" : "GET",
                                           "name" : "cloudinit_generated_config_dump",
@@ -18223,6 +19458,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "Destroy the vm (also delete all used/owned volumes).",
                               "method" : "DELETE",
                               "name" : "destroy_vm",
@@ -18272,6 +19508,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Directory index",
                               "method" : "GET",
                               "name" : "vmdiridx",
@@ -18323,6 +19560,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Virtual machine index (per node).",
                         "method" : "GET",
                         "name" : "vmlist",
@@ -18397,6 +19635,11 @@ var pveapi = [
                                     ],
                                     "type" : "string"
                                  },
+                                 "tags" : {
+                                    "description" : "The current configured tags, if any",
+                                    "optional" : 1,
+                                    "type" : "string"
+                                 },
                                  "uptime" : {
                                     "description" : "Uptime.",
                                     "optional" : 1,
@@ -18422,6 +19665,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Create or restore a virtual machine.",
                         "method" : "POST",
                         "name" : "create_vm",
@@ -18449,11 +19693,21 @@ var pveapi = [
                                        "description" : "Run fstrim after cloning/moving a disk.",
                                        "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.",
@@ -18465,7 +19719,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",
@@ -18595,84 +19849,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",
-                                          "Cascadelake-Server",
-                                          "Conroe",
-                                          "core2duo",
-                                          "coreduo",
-                                          "EPYC",
-                                          "EPYC-IBPB",
-                                          "Haswell",
-                                          "Haswell-IBRS",
-                                          "Haswell-noTSX",
-                                          "Haswell-noTSX-IBRS",
-                                          "host",
-                                          "IvyBridge",
-                                          "IvyBridge-IBRS",
-                                          "KnightsMill",
-                                          "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, md-clear, hv-tlbflush, hv-evmcs, aes.",
-                                       "format_description" : "+FLAG[;-FLAG...]",
-                                       "optional" : 1,
-                                       "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb|md-clear|hv-tlbflush|hv-evmcs|aes))(;(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb|md-clear|hv-tlbflush|hv-evmcs|aes)))*)",
-                                       "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" : "<string>"
                               },
                               "cpulimit" : {
                                  "default" : 0,
@@ -19203,7 +20383,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" : {
@@ -19251,6 +20431,7 @@ var pveapi = [
                                        "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_description" : "bridge",
                                        "optional" : 1,
+                                       "pattern" : "[-_.\\w\\d]+",
                                        "type" : "string"
                                     },
                                     "e1000" : {
@@ -19449,7 +20630,7 @@ var pveapi = [
                                  ],
                                  "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\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).",
@@ -19479,6 +20660,36 @@ 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 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).",
                                  "format" : {
@@ -19797,7 +21008,7 @@ var pveapi = [
                                  "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>]"
                               },
                               "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.",
@@ -20259,6 +21470,13 @@ var pveapi = [
                                  "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)."
                               },
+                              "tags" : {
+                                 "description" : "Tags of the VM. This is only meta information.",
+                                 "format" : "pve-tag-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
                               "tdf" : {
                                  "default" : 0,
                                  "description" : "Enable/disable time drift fix.",
@@ -20282,10 +21500,21 @@ 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).",
@@ -20719,6 +21948,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Get container configuration.",
                                     "method" : "GET",
                                     "name" : "vm_config",
@@ -20831,6 +22061,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.",
@@ -20843,6 +22079,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;...",
@@ -21182,6 +22424,12 @@ 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.",
@@ -21204,7 +22452,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"
                                           }
@@ -21213,6 +22469,7 @@ var pveapi = [
                                     }
                                  },
                                  "PUT" : {
+                                    "allowtoken" : 1,
                                     "description" : "Set container options.",
                                     "method" : "PUT",
                                     "name" : "update_vm",
@@ -21298,6 +22555,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.",
@@ -21310,6 +22573,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;...",
@@ -21326,7 +22595,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.",
@@ -21663,6 +22932,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.",
@@ -21688,10 +22964,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.",
@@ -21734,6 +23018,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Get virtual machine status.",
                                           "method" : "GET",
                                           "name" : "vm_status",
@@ -21813,6 +23098,11 @@ var pveapi = [
                                                    ],
                                                    "type" : "string"
                                                 },
+                                                "tags" : {
+                                                   "description" : "The current configured tags, if any.",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
                                                 "uptime" : {
                                                    "description" : "Uptime.",
                                                    "optional" : 1,
@@ -21837,6 +23127,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Start the container.",
                                           "method" : "POST",
                                           "name" : "vm_start",
@@ -21887,6 +23178,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",
@@ -21937,6 +23229,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",
@@ -21996,6 +23289,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Suspend the container.",
                                           "method" : "POST",
                                           "name" : "vm_suspend",
@@ -22040,6 +23334,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Resume the container.",
                                           "method" : "POST",
                                           "name" : "vm_resume",
@@ -22080,10 +23375,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",
@@ -22139,6 +23487,7 @@ var pveapi = [
                                        {
                                           "info" : {
                                              "POST" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Rollback LXC state to specified snapshot.",
                                                 "method" : "POST",
                                                 "name" : "rollback",
@@ -22194,6 +23543,7 @@ var pveapi = [
                                        {
                                           "info" : {
                                              "GET" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Get snapshot configuration",
                                                 "method" : "GET",
                                                 "name" : "get_snapshot_config",
@@ -22228,7 +23578,8 @@ var pveapi = [
                                                       "/vms/{vmid}",
                                                       [
                                                          "VM.Snapshot",
-                                                         "VM.Snapshot.Rollback"
+                                                         "VM.Snapshot.Rollback",
+                                                         "VM.Audit"
                                                       ],
                                                       "any",
                                                       1
@@ -22240,6 +23591,7 @@ var pveapi = [
                                                 }
                                              },
                                              "PUT" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Update snapshot metadata.",
                                                 "method" : "PUT",
                                                 "name" : "update_snapshot_config",
@@ -22297,6 +23649,7 @@ var pveapi = [
                                     ],
                                     "info" : {
                                        "DELETE" : {
+                                          "allowtoken" : 1,
                                           "description" : "Delete a LXC snapshot.",
                                           "method" : "DELETE",
                                           "name" : "delsnapshot",
@@ -22348,6 +23701,7 @@ var pveapi = [
                                           }
                                        },
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "",
                                           "method" : "GET",
                                           "name" : "snapshot_cmd_idx",
@@ -22401,6 +23755,7 @@ var pveapi = [
                               ],
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "List all snapshots.",
                                     "method" : "GET",
                                     "name" : "list",
@@ -22468,6 +23823,7 @@ var pveapi = [
                                     }
                                  },
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Snapshot a container.",
                                     "method" : "POST",
                                     "name" : "snapshot",
@@ -22530,6 +23886,7 @@ var pveapi = [
                                        {
                                           "info" : {
                                              "DELETE" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Delete rule.",
                                                 "method" : "DELETE",
                                                 "name" : "delete_rule",
@@ -22581,6 +23938,7 @@ var pveapi = [
                                                 }
                                              },
                                              "GET" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Get single rule data.",
                                                 "method" : "GET",
                                                 "name" : "get_rule",
@@ -22691,6 +24049,7 @@ var pveapi = [
                                                 }
                                              },
                                              "PUT" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Modify rule data.",
                                                 "method" : "PUT",
                                                 "name" : "update_rule",
@@ -22861,6 +24220,7 @@ var pveapi = [
                                     ],
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "List rules.",
                                           "method" : "GET",
                                           "name" : "get_rules",
@@ -22911,6 +24271,7 @@ var pveapi = [
                                           }
                                        },
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Create new rule.",
                                           "method" : "POST",
                                           "name" : "create_rule",
@@ -23069,6 +24430,7 @@ var pveapi = [
                                        {
                                           "info" : {
                                              "DELETE" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Remove IP or Network alias.",
                                                 "method" : "DELETE",
                                                 "name" : "remove_alias",
@@ -23119,6 +24481,7 @@ var pveapi = [
                                                 }
                                              },
                                              "GET" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Read alias.",
                                                 "method" : "GET",
                                                 "name" : "read_alias",
@@ -23161,6 +24524,7 @@ var pveapi = [
                                                 }
                                              },
                                              "PUT" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Update IP or Network alias.",
                                                 "method" : "PUT",
                                                 "name" : "update_alias",
@@ -23237,6 +24601,7 @@ var pveapi = [
                                     ],
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "List aliases",
                                           "method" : "GET",
                                           "name" : "get_aliases",
@@ -23299,6 +24664,7 @@ var pveapi = [
                                           }
                                        },
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Create IP or Network Alias.",
                                           "method" : "POST",
                                           "name" : "create_alias",
@@ -23364,6 +24730,7 @@ var pveapi = [
                                              {
                                                 "info" : {
                                                    "DELETE" : {
+                                                      "allowtoken" : 1,
                                                       "description" : "Remove IP or Network from IPSet.",
                                                       "method" : "DELETE",
                                                       "name" : "remove_ip",
@@ -23420,6 +24787,7 @@ var pveapi = [
                                                       }
                                                    },
                                                    "GET" : {
+                                                      "allowtoken" : 1,
                                                       "description" : "Read IP or Network settings from IPSet.",
                                                       "method" : "GET",
                                                       "name" : "read_ip",
@@ -23469,6 +24837,7 @@ var pveapi = [
                                                       }
                                                    },
                                                    "PUT" : {
+                                                      "allowtoken" : 1,
                                                       "description" : "Update IP or Network settings",
                                                       "method" : "PUT",
                                                       "name" : "update_ip",
@@ -23542,6 +24911,7 @@ var pveapi = [
                                           ],
                                           "info" : {
                                              "DELETE" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Delete IPSet",
                                                 "method" : "DELETE",
                                                 "name" : "delete_ipset",
@@ -23585,6 +24955,7 @@ var pveapi = [
                                                 }
                                              },
                                              "GET" : {
+                                                "allowtoken" : 1,
                                                 "description" : "List IPSet content",
                                                 "method" : "GET",
                                                 "name" : "get_ipset",
@@ -23655,6 +25026,7 @@ var pveapi = [
                                                 }
                                              },
                                              "POST" : {
+                                                "allowtoken" : 1,
                                                 "description" : "Add IP or Network to IPSet.",
                                                 "method" : "POST",
                                                 "name" : "create_ip",
@@ -23721,6 +25093,7 @@ var pveapi = [
                                     ],
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "List IPSets",
                                           "method" : "GET",
                                           "name" : "ipset_index",
@@ -23784,6 +25157,7 @@ var pveapi = [
                                           }
                                        },
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Create new IPSet",
                                           "method" : "POST",
                                           "name" : "create_ipset",
@@ -23854,6 +25228,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Get VM firewall options.",
                                           "method" : "GET",
                                           "name" : "get_options",
@@ -23888,11 +25263,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"
@@ -23935,12 +25312,14 @@ var pveapi = [
                                                    "type" : "string"
                                                 },
                                                 "macfilter" : {
+                                                   "default" : 0,
                                                    "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"
                                                 },
@@ -23974,6 +25353,7 @@ var pveapi = [
                                           }
                                        },
                                        "PUT" : {
+                                          "allowtoken" : 1,
                                           "description" : "Set Firewall options.",
                                           "method" : "PUT",
                                           "name" : "set_options",
@@ -23988,6 +25368,7 @@ var pveapi = [
                                                    "typetext" : "<string>"
                                                 },
                                                 "dhcp" : {
+                                                   "default" : 0,
                                                    "description" : "Enable DHCP.",
                                                    "optional" : 1,
                                                    "type" : "boolean",
@@ -24001,6 +25382,7 @@ var pveapi = [
                                                    "typetext" : "<string>"
                                                 },
                                                 "enable" : {
+                                                   "default" : 0,
                                                    "description" : "Enable/disable firewall rules.",
                                                    "optional" : 1,
                                                    "type" : "boolean",
@@ -24045,13 +25427,15 @@ var pveapi = [
                                                    "type" : "string"
                                                 },
                                                 "macfilter" : {
+                                                   "default" : 0,
                                                    "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>"
@@ -24120,6 +25504,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Read firewall log",
                                           "method" : "GET",
                                           "name" : "log",
@@ -24189,6 +25574,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
                                           "method" : "GET",
                                           "name" : "refs",
@@ -24259,6 +25645,7 @@ var pveapi = [
                               ],
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Directory index.",
                                     "method" : "GET",
                                     "name" : "index",
@@ -24305,6 +25692,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read VM RRD statistics (returns PNG)",
                                     "method" : "GET",
                                     "name" : "rrd",
@@ -24379,6 +25767,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read VM RRD statistics",
                                     "method" : "GET",
                                     "name" : "rrddata",
@@ -24446,6 +25835,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Creates a TCP VNC proxy connections.",
                                     "method" : "POST",
                                     "name" : "vncproxy",
@@ -24528,6 +25918,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Creates a TCP proxy connection.",
                                     "method" : "POST",
                                     "name" : "termproxy",
@@ -24585,6 +25976,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Opens a weksocket for VNC traffic.",
                                     "method" : "GET",
                                     "name" : "vncwebsocket",
@@ -24646,6 +26038,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Returns a SPICE configuration to connect to the CT.",
                                     "method" : "POST",
                                     "name" : "spiceproxy",
@@ -24715,6 +26108,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Migrate the container to another node. Creates a new migration task.",
                                     "method" : "POST",
                                     "name" : "migrate_vm",
@@ -24799,6 +26193,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Check if feature for virtual machine is available.",
                                     "method" : "GET",
                                     "name" : "vm_feature",
@@ -24865,6 +26260,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Create a Template.",
                                     "method" : "POST",
                                     "name" : "template",
@@ -24910,6 +26306,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Create a container clone/copy",
                                     "method" : "POST",
                                     "name" : "clone_vm",
@@ -25040,6 +26437,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "PUT" : {
+                                    "allowtoken" : 1,
                                     "description" : "Resize a container mount point.",
                                     "method" : "PUT",
                                     "name" : "resize_vm",
@@ -25362,6 +26760,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Move a rootfs-/mp-volume to a different storage",
                                     "method" : "POST",
                                     "name" : "move_volume",
@@ -25708,6 +27107,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Get container configuration, including pending changes.",
                                     "method" : "GET",
                                     "name" : "vm_pending",
@@ -25777,12 +27177,20 @@ var pveapi = [
                         ],
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "Destroy the container (also delete all uses files).",
                               "method" : "DELETE",
                               "name" : "destroy_vm",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
+                                    "force" : {
+                                       "default" : 0,
+                                       "description" : "Force destroy, even if running.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
@@ -25790,7 +27198,8 @@ var pveapi = [
                                        "typetext" : "<string>"
                                     },
                                     "purge" : {
-                                       "description" : "Remove vmid from backup cron jobs.",
+                                       "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>"
@@ -25820,6 +27229,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Directory index",
                               "method" : "GET",
                               "name" : "vmdiridx",
@@ -25871,6 +27281,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "LXC container index (per node).",
                         "method" : "GET",
                         "name" : "vmlist",
@@ -25935,6 +27346,11 @@ var pveapi = [
                                     ],
                                     "type" : "string"
                                  },
+                                 "tags" : {
+                                    "description" : "The current configured tags, if any.",
+                                    "optional" : 1,
+                                    "type" : "string"
+                                 },
                                  "uptime" : {
                                     "description" : "Uptime.",
                                     "optional" : 1,
@@ -25960,6 +27376,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Create or restore a container.",
                         "method" : "POST",
                         "name" : "create_vm",
@@ -26039,6 +27456,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.",
@@ -26051,6 +27474,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;...",
@@ -26067,7 +27496,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.",
@@ -26456,6 +27885,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.",
@@ -26488,10 +27924,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.",
@@ -26526,6 +27970,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "ceph osd in",
                                           "method" : "POST",
                                           "name" : "in",
@@ -26568,6 +28013,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "ceph osd out",
                                           "method" : "POST",
                                           "name" : "out",
@@ -26610,6 +28056,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Instruct the OSD to scrub.",
                                           "method" : "POST",
                                           "name" : "scrub",
@@ -26659,6 +28106,7 @@ var pveapi = [
                               ],
                               "info" : {
                                  "DELETE" : {
+                                    "allowtoken" : 1,
                                     "description" : "Destroy OSD",
                                     "method" : "DELETE",
                                     "name" : "destroyosd",
@@ -26699,6 +28147,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get Ceph osd list/tree.",
                               "method" : "GET",
                               "name" : "index",
@@ -26732,6 +28181,7 @@ var pveapi = [
                               }
                            },
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Create OSD",
                               "method" : "POST",
                               "name" : "createosd",
@@ -26806,6 +28256,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "DELETE" : {
+                                    "allowtoken" : 1,
                                     "description" : "Destroy Ceph Metadata Server",
                                     "method" : "DELETE",
                                     "name" : "destroymds",
@@ -26841,6 +28292,7 @@ var pveapi = [
                                     }
                                  },
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Create Ceph Metadata Server (MDS)",
                                     "method" : "POST",
                                     "name" : "createmds",
@@ -26857,6 +28309,7 @@ var pveapi = [
                                           "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"
@@ -26892,6 +28345,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "MDS directory index.",
                               "method" : "GET",
                               "name" : "index",
@@ -26969,6 +28423,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "DELETE" : {
+                                    "allowtoken" : 1,
                                     "description" : "Destroy Ceph Manager.",
                                     "method" : "DELETE",
                                     "name" : "destroymgr",
@@ -27004,6 +28459,7 @@ var pveapi = [
                                     }
                                  },
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Create Ceph Manager",
                                     "method" : "POST",
                                     "name" : "createmgr",
@@ -27012,6 +28468,7 @@ var pveapi = [
                                        "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"
@@ -27047,6 +28504,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "MGR directory index.",
                               "method" : "GET",
                               "name" : "index",
@@ -27115,6 +28573,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "DELETE" : {
+                                    "allowtoken" : 1,
                                     "description" : "Destroy Ceph Monitor and Manager.",
                                     "method" : "DELETE",
                                     "name" : "destroymon",
@@ -27150,6 +28609,7 @@ var pveapi = [
                                     }
                                  },
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Create Ceph Monitor and Manager",
                                     "method" : "POST",
                                     "name" : "createmon",
@@ -27165,6 +28625,7 @@ var pveapi = [
                                           },
                                           "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"
@@ -27200,6 +28661,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get Ceph monitor list.",
                               "method" : "GET",
                               "name" : "listmon",
@@ -27264,6 +28726,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Create a Ceph filesystem",
                                     "method" : "POST",
                                     "name" : "createfs",
@@ -27324,6 +28787,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Directory index.",
                               "method" : "GET",
                               "name" : "index",
@@ -27387,6 +28851,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List local disks.",
                               "method" : "GET",
                               "name" : "disks",
@@ -27469,6 +28934,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get Ceph configuration.",
                               "method" : "GET",
                               "name" : "config",
@@ -27508,6 +28974,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get Ceph configuration database.",
                               "method" : "GET",
                               "name" : "configdb",
@@ -27571,6 +29038,7 @@ var pveapi = [
                      {
                         "info" : {
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Create initial ceph default configuration and setup symlinks.",
                               "method" : "POST",
                               "name" : "init",
@@ -27659,6 +29127,7 @@ var pveapi = [
                      {
                         "info" : {
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Stop ceph services.",
                               "method" : "POST",
                               "name" : "stop",
@@ -27675,7 +29144,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"
                                     }
                                  }
@@ -27703,6 +29172,7 @@ var pveapi = [
                      {
                         "info" : {
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Start ceph services.",
                               "method" : "POST",
                               "name" : "start",
@@ -27719,7 +29189,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"
                                     }
                                  }
@@ -27747,6 +29217,7 @@ var pveapi = [
                      {
                         "info" : {
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Restart ceph services.",
                               "method" : "POST",
                               "name" : "restart",
@@ -27763,7 +29234,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"
                                     }
                                  }
@@ -27791,6 +29262,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get ceph status.",
                               "method" : "GET",
                               "name" : "status",
@@ -27833,6 +29305,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "DELETE" : {
+                                    "allowtoken" : 1,
                                     "description" : "Destroy pool",
                                     "method" : "DELETE",
                                     "name" : "destroypool",
@@ -27889,6 +29362,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List all pools.",
                               "method" : "GET",
                               "name" : "lspools",
@@ -27942,6 +29416,7 @@ var pveapi = [
                               }
                            },
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Create POOL",
                               "method" : "POST",
                               "name" : "createpool",
@@ -28035,6 +29510,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "DELETE" : {
+                                    "allowtoken" : 1,
                                     "description" : "Unset a ceph flag",
                                     "method" : "DELETE",
                                     "name" : "unset_flag",
@@ -28082,6 +29558,7 @@ var pveapi = [
                                     }
                                  },
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Set a specific ceph flag",
                                     "method" : "POST",
                                     "name" : "set_flag",
@@ -28136,6 +29613,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "get all set ceph flags",
                               "method" : "GET",
                               "name" : "get_flags",
@@ -28173,6 +29651,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get OSD crush map",
                               "method" : "GET",
                               "name" : "crush",
@@ -28213,6 +29692,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Read ceph log",
                               "method" : "GET",
                               "name" : "log",
@@ -28275,6 +29755,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List ceph rules.",
                               "method" : "GET",
                               "name" : "rules",
@@ -28325,6 +29806,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Directory index.",
                         "method" : "GET",
                         "name" : "index",
@@ -28375,6 +29857,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Extract configuration from vzdump backup archive.",
                               "method" : "GET",
                               "name" : "extractconfig",
@@ -28412,6 +29895,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Create backup.",
                         "method" : "POST",
                         "name" : "vzdump",
@@ -28440,7 +29924,8 @@ var pveapi = [
                                     "0",
                                     "1",
                                     "gzip",
-                                    "lzo"
+                                    "lzo",
+                                    "zstd"
                                  ],
                                  "optional" : 1,
                                  "type" : "string"
@@ -28613,6 +30098,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>"
                               }
                            }
                         },
@@ -28638,6 +30130,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read service properties",
                                     "method" : "GET",
                                     "name" : "service_state",
@@ -28697,6 +30190,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Start service.",
                                     "method" : "POST",
                                     "name" : "service_start",
@@ -28756,6 +30250,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Stop service.",
                                     "method" : "POST",
                                     "name" : "service_stop",
@@ -28815,6 +30310,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Restart service.",
                                     "method" : "POST",
                                     "name" : "service_restart",
@@ -28874,6 +30370,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Reload service.",
                                     "method" : "POST",
                                     "name" : "service_reload",
@@ -28933,6 +30430,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Directory index",
                               "method" : "GET",
                               "name" : "srvcmdidx",
@@ -29004,6 +30502,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Service list.",
                         "method" : "GET",
                         "name" : "index",
@@ -29051,6 +30550,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read subscription info.",
                         "method" : "GET",
                         "name" : "get",
@@ -29074,6 +30574,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Update subscription info.",
                         "method" : "POST",
                         "name" : "update",
@@ -29111,6 +30612,7 @@ var pveapi = [
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Set subscription key.",
                         "method" : "PUT",
                         "name" : "set",
@@ -29156,6 +30658,7 @@ var pveapi = [
                      {
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "Delete network device configuration",
                               "method" : "DELETE",
                               "name" : "delete_network",
@@ -29194,6 +30697,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Read network device configuration",
                               "method" : "GET",
                               "name" : "network_config",
@@ -29239,6 +30743,7 @@ var pveapi = [
                               }
                            },
                            "PUT" : {
+                              "allowtoken" : 1,
                               "description" : "Update network device configuration",
                               "method" : "PUT",
                               "name" : "update_network",
@@ -29267,6 +30772,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" : [
@@ -29362,6 +30874,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",
@@ -29443,6 +30963,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>"
                                     }
                                  }
                               },
@@ -29469,6 +31004,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "DELETE" : {
+                        "allowtoken" : 1,
                         "description" : "Revert network configuration changes.",
                         "method" : "DELETE",
                         "name" : "revert_network_changes",
@@ -29499,6 +31035,7 @@ var pveapi = [
                         }
                      },
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "List available networks",
                         "method" : "GET",
                         "name" : "index",
@@ -29549,6 +31086,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Create network device configuration",
                         "method" : "POST",
                         "name" : "create_network",
@@ -29577,6 +31115,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" : [
@@ -29665,6 +31210,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",
@@ -29746,6 +31299,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>"
                               }
                            }
                         },
@@ -29765,6 +31333,7 @@ var pveapi = [
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Reload network configuration",
                         "method" : "PUT",
                         "name" : "reload_network_config",
@@ -29806,6 +31375,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read task log.",
                                     "method" : "GET",
                                     "name" : "read_task_log",
@@ -29869,6 +31439,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read task status.",
                                     "method" : "GET",
                                     "name" : "read_task_status",
@@ -29917,6 +31488,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "Stop a task.",
                               "method" : "DELETE",
                               "name" : "stop_task",
@@ -29946,6 +31518,7 @@ var pveapi = [
                               }
                            },
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "",
                               "method" : "GET",
                               "name" : "upid_index",
@@ -29989,6 +31562,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read task list for one node (finished tasks).",
                         "method" : "GET",
                         "name" : "node_tasks",
@@ -30127,6 +31701,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Scan zfs pool list on local node.",
                               "method" : "GET",
                               "name" : "zfsscan",
@@ -30173,6 +31748,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Scan remote NFS server.",
                               "method" : "GET",
                               "name" : "nfsscan",
@@ -30229,6 +31805,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Scan remote CIFS server.",
                               "method" : "GET",
                               "name" : "cifsscan",
@@ -30303,6 +31880,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Scan remote GlusterFS server.",
                               "method" : "GET",
                               "name" : "glusterfsscan",
@@ -30355,6 +31933,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Scan remote iSCSI server.",
                               "method" : "GET",
                               "name" : "iscsiscan",
@@ -30411,6 +31990,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List local LVM volume groups.",
                               "method" : "GET",
                               "name" : "lvmscan",
@@ -30457,6 +32037,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List local LVM Thin Pools.",
                               "method" : "GET",
                               "name" : "lvmthinscan",
@@ -30508,6 +32089,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List local USB devices.",
                               "method" : "GET",
                               "name" : "usbscan",
@@ -30590,6 +32172,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Index of available scan methods",
                         "method" : "GET",
                         "name" : "index",
@@ -30639,6 +32222,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "List mediated device types for given PCI device.",
                                           "method" : "GET",
                                           "name" : "mdevscan",
@@ -30697,6 +32281,7 @@ var pveapi = [
                               ],
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Index of available pci methods",
                                     "method" : "GET",
                                     "name" : "pciindex",
@@ -30744,6 +32329,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List local PCI devices.",
                               "method" : "GET",
                               "name" : "pciscan",
@@ -30858,6 +32444,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Index of hardware types",
                         "method" : "GET",
                         "name" : "index",
@@ -30907,6 +32494,7 @@ var pveapi = [
                                  {
                                     "info" : {
                                        "DELETE" : {
+                                          "allowtoken" : 1,
                                           "description" : "Delete volume",
                                           "method" : "DELETE",
                                           "name" : "delete",
@@ -30953,6 +32541,7 @@ var pveapi = [
                                           }
                                        },
                                        "GET" : {
+                                          "allowtoken" : 1,
                                           "description" : "Get volume attributes",
                                           "method" : "GET",
                                           "name" : "info",
@@ -30990,6 +32579,7 @@ var pveapi = [
                                           }
                                        },
                                        "POST" : {
+                                          "allowtoken" : 1,
                                           "description" : "Copy a volume. This is experimental code - do not use.",
                                           "method" : "POST",
                                           "name" : "copy",
@@ -31042,6 +32632,7 @@ var pveapi = [
                               ],
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "List storage content.",
                                     "method" : "GET",
                                     "name" : "index",
@@ -31094,6 +32685,12 @@ var pveapi = [
                                     "returns" : {
                                        "items" : {
                                           "properties" : {
+                                             "ctime" : {
+                                                "description" : "Creation time (seconds since the UNIX Epoch).",
+                                                "minimum" : 0,
+                                                "optional" : 1,
+                                                "type" : "integer"
+                                             },
                                              "format" : {
                                                 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
                                                 "type" : "string"
@@ -31109,7 +32706,7 @@ var pveapi = [
                                                 "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"
@@ -31136,6 +32733,7 @@ var pveapi = [
                                     }
                                  },
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Allocate disk images.",
                                     "method" : "POST",
                                     "name" : "create",
@@ -31207,6 +32805,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read storage status.",
                                     "method" : "GET",
                                     "name" : "read_status",
@@ -31253,6 +32852,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read storage RRD statistics (returns PNG).",
                                     "method" : "GET",
                                     "name" : "rrd",
@@ -31330,6 +32930,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read storage RRD statistics.",
                                     "method" : "GET",
                                     "name" : "rrddata",
@@ -31400,6 +33001,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Upload templates and ISO images.",
                                     "method" : "POST",
                                     "name" : "upload",
@@ -31459,6 +33061,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "",
                               "method" : "GET",
                               "name" : "diridx",
@@ -31517,6 +33120,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get status for all datastores.",
                         "method" : "GET",
                         "name" : "index",
@@ -31650,6 +33254,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List LVM Volume Groups",
                               "method" : "GET",
                               "name" : "index",
@@ -31736,6 +33341,7 @@ var pveapi = [
                               }
                            },
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Create an LVM Volume Group",
                               "method" : "POST",
                               "name" : "create",
@@ -31792,6 +33398,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List LVM thinpools",
                               "method" : "GET",
                               "name" : "index",
@@ -31850,6 +33457,7 @@ var pveapi = [
                               }
                            },
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Create an LVM thinpool",
                               "method" : "POST",
                               "name" : "create",
@@ -31906,6 +33514,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "PVE Managed Directory storages.",
                               "method" : "GET",
                               "name" : "index",
@@ -31964,6 +33573,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",
@@ -32032,6 +33642,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Get details about a zpool.",
                                     "method" : "GET",
                                     "name" : "detail",
@@ -32140,6 +33751,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List Zpools.",
                               "method" : "GET",
                               "name" : "index",
@@ -32212,6 +33824,7 @@ var pveapi = [
                               }
                            },
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Create a ZFS pool.",
                               "method" : "POST",
                               "name" : "create",
@@ -32304,6 +33917,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List local disks.",
                               "method" : "GET",
                               "name" : "list",
@@ -32402,6 +34016,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get SMART Health of a disk.",
                               "method" : "GET",
                               "name" : "smart",
@@ -32470,6 +34085,7 @@ var pveapi = [
                      {
                         "info" : {
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Initialize Disk with GPT",
                               "method" : "POST",
                               "name" : "initgpt",
@@ -32519,6 +34135,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Node index.",
                         "method" : "GET",
                         "name" : "index",
@@ -32561,6 +34178,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List available updates.",
                               "method" : "GET",
                               "name" : "list_updates",
@@ -32595,6 +34213,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",
@@ -32646,6 +34265,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get package changelogs.",
                               "method" : "GET",
                               "name" : "changelog",
@@ -32693,6 +34313,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get package information for important Proxmox packages.",
                               "method" : "GET",
                               "name" : "versions",
@@ -32733,6 +34354,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Directory index for apt (Advanced Package Tool).",
                         "method" : "GET",
                         "name" : "index",
@@ -32780,6 +34402,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "DELETE" : {
+                                    "allowtoken" : 1,
                                     "description" : "Delete rule.",
                                     "method" : "DELETE",
                                     "name" : "delete_rule",
@@ -32824,6 +34447,7 @@ var pveapi = [
                                     }
                                  },
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Get single rule data.",
                                     "method" : "GET",
                                     "name" : "get_rule",
@@ -32927,6 +34551,7 @@ var pveapi = [
                                     }
                                  },
                                  "PUT" : {
+                                    "allowtoken" : 1,
                                     "description" : "Modify rule data.",
                                     "method" : "PUT",
                                     "name" : "update_rule",
@@ -33090,6 +34715,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "List rules.",
                               "method" : "GET",
                               "name" : "get_rules",
@@ -33133,6 +34759,7 @@ var pveapi = [
                               }
                            },
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Create new rule.",
                               "method" : "POST",
                               "name" : "create_rule",
@@ -33282,6 +34909,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get host firewall options.",
                               "method" : "GET",
                               "name" : "get_options",
@@ -33352,7 +34980,8 @@ var pveapi = [
                                        "type" : "boolean"
                                     },
                                     "ndp" : {
-                                       "description" : "Enable NDP.",
+                                       "default" : 0,
+                                       "description" : "Enable NDP (Neighbor Discovery Protocol).",
                                        "optional" : 1,
                                        "type" : "boolean"
                                     },
@@ -33363,22 +34992,50 @@ 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" : [
@@ -33412,6 +35069,7 @@ var pveapi = [
                                        "type" : "string"
                                     },
                                     "tcpflags" : {
+                                       "default" : 0,
                                        "description" : "Filter illegal combinations of TCP flags.",
                                        "optional" : 1,
                                        "type" : "boolean"
@@ -33421,6 +35079,7 @@ var pveapi = [
                               }
                            },
                            "PUT" : {
+                              "allowtoken" : 1,
                               "description" : "Set Firewall options.",
                               "method" : "PUT",
                               "name" : "set_options",
@@ -33487,7 +35146,8 @@ var pveapi = [
                                        "typetext" : "<boolean>"
                                     },
                                     "ndp" : {
-                                       "description" : "Enable NDP.",
+                                       "default" : 0,
+                                       "description" : "Enable NDP (Neighbor Discovery Protocol).",
                                        "optional" : 1,
                                        "type" : "boolean",
                                        "typetext" : "<boolean>"
@@ -33500,6 +35160,7 @@ var pveapi = [
                                        "typetext" : "<boolean>"
                                     },
                                     "nf_conntrack_max" : {
+                                       "default" : 262144,
                                        "description" : "Maximum number of tracked connections.",
                                        "minimum" : 32768,
                                        "optional" : 1,
@@ -33507,12 +35168,22 @@ var pveapi = [
                                        "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",
@@ -33525,6 +35196,27 @@ var pveapi = [
                                        "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" : [
@@ -33558,6 +35250,7 @@ var pveapi = [
                                        "type" : "string"
                                     },
                                     "tcpflags" : {
+                                       "default" : 0,
                                        "description" : "Filter illegal combinations of TCP flags.",
                                        "optional" : 1,
                                        "type" : "boolean",
@@ -33588,6 +35281,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Read firewall log",
                               "method" : "GET",
                               "name" : "log",
@@ -33650,6 +35344,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Directory index.",
                         "method" : "GET",
                         "name" : "index",
@@ -33693,6 +35388,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Get replication job status.",
                                     "method" : "GET",
                                     "name" : "job_status",
@@ -33731,6 +35427,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "GET" : {
+                                    "allowtoken" : 1,
                                     "description" : "Read replication job log.",
                                     "method" : "GET",
                                     "name" : "read_job_log",
@@ -33794,6 +35491,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Schedule replication job to start as soon as possible.",
                                     "method" : "POST",
                                     "name" : "schedule_now",
@@ -33837,6 +35535,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Directory index.",
                               "method" : "GET",
                               "name" : "index",
@@ -33882,6 +35581,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "List status of all replication jobs on this node.",
                         "method" : "GET",
                         "name" : "status",
@@ -33940,6 +35640,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "DELETE" : {
+                                    "allowtoken" : 1,
                                     "description" : "Revoke existing certificate from CA.",
                                     "method" : "DELETE",
                                     "name" : "revoke_certificate",
@@ -33961,6 +35662,7 @@ var pveapi = [
                                     }
                                  },
                                  "POST" : {
+                                    "allowtoken" : 1,
                                     "description" : "Order a new certificate from ACME-compatible CA.",
                                     "method" : "POST",
                                     "name" : "new_certificate",
@@ -33989,6 +35691,7 @@ var pveapi = [
                                     }
                                  },
                                  "PUT" : {
+                                    "allowtoken" : 1,
                                     "description" : "Renew existing certificate from CA.",
                                     "method" : "PUT",
                                     "name" : "renew_certificate",
@@ -34024,6 +35727,7 @@ var pveapi = [
                         ],
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "ACME index.",
                               "method" : "GET",
                               "name" : "index",
@@ -34063,6 +35767,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get information about node's certificates.",
                               "method" : "GET",
                               "name" : "info",
@@ -34155,6 +35860,7 @@ var pveapi = [
                      {
                         "info" : {
                            "DELETE" : {
+                              "allowtoken" : 1,
                               "description" : "DELETE custom certificate chain and key.",
                               "method" : "DELETE",
                               "name" : "remove_custom_cert",
@@ -34183,6 +35889,7 @@ var pveapi = [
                               }
                            },
                            "POST" : {
+                              "allowtoken" : 1,
                               "description" : "Upload or update custom certificate chain and key.",
                               "method" : "POST",
                               "name" : "upload_custom_cert",
@@ -34297,6 +36004,7 @@ var pveapi = [
                   ],
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Node index.",
                         "method" : "GET",
                         "name" : "index",
@@ -34336,6 +36044,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get node configuration options.",
                         "method" : "GET",
                         "name" : "get_config",
@@ -34347,6 +36056,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"
                               }
                            }
                         },
@@ -34365,6 +36092,7 @@ var pveapi = [
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Set node configuration options.",
                         "method" : "PUT",
                         "name" : "set_options",
@@ -34386,12 +36114,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-domain",
+                                       "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.",
@@ -34419,6 +36178,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",
@@ -34453,11 +36221,85 @@ var pveapi = [
                      {
                         "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" : {
-                                    "description" : "List transportzone content.",
+                                    "allowtoken" : 1,
+                                    "description" : "",
                                     "method" : "GET",
-                                    "name" : "index",
+                                    "name" : "diridx",
                                     "parameters" : {
                                        "additionalProperties" : 0,
                                        "properties" : {
@@ -34467,26 +36309,29 @@ var pveapi = [
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           },
-                                          "sdn" : {
-                                             "description" : "The SDN object identifier.",
-                                             "format" : "pve-sdn-id",
+                                          "zone" : {
+                                             "description" : "The SDN zone object identifier.",
+                                             "format" : "pve-sdn-zone-id",
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           }
                                        }
                                     },
-                                    "protected" : 1,
-                                    "proxyto" : "node",
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/sdn/zones/{zone}",
+                                          [
+                                             "SDN.Audit"
+                                          ],
+                                          "any",
+                                          1
+                                       ]
+                                    },
                                     "returns" : {
                                        "items" : {
                                           "properties" : {
-                                             "status" : {
-                                                "description" : "Status.",
-                                                "optional" : 1,
-                                                "type" : "string"
-                                             },
-                                             "vnet" : {
-                                                "description" : "Vnet identifier.",
+                                             "subdir" : {
                                                 "type" : "string"
                                              }
                                           },
@@ -34494,7 +36339,7 @@ var pveapi = [
                                        },
                                        "links" : [
                                           {
-                                             "href" : "{vnet}",
+                                             "href" : "{subdir}",
                                              "rel" : "child"
                                           }
                                        ],
@@ -34502,16 +36347,17 @@ var pveapi = [
                                     }
                                  }
                               },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/sdn/{sdn}/content",
-                              "text" : "content"
+                              "leaf" : 0,
+                              "path" : "/nodes/{node}/sdn/zones/{zone}",
+                              "text" : "{zone}"
                            }
                         ],
                         "info" : {
                            "GET" : {
-                              "description" : "",
+                              "allowtoken" : 1,
+                              "description" : "Get status for all zones.",
                               "method" : "GET",
-                              "name" : "diridx",
+                              "name" : "index",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
@@ -34520,19 +36366,25 @@ var pveapi = [
                                        "format" : "pve-node",
                                        "type" : "string",
                                        "typetext" : "<string>"
-                                    },
-                                    "sdn" : {
-                                       "description" : "The SDN object identifier.",
-                                       "format" : "pve-sdn-id",
-                                       "type" : "string",
-                                       "typetext" : "<string>"
                                     }
                                  }
                               },
+                              "permissions" : {
+                                 "description" : "Only list entries where you have 'SDN.Audit'",
+                                 "user" : "all"
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
                               "returns" : {
                                  "items" : {
                                     "properties" : {
-                                       "subdir" : {
+                                       "status" : {
+                                          "description" : "Status of zone",
+                                          "type" : "string"
+                                       },
+                                       "zone" : {
+                                          "description" : "The SDN zone object identifier.",
+                                          "format" : "pve-sdn-zone-id",
                                           "type" : "string"
                                        }
                                     },
@@ -34540,7 +36392,7 @@ var pveapi = [
                                  },
                                  "links" : [
                                     {
-                                       "href" : "{subdir}",
+                                       "href" : "{zone}",
                                        "rel" : "child"
                                     }
                                  ],
@@ -34549,15 +36401,16 @@ var pveapi = [
                            }
                         },
                         "leaf" : 0,
-                        "path" : "/nodes/{node}/sdn/{sdn}",
-                        "text" : "{sdn}"
+                        "path" : "/nodes/{node}/sdn/zones",
+                        "text" : "zones"
                      }
                   ],
                   "info" : {
                      "GET" : {
-                        "description" : "Get status for all transportzones.",
+                        "allowtoken" : 1,
+                        "description" : "SDN index.",
                         "method" : "GET",
-                        "name" : "index",
+                        "name" : "sdnindex",
                         "parameters" : {
                            "additionalProperties" : 0,
                            "properties" : {
@@ -34570,29 +36423,16 @@ var pveapi = [
                            }
                         },
                         "permissions" : {
-                           "description" : "Only list entries where you have 'SDN.Audit'",
                            "user" : "all"
                         },
-                        "protected" : 1,
-                        "proxyto" : "node",
                         "returns" : {
                            "items" : {
-                              "properties" : {
-                                 "sdn" : {
-                                    "description" : "The SDN object identifier.",
-                                    "format" : "pve-sdn-id",
-                                    "type" : "string"
-                                 },
-                                 "status" : {
-                                    "description" : "Status of transportzone",
-                                    "type" : "string"
-                                 }
-                              },
+                              "properties" : {},
                               "type" : "object"
                            },
                            "links" : [
                               {
-                                 "href" : "{sdn}",
+                                 "href" : "{name}",
                                  "rel" : "child"
                               }
                            ],
@@ -34607,6 +36447,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "API version details",
                         "method" : "GET",
                         "name" : "version",
@@ -34651,6 +36492,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read node status",
                         "method" : "GET",
                         "name" : "status",
@@ -34680,6 +36522,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Reboot or shutdown a node.",
                         "method" : "POST",
                         "name" : "node_cmd",
@@ -34725,6 +36568,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read tap/vm network device interface counters",
                         "method" : "GET",
                         "name" : "netstat",
@@ -34765,6 +36609,7 @@ var pveapi = [
                {
                   "info" : {
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Execute multiple commands in order.",
                         "method" : "POST",
                         "name" : "execute",
@@ -34807,6 +36652,7 @@ var pveapi = [
                {
                   "info" : {
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Try to wake a node via 'wake on LAN' network packet.",
                         "method" : "POST",
                         "name" : "wakeonlan",
@@ -34845,6 +36691,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read node RRD statistics (returns PNG)",
                         "method" : "GET",
                         "name" : "rrd",
@@ -34912,6 +36759,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read node RRD statistics",
                         "method" : "GET",
                         "name" : "rrddata",
@@ -34972,6 +36820,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read system log",
                         "method" : "GET",
                         "name" : "syslog",
@@ -35053,6 +36902,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read Journal",
                         "method" : "GET",
                         "name" : "journal",
@@ -35126,6 +36976,7 @@ var pveapi = [
                {
                   "info" : {
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Creates a VNC Shell proxy.",
                         "method" : "POST",
                         "name" : "vncshell",
@@ -35136,9 +36987,9 @@ var pveapi = [
                                  "default" : "login",
                                  "description" : "Run specific command or default to login.",
                                  "enum" : [
-                                    "login",
                                     "upgrade",
-                                    "ceph_install"
+                                    "ceph_install",
+                                    "login"
                                  ],
                                  "optional" : 1,
                                  "type" : "string"
@@ -35220,6 +37071,7 @@ var pveapi = [
                {
                   "info" : {
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Creates a VNC Shell proxy.",
                         "method" : "POST",
                         "name" : "termproxy",
@@ -35230,9 +37082,9 @@ var pveapi = [
                                  "default" : "login",
                                  "description" : "Run specific command or default to login.",
                                  "enum" : [
-                                    "login",
                                     "upgrade",
-                                    "ceph_install"
+                                    "ceph_install",
+                                    "login"
                                  ],
                                  "optional" : 1,
                                  "type" : "string"
@@ -35289,6 +37141,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Opens a weksocket for VNC traffic.",
                         "method" : "GET",
                         "name" : "vncwebsocket",
@@ -35343,6 +37196,7 @@ var pveapi = [
                {
                   "info" : {
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Creates a SPICE shell.",
                         "method" : "POST",
                         "name" : "spiceshell",
@@ -35353,9 +37207,9 @@ var pveapi = [
                                  "default" : "login",
                                  "description" : "Run specific command or default to login.",
                                  "enum" : [
-                                    "login",
                                     "upgrade",
-                                    "ceph_install"
+                                    "ceph_install",
+                                    "login"
                                  ],
                                  "optional" : 1,
                                  "type" : "string"
@@ -35424,6 +37278,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read DNS settings.",
                         "method" : "GET",
                         "name" : "dns",
@@ -35476,6 +37331,7 @@ var pveapi = [
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Write DNS settings.",
                         "method" : "PUT",
                         "name" : "update_dns",
@@ -35539,6 +37395,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Read server time and time zone settings.",
                         "method" : "GET",
                         "name" : "time",
@@ -35587,6 +37444,7 @@ var pveapi = [
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Set time zone.",
                         "method" : "PUT",
                         "name" : "set_timezone",
@@ -35629,6 +37487,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get list of appliances.",
                         "method" : "GET",
                         "name" : "aplinfo",
@@ -35656,6 +37515,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Download appliance templates.",
                         "method" : "POST",
                         "name" : "apl_download",
@@ -35705,6 +37565,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Gather various systems information about a node",
                         "method" : "GET",
                         "name" : "report",
@@ -35742,6 +37603,7 @@ var pveapi = [
                {
                   "info" : {
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Start all VMs and containers located on this node (by default only those with onboot=1).",
                         "method" : "POST",
                         "name" : "startall",
@@ -35793,6 +37655,7 @@ var pveapi = [
                {
                   "info" : {
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Stop all VMs and Containers.",
                         "method" : "POST",
                         "name" : "stopall",
@@ -35837,6 +37700,7 @@ var pveapi = [
                {
                   "info" : {
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Migrate all VMs and Containers.",
                         "method" : "POST",
                         "name" : "migrateall",
@@ -35868,6 +37732,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>"
                               }
                            }
                         },
@@ -35894,6 +37764,7 @@ var pveapi = [
                {
                   "info" : {
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get the content of /etc/hosts.",
                         "method" : "GET",
                         "name" : "get_etc_hosts",
@@ -35936,6 +37807,7 @@ var pveapi = [
                         }
                      },
                      "POST" : {
+                        "allowtoken" : 1,
                         "description" : "Write /etc/hosts.",
                         "method" : "POST",
                         "name" : "write_etc_hosts",
@@ -35985,6 +37857,7 @@ var pveapi = [
             ],
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Node index.",
                   "method" : "GET",
                   "name" : "index",
@@ -36024,6 +37897,7 @@ var pveapi = [
       ],
       "info" : {
          "GET" : {
+            "allowtoken" : 1,
             "description" : "Cluster node index.",
             "method" : "GET",
             "name" : "index",
@@ -36111,6 +37985,7 @@ var pveapi = [
          {
             "info" : {
                "DELETE" : {
+                  "allowtoken" : 1,
                   "description" : "Delete storage configuration.",
                   "method" : "DELETE",
                   "name" : "delete",
@@ -36140,6 +38015,7 @@ var pveapi = [
                   }
                },
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Read storage configuration.",
                   "method" : "GET",
                   "name" : "read",
@@ -36168,6 +38044,7 @@ var pveapi = [
                   }
                },
                "PUT" : {
+                  "allowtoken" : 1,
                   "description" : "Update storage configuration.",
                   "method" : "PUT",
                   "name" : "update",
@@ -36270,6 +38147,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",
@@ -36323,6 +38206,13 @@ var pveapi = [
                            "type" : "string",
                            "typetext" : "<string>"
                         },
+                        "mountpoint" : {
+                           "description" : "mount point",
+                           "format" : "pve-storage-path",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
                         "nodes" : {
                            "description" : "List of cluster node names.",
                            "format" : "pve-node-list",
@@ -36474,6 +38364,7 @@ var pveapi = [
       ],
       "info" : {
          "GET" : {
+            "allowtoken" : 1,
             "description" : "Storage index.",
             "method" : "GET",
             "name" : "index",
@@ -36493,6 +38384,7 @@ var pveapi = [
                         "lvm",
                         "lvmthin",
                         "nfs",
+                        "pbs",
                         "rbd",
                         "zfs",
                         "zfspool"
@@ -36525,6 +38417,7 @@ var pveapi = [
             }
          },
          "POST" : {
+            "allowtoken" : 1,
             "description" : "Create a new storage.",
             "method" : "POST",
             "name" : "create",
@@ -36612,6 +38505,12 @@ var pveapi = [
                      "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,
@@ -36632,6 +38531,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",
@@ -36691,6 +38596,13 @@ var pveapi = [
                      "type" : "string",
                      "typetext" : "<string>"
                   },
+                  "mountpoint" : {
+                     "description" : "mount point",
+                     "format" : "pve-storage-path",
+                     "optional" : 1,
+                     "type" : "string",
+                     "typetext" : "<string>"
+                  },
                   "nodes" : {
                      "description" : "List of cluster node names.",
                      "format" : "pve-node-list",
@@ -36857,6 +38769,7 @@ var pveapi = [
                         "lvm",
                         "lvmthin",
                         "nfs",
+                        "pbs",
                         "rbd",
                         "zfs",
                         "zfspool"
@@ -36913,6 +38826,7 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
+                              "allowtoken" : 1,
                               "description" : "Get user TFA types (Personal and Realm).",
                               "method" : "GET",
                               "name" : "read_user_tfa_type",
@@ -36974,10 +38888,381 @@ 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"
+                                          ],
+                                          [
+                                             "perm",
+                                             "/access/users/{userid}",
+                                             [
+                                                "User.Modify"
+                                             ]
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "returns" : {
+                                       "type" : "null"
+                                    }
+                                 },
+                                 "GET" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Get specific API token information.",
+                                    "method" : "GET",
+                                    "name" : "read_token",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "tokenid" : {
+                                             "description" : "User-specific token identifier.",
+                                             "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
+                                             "type" : "string"
+                                          },
+                                          "userid" : {
+                                             "description" : "User ID",
+                                             "format" : "pve-userid",
+                                             "maxLength" : 64,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "or",
+                                          [
+                                             "userid-param",
+                                             "self"
+                                          ],
+                                          [
+                                             "perm",
+                                             "/access/users/{userid}",
+                                             [
+                                                "User.Modify"
+                                             ]
+                                          ]
+                                       ]
+                                    },
+                                    "returns" : {
+                                       "properties" : {
+                                          "comment" : {
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "expire" : {
+                                             "default" : "same as user",
+                                             "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer"
+                                          },
+                                          "privsep" : {
+                                             "default" : 1,
+                                             "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
+                                             "optional" : 1,
+                                             "type" : "boolean"
+                                          }
+                                       },
+                                       "type" : "object"
+                                    }
+                                 },
+                                 "POST" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Generate a new API token for a specific user. NOTE: returns API token value, which needs to be stored as it cannot be retrieved afterwards!",
+                                    "method" : "POST",
+                                    "name" : "generate_token",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "comment" : {
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "expire" : {
+                                             "default" : "same as user",
+                                             "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (0 - N)"
+                                          },
+                                          "privsep" : {
+                                             "default" : 1,
+                                             "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "tokenid" : {
+                                             "description" : "User-specific token identifier.",
+                                             "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
+                                             "type" : "string"
+                                          },
+                                          "userid" : {
+                                             "description" : "User ID",
+                                             "format" : "pve-userid",
+                                             "maxLength" : 64,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "or",
+                                          [
+                                             "userid-param",
+                                             "self"
+                                          ],
+                                          [
+                                             "perm",
+                                             "/access/users/{userid}",
+                                             [
+                                                "User.Modify"
+                                             ]
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "returns" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "full-tokenid" : {
+                                             "description" : "The full token id.",
+                                             "format_description" : "<userid>!<tokenid>",
+                                             "type" : "string"
+                                          },
+                                          "info" : {
+                                             "properties" : {
+                                                "comment" : {
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "expire" : {
+                                                   "default" : "same as user",
+                                                   "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
+                                                   "minimum" : 0,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "privsep" : {
+                                                   "default" : 1,
+                                                   "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                }
+                                             },
+                                             "type" : "object"
+                                          },
+                                          "value" : {
+                                             "description" : "API token value used for authentication.",
+                                             "type" : "string"
+                                          }
+                                       },
+                                       "type" : "object"
+                                    }
+                                 },
+                                 "PUT" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Update API token for a specific user.",
+                                    "method" : "PUT",
+                                    "name" : "update_token_info",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "comment" : {
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "expire" : {
+                                             "default" : "same as user",
+                                             "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (0 - N)"
+                                          },
+                                          "privsep" : {
+                                             "default" : 1,
+                                             "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "tokenid" : {
+                                             "description" : "User-specific token identifier.",
+                                             "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
+                                             "type" : "string"
+                                          },
+                                          "userid" : {
+                                             "description" : "User ID",
+                                             "format" : "pve-userid",
+                                             "maxLength" : 64,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "or",
+                                          [
+                                             "userid-param",
+                                             "self"
+                                          ],
+                                          [
+                                             "perm",
+                                             "/access/users/{userid}",
+                                             [
+                                                "User.Modify"
+                                             ]
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "returns" : {
+                                       "description" : "Updated token information.",
+                                       "properties" : {
+                                          "comment" : {
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "expire" : {
+                                             "default" : "same as user",
+                                             "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer"
+                                          },
+                                          "privsep" : {
+                                             "default" : 1,
+                                             "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
+                                             "optional" : 1,
+                                             "type" : "boolean"
+                                          }
+                                       },
+                                       "type" : "object"
+                                    }
+                                 }
+                              },
+                              "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"
+                                    ],
+                                    [
+                                       "perm",
+                                       "/access/users/{userid}",
+                                       [
+                                          "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",
@@ -37014,6 +39299,7 @@ var pveapi = [
                         }
                      },
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get user configuration.",
                         "method" : "GET",
                         "name" : "read_user",
@@ -37067,6 +39353,11 @@ var pveapi = [
                                  "type" : "string"
                               },
                               "groups" : {
+                                 "items" : {
+                                    "format" : "pve-groupid",
+                                    "type" : "string"
+                                 },
+                                 "optional" : 1,
                                  "type" : "array"
                               },
                               "keys" : {
@@ -37077,12 +39368,17 @@ var pveapi = [
                               "lastname" : {
                                  "optional" : 1,
                                  "type" : "string"
+                              },
+                              "tokens" : {
+                                 "optional" : 1,
+                                 "type" : "object"
                               }
                            },
                            "type" : "object"
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Update user configuration.",
                         "method" : "PUT",
                         "name" : "update_user",
@@ -37174,6 +39470,7 @@ var pveapi = [
             ],
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "User index.",
                   "method" : "GET",
                   "name" : "index",
@@ -37185,6 +39482,13 @@ var pveapi = [
                            "optional" : 1,
                            "type" : "boolean",
                            "typetext" : "<boolean>"
+                        },
+                        "full" : {
+                           "default" : 0,
+                           "description" : "Include group and token information.",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
                         }
                      }
                   },
@@ -37220,6 +39524,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,
@@ -37229,6 +39538,37 @@ var pveapi = [
                               "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",
@@ -37248,6 +39588,7 @@ var pveapi = [
                   }
                },
                "POST" : {
+                  "allowtoken" : 1,
                   "description" : "Create new user.",
                   "method" : "POST",
                   "name" : "create_user",
@@ -37351,6 +39692,7 @@ var pveapi = [
                {
                   "info" : {
                      "DELETE" : {
+                        "allowtoken" : 1,
                         "description" : "Delete group.",
                         "method" : "DELETE",
                         "name" : "delete_group",
@@ -37379,6 +39721,7 @@ var pveapi = [
                         }
                      },
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get group configuration.",
                         "method" : "GET",
                         "name" : "read_group",
@@ -37425,6 +39768,7 @@ var pveapi = [
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Update group data.",
                         "method" : "PUT",
                         "name" : "update_group",
@@ -37465,6 +39809,7 @@ var pveapi = [
             ],
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Group index.",
                   "method" : "GET",
                   "name" : "index",
@@ -37485,6 +39830,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"
@@ -37499,6 +39850,7 @@ var pveapi = [
                   }
                },
                "POST" : {
+                  "allowtoken" : 1,
                   "description" : "Create new group.",
                   "method" : "POST",
                   "name" : "create_group",
@@ -37541,6 +39893,7 @@ var pveapi = [
                {
                   "info" : {
                      "DELETE" : {
+                        "allowtoken" : 1,
                         "description" : "Delete role.",
                         "method" : "DELETE",
                         "name" : "delete_role",
@@ -37569,6 +39922,7 @@ var pveapi = [
                         }
                      },
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get role configuration.",
                         "method" : "GET",
                         "name" : "read_role",
@@ -37624,6 +39978,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"
@@ -37721,6 +40083,7 @@ var pveapi = [
                         }
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Update an existing role.",
                         "method" : "PUT",
                         "name" : "update_role",
@@ -37768,6 +40131,7 @@ var pveapi = [
             ],
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Role index.",
                   "method" : "GET",
                   "name" : "index",
@@ -37807,6 +40171,7 @@ var pveapi = [
                   }
                },
                "POST" : {
+                  "allowtoken" : 1,
                   "description" : "Create new role.",
                   "method" : "POST",
                   "name" : "create_role",
@@ -37848,6 +40213,7 @@ var pveapi = [
          {
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Get Access Control List (ACLs).",
                   "method" : "GET",
                   "name" : "read_acl",
@@ -37878,7 +40244,8 @@ var pveapi = [
                            "type" : {
                               "enum" : [
                                  "user",
-                                 "group"
+                                 "group",
+                                 "token"
                               ],
                               "type" : "string"
                            },
@@ -37892,6 +40259,7 @@ var pveapi = [
                   }
                },
                "PUT" : {
+                  "allowtoken" : 1,
                   "description" : "Update Access Control List (add or remove permissions).",
                   "method" : "PUT",
                   "name" : "update_acl",
@@ -37929,6 +40297,13 @@ var pveapi = [
                            "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",
@@ -37957,8 +40332,93 @@ var pveapi = [
          {
             "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" : "If set, uses the LDAP Directory as source of truth, deleting users or groups not returned from the sync. Otherwise only syncs information which is not already present, and does not deletes or modifies anything else.",
+                                       "optional" : "1",
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "purge" : {
+                                       "description" : "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>"
+                                    },
+                                    "scope" : {
+                                       "description" : "Select what to sync.",
+                                       "enum" : [
+                                          "users",
+                                          "groups",
+                                          "both"
+                                       ],
+                                       "optional" : "1",
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "and",
+                                    [
+                                       "userid-param",
+                                       "Realm.AllocateUser"
+                                    ],
+                                    [
+                                       "userid-group",
+                                       [
+                                          "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",
@@ -37989,6 +40449,7 @@ var pveapi = [
                         }
                      },
                      "GET" : {
+                        "allowtoken" : 1,
                         "description" : "Get auth server configuration.",
                         "method" : "GET",
                         "name" : "read",
@@ -38019,6 +40480,7 @@ var pveapi = [
                         "returns" : {}
                      },
                      "PUT" : {
+                        "allowtoken" : 1,
                         "description" : "Update authentication server settings.",
                         "method" : "PUT",
                         "name" : "update",
@@ -38093,6 +40555,60 @@ var pveapi = [
                                  "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>"
+                              },
+                              "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,
@@ -38109,7 +40625,7 @@ var pveapi = [
                                  "typetext" : "<string>"
                               },
                               "secure" : {
-                                 "description" : "Use secure LDAPS protocol.",
+                                 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
                                  "optional" : 1,
                                  "type" : "boolean",
                                  "typetext" : "<boolean>"
@@ -38141,6 +40657,19 @@ var pveapi = [
                                  "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>] [,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",
@@ -38156,6 +40685,14 @@ var pveapi = [
                                  "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",
@@ -38181,13 +40718,14 @@ var pveapi = [
                         }
                      }
                   },
-                  "leaf" : 1,
+                  "leaf" : 0,
                   "path" : "/access/domains/{realm}",
                   "text" : "{realm}"
                }
             ],
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Authentication domain index.",
                   "method" : "GET",
                   "name" : "index",
@@ -38217,6 +40755,9 @@ var pveapi = [
                               ],
                               "optional" : 1,
                               "type" : "string"
+                           },
+                           "type" : {
+                              "type" : "string"
                            }
                         },
                         "type" : "object"
@@ -38231,6 +40772,7 @@ var pveapi = [
                   }
                },
                "POST" : {
+                  "allowtoken" : 1,
                   "description" : "Add an authentication server.",
                   "method" : "POST",
                   "name" : "create",
@@ -38290,6 +40832,60 @@ var pveapi = [
                            "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>"
+                        },
+                        "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,
@@ -38306,7 +40902,7 @@ var pveapi = [
                            "typetext" : "<string>"
                         },
                         "secure" : {
-                           "description" : "Use secure LDAPS protocol.",
+                           "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
                            "optional" : 1,
                            "type" : "boolean",
                            "typetext" : "<boolean>"
@@ -38338,6 +40934,19 @@ var pveapi = [
                            "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>] [,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",
@@ -38363,6 +40972,14 @@ var pveapi = [
                            "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",
@@ -38395,6 +41012,7 @@ var pveapi = [
          {
             "info" : {
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Dummy. Useful for formatters which want to provide a login page.",
                   "method" : "GET",
                   "name" : "get_ticket",
@@ -38409,6 +41027,7 @@ var pveapi = [
                   }
                },
                "POST" : {
+                  "allowtoken" : 0,
                   "description" : "Create or verify authentication ticket.",
                   "method" : "POST",
                   "name" : "create_ticket",
@@ -38493,6 +41112,7 @@ var pveapi = [
          {
             "info" : {
                "PUT" : {
+                  "allowtoken" : 0,
                   "description" : "Change user password.",
                   "method" : "PUT",
                   "name" : "change_password",
@@ -38551,6 +41171,7 @@ var pveapi = [
          {
             "info" : {
                "POST" : {
+                  "allowtoken" : 0,
                   "description" : "Finish a u2f challenge.",
                   "method" : "POST",
                   "name" : "verify_tfa",
@@ -38578,6 +41199,7 @@ var pveapi = [
                   }
                },
                "PUT" : {
+                  "allowtoken" : 0,
                   "description" : "Change user u2f authentication.",
                   "method" : "PUT",
                   "name" : "change_tfa",
@@ -38663,10 +41285,49 @@ var pveapi = [
             "leaf" : 1,
             "path" : "/access/tfa",
             "text" : "tfa"
+         },
+         {
+            "info" : {
+               "GET" : {
+                  "allowtoken" : 1,
+                  "description" : "Retrieve effective permissions of given user/token.",
+                  "method" : "GET",
+                  "name" : "permissions",
+                  "parameters" : {
+                     "additionalProperties" : 0,
+                     "properties" : {
+                        "path" : {
+                           "description" : "Only dump this specific path, not the whole tree.",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "userid" : {
+                           "description" : "User ID or full API token ID",
+                           "optional" : 1,
+                           "pattern" : "(?^:^(?^:[^\\s:/]+)\\@(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)(?:!(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+))?$)",
+                           "type" : "string"
+                        }
+                     }
+                  },
+                  "permissions" : {
+                     "description" : "Each user/token is allowed to dump their own permissions. A user can dump the permissions of another user if they have 'Sys.Audit' permission on /access.",
+                     "user" : "all"
+                  },
+                  "returns" : {
+                     "description" : "Map of \"path\" => (Map of \"privilege\" => \"propagate boolean\").",
+                     "type" : "object"
+                  }
+               }
+            },
+            "leaf" : 1,
+            "path" : "/access/permissions",
+            "text" : "permissions"
          }
       ],
       "info" : {
          "GET" : {
+            "allowtoken" : 1,
             "description" : "Directory index.",
             "method" : "GET",
             "name" : "index",
@@ -38704,6 +41365,7 @@ var pveapi = [
          {
             "info" : {
                "DELETE" : {
+                  "allowtoken" : 1,
                   "description" : "Delete pool.",
                   "method" : "DELETE",
                   "name" : "delete_pool",
@@ -38733,6 +41395,7 @@ var pveapi = [
                   }
                },
                "GET" : {
+                  "allowtoken" : 1,
                   "description" : "Get pool configuration.",
                   "method" : "GET",
                   "name" : "read_pool",
@@ -38799,6 +41462,7 @@ var pveapi = [
                   }
                },
                "PUT" : {
+                  "allowtoken" : 1,
                   "description" : "Update pool data.",
                   "method" : "PUT",
                   "name" : "update_pool",
@@ -38860,6 +41524,7 @@ var pveapi = [
       ],
       "info" : {
          "GET" : {
+            "allowtoken" : 1,
             "description" : "Pool index.",
             "method" : "GET",
             "name" : "index",
@@ -38889,6 +41554,7 @@ var pveapi = [
             }
          },
          "POST" : {
+            "allowtoken" : 1,
             "description" : "Create new pool.",
             "method" : "POST",
             "name" : "create_pool",
@@ -38929,6 +41595,7 @@ var pveapi = [
    {
       "info" : {
          "GET" : {
+            "allowtoken" : 1,
             "description" : "API version details. The result also includes the global datacenter confguration.",
             "method" : "GET",
             "name" : "version",