]> git.proxmox.com Git - pmg-docs.git/blobdiff - api-viewer/apidata.js
update static schema info
[pmg-docs.git] / api-viewer / apidata.js
index e9b4de29ffc35cfe9eb39afe3f7d46985e915ed3..cb3fca04617e3c3b097bc44bf1bdd539cbd02fd2 100644 (file)
@@ -1,4 +1,4 @@
-var pmgapi = [
+var apiSchema = [
    {
       "children" : [
          {
@@ -99,6 +99,20 @@ var pmgapi = [
                                              "type" : "integer",
                                              "typetext" : "<integer> (0 - 2)"
                                           },
+                                          "from-and" : {
+                                             "default" : 0,
+                                             "description" : "Flag to 'and' combine FROM group matches.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "from-invert" : {
+                                             "default" : 0,
+                                             "description" : "Flag to invert FROM group matches.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
                                           "id" : {
                                              "description" : "Rule ID.",
                                              "type" : "integer",
@@ -111,12 +125,54 @@ var pmgapi = [
                                              "typetext" : "<string>"
                                           },
                                           "priority" : {
-                                             "description" : "Rule priotity.",
+                                             "description" : "Rule priority.",
                                              "maximum" : 100,
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
                                              "typetext" : "<integer> (0 - 100)"
+                                          },
+                                          "to-and" : {
+                                             "default" : 0,
+                                             "description" : "Flag to 'and' combine TO group matches.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "to-invert" : {
+                                             "default" : 0,
+                                             "description" : "Flag to invert TO group matches.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "what-and" : {
+                                             "default" : 0,
+                                             "description" : "Flag to 'and' combine WHAT group matches.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "what-invert" : {
+                                             "default" : 0,
+                                             "description" : "Flag to invert WHAT group matches.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "when-and" : {
+                                             "default" : 0,
+                                             "description" : "Flag to 'and' combine WHEN group matches.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "when-invert" : {
+                                             "default" : 0,
+                                             "description" : "Flag to invert WHEN group matches.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           }
                                        }
                                     },
@@ -825,17 +881,73 @@ var pmgapi = [
                                  "type" : "integer",
                                  "typetext" : "<integer> (0 - 2)"
                               },
+                              "from-and" : {
+                                 "default" : 0,
+                                 "description" : "Flag to 'and' combine FROM group matches.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "from-invert" : {
+                                 "default" : 0,
+                                 "description" : "Flag to invert FROM group matches.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
                               "name" : {
                                  "description" : "Rule name",
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
                               "priority" : {
-                                 "description" : "Rule priotity.",
+                                 "description" : "Rule priority.",
                                  "maximum" : 100,
                                  "minimum" : 0,
                                  "type" : "integer",
                                  "typetext" : "<integer> (0 - 100)"
+                              },
+                              "to-and" : {
+                                 "default" : 0,
+                                 "description" : "Flag to 'and' combine TO group matches.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "to-invert" : {
+                                 "default" : 0,
+                                 "description" : "Flag to invert TO group matches.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "what-and" : {
+                                 "default" : 0,
+                                 "description" : "Flag to 'and' combine WHAT group matches.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "what-invert" : {
+                                 "default" : 0,
+                                 "description" : "Flag to invert WHAT group matches.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "when-and" : {
+                                 "default" : 0,
+                                 "description" : "Flag to 'and' combine WHEN group matches.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "when-invert" : {
+                                 "default" : 0,
+                                 "description" : "Flag to invert WHEN group matches.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               }
                            }
                         },
@@ -1443,6 +1555,13 @@ var pmgapi = [
                                     "parameters" : {
                                        "additionalProperties" : 0,
                                        "properties" : {
+                                          "add-separator" : {
+                                             "default" : 1,
+                                             "description" : "If set to 1, adds a '--' separator between the disclaimer and the content. Set to 0 to prevent that.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
                                           "disclaimer" : {
                                              "description" : "The Disclaimer",
                                              "maxLength" : 2048,
@@ -1467,6 +1586,16 @@ var pmgapi = [
                                              "optional" : 1,
                                              "type" : "string",
                                              "typetext" : "<string>"
+                                          },
+                                          "position" : {
+                                             "default" : "end",
+                                             "description" : "Put the disclaimer at the specified position.",
+                                             "enum" : [
+                                                "start",
+                                                "end"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
                                           }
                                        }
                                     },
@@ -1496,6 +1625,13 @@ var pmgapi = [
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
+                                    "add-separator" : {
+                                       "default" : 1,
+                                       "description" : "If set to 1, adds a '--' separator between the disclaimer and the content. Set to 0 to prevent that.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
                                     "disclaimer" : {
                                        "description" : "The Disclaimer",
                                        "maxLength" : 2048,
@@ -1514,6 +1650,16 @@ var pmgapi = [
                                        "maxLength" : 255,
                                        "type" : "string",
                                        "typetext" : "<string>"
+                                    },
+                                    "position" : {
+                                       "default" : "end",
+                                       "description" : "Put the disclaimer at the specified position.",
+                                       "enum" : [
+                                          "start",
+                                          "end"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
                                     }
                                  }
                               },
@@ -1784,6 +1930,13 @@ var pmgapi = [
                                     "parameters" : {
                                        "additionalProperties" : 0,
                                        "properties" : {
+                                          "and" : {
+                                             "default" : 0,
+                                             "description" : "If set to 1, objects in this group are 'and' combined.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
                                           "info" : {
                                              "description" : "Informational comment.",
                                              "maxLength" : 255,
@@ -1791,6 +1944,13 @@ var pmgapi = [
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           },
+                                          "invert" : {
+                                             "default" : 0,
+                                             "description" : "If set to 1, the resulting match is inverted.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
                                           "name" : {
                                              "description" : "Group name.",
                                              "maxLength" : 255,
@@ -2871,6 +3031,13 @@ var pmgapi = [
                         "parameters" : {
                            "additionalProperties" : 0,
                            "properties" : {
+                              "and" : {
+                                 "default" : 0,
+                                 "description" : "If set to 1, objects in this group are 'and' combined.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
                               "info" : {
                                  "description" : "Informational comment.",
                                  "maxLength" : 255,
@@ -2878,6 +3045,13 @@ var pmgapi = [
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
+                              "invert" : {
+                                 "default" : 0,
+                                 "description" : "If set to 1, the resulting match is inverted.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
                               "name" : {
                                  "description" : "Group name.",
                                  "maxLength" : 255,
@@ -2953,6 +3127,13 @@ var pmgapi = [
                                     "parameters" : {
                                        "additionalProperties" : 0,
                                        "properties" : {
+                                          "and" : {
+                                             "default" : 0,
+                                             "description" : "If set to 1, objects in this group are 'and' combined.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
                                           "info" : {
                                              "description" : "Informational comment.",
                                              "maxLength" : 255,
@@ -2960,6 +3141,13 @@ var pmgapi = [
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           },
+                                          "invert" : {
+                                             "default" : 0,
+                                             "description" : "If set to 1, the resulting match is inverted.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
                                           "name" : {
                                              "description" : "Group name.",
                                              "maxLength" : 255,
@@ -3316,6 +3504,13 @@ var pmgapi = [
                         "parameters" : {
                            "additionalProperties" : 0,
                            "properties" : {
+                              "and" : {
+                                 "default" : 0,
+                                 "description" : "If set to 1, objects in this group are 'and' combined.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
                               "info" : {
                                  "description" : "Informational comment.",
                                  "maxLength" : 255,
@@ -3323,6 +3518,13 @@ var pmgapi = [
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
+                              "invert" : {
+                                 "default" : 0,
+                                 "description" : "If set to 1, the resulting match is inverted.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
                               "name" : {
                                  "description" : "Group name.",
                                  "maxLength" : 255,
@@ -3398,6 +3600,13 @@ var pmgapi = [
                                     "parameters" : {
                                        "additionalProperties" : 0,
                                        "properties" : {
+                                          "and" : {
+                                             "default" : 0,
+                                             "description" : "If set to 1, objects in this group are 'and' combined.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
                                           "info" : {
                                              "description" : "Informational comment.",
                                              "maxLength" : 255,
@@ -3405,6 +3614,13 @@ var pmgapi = [
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           },
+                                          "invert" : {
+                                             "default" : 0,
+                                             "description" : "If set to 1, the resulting match is inverted.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
                                           "name" : {
                                              "description" : "Group name.",
                                              "maxLength" : 255,
@@ -4535,6 +4751,13 @@ var pmgapi = [
                         "parameters" : {
                            "additionalProperties" : 0,
                            "properties" : {
+                              "and" : {
+                                 "default" : 0,
+                                 "description" : "If set to 1, objects in this group are 'and' combined.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
                               "info" : {
                                  "description" : "Informational comment.",
                                  "maxLength" : 255,
@@ -4542,6 +4765,13 @@ var pmgapi = [
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
+                              "invert" : {
+                                 "default" : 0,
+                                 "description" : "If set to 1, the resulting match is inverted.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
                               "name" : {
                                  "description" : "Group name.",
                                  "maxLength" : 255,
@@ -5678,8 +5908,8 @@ var pmgapi = [
                                        "typetext" : "<string>"
                                     },
                                     "digest" : {
-                                       "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                                       "maxLength" : 40,
+                                       "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+                                       "maxLength" : 64,
                                        "optional" : 1,
                                        "type" : "string",
                                        "typetext" : "<string>"
@@ -5833,9 +6063,10 @@ var pmgapi = [
                                        "properties" : {
                                           "email" : {
                                              "description" : "Email address.",
-                                             "format" : "email",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
+                                             "maxLength" : 512,
+                                             "minLength" : 3,
+                                             "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
+                                             "type" : "string"
                                           },
                                           "profile" : {
                                              "description" : "Profile ID.",
@@ -7456,7 +7687,7 @@ var pmgapi = [
                               "hostrsapubkey" : {
                                  "description" : "Public SSH RSA key for the host.",
                                  "optional" : 0,
-                                 "pattern" : "^[A-Za-z0-9\\.\\/\\+]{200,}$",
+                                 "pattern" : "^[A-Za-z0-9\\.\\/\\+=]{200,}$",
                                  "type" : "string"
                               },
                               "ip" : {
@@ -7483,7 +7714,7 @@ var pmgapi = [
                               "rootrsapubkey" : {
                                  "description" : "Public SSH RSA key for the root user.",
                                  "optional" : 0,
-                                 "pattern" : "^[A-Za-z0-9\\.\\/\\+]{200,}$",
+                                 "pattern" : "^[A-Za-z0-9\\.\\/\\+=]{200,}$",
                                  "type" : "string"
                               }
                            },
@@ -7902,6 +8133,106 @@ var pmgapi = [
             "path" : "/config/tlspolicy",
             "text" : "tlspolicy"
          },
+         {
+            "children" : [
+               {
+                  "info" : {
+                     "DELETE" : {
+                        "allowtoken" : 1,
+                        "description" : "Delete a tls_inbound_domains entry",
+                        "method" : "DELETE",
+                        "name" : "delete",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "domain" : {
+                                 "description" : "Domain which should be removed from tls_inbound_domains",
+                                 "format" : "transport-domain",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "admin"
+                           ]
+                        },
+                        "protected" : 1,
+                        "proxyto" : "master",
+                        "returns" : {
+                           "type" : "null"
+                        }
+                     }
+                  },
+                  "leaf" : 1,
+                  "path" : "/config/tls-inbound-domains/{domain}",
+                  "text" : "{domain}"
+               }
+            ],
+            "info" : {
+               "GET" : {
+                  "allowtoken" : 1,
+                  "description" : "List tls_inbound_domains entries.",
+                  "method" : "GET",
+                  "name" : "index",
+                  "parameters" : {
+                     "additionalProperties" : 0
+                  },
+                  "permissions" : {
+                     "check" : [
+                        "admin",
+                        "audit"
+                     ]
+                  },
+                  "proxyto" : "master",
+                  "returns" : {
+                     "description" : "List of domains for which TLS will be enforced on incoming connections",
+                     "items" : {
+                        "format" : "transport-domain",
+                        "type" : "string"
+                     },
+                     "links" : [
+                        {
+                           "href" : "{domain}",
+                           "rel" : "child"
+                        }
+                     ],
+                     "type" : "array"
+                  }
+               },
+               "POST" : {
+                  "allowtoken" : 1,
+                  "description" : "Add new tls_inbound_domains entry.",
+                  "method" : "POST",
+                  "name" : "create",
+                  "parameters" : {
+                     "additionalProperties" : 0,
+                     "properties" : {
+                        "domain" : {
+                           "description" : "Domain for which TLS should be enforced on incoming connections",
+                           "format" : "transport-domain",
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        }
+                     }
+                  },
+                  "permissions" : {
+                     "check" : [
+                        "admin"
+                     ]
+                  },
+                  "protected" : 1,
+                  "proxyto" : "master",
+                  "returns" : {
+                     "type" : "null"
+                  }
+               }
+            },
+            "leaf" : 0,
+            "path" : "/config/tls-inbound-domains",
+            "text" : "tls-inbound-domains"
+         },
          {
             "children" : [
                {
@@ -8252,8 +8583,8 @@ var pmgapi = [
                            "additionalProperties" : 0,
                            "properties" : {
                               "digest" : {
-                                 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                                 "maxLength" : 40,
+                                 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+                                 "maxLength" : 64,
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
@@ -8323,8 +8654,8 @@ var pmgapi = [
                                  "typetext" : "<string>"
                               },
                               "digest" : {
-                                 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                                 "maxLength" : 40,
+                                 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+                                 "maxLength" : 64,
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
@@ -8397,8 +8728,8 @@ var pmgapi = [
                               "type" : "string"
                            },
                            "digest" : {
-                              "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                              "maxLength" : 40,
+                              "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+                              "maxLength" : 64,
                               "optional" : 1,
                               "type" : "string"
                            },
@@ -8440,8 +8771,8 @@ var pmgapi = [
                            "typetext" : "<string>"
                         },
                         "digest" : {
-                           "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                           "maxLength" : 40,
+                           "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+                           "maxLength" : 64,
                            "optional" : 1,
                            "type" : "string",
                            "typetext" : "<string>"
@@ -8473,8 +8804,8 @@ var pmgapi = [
                      "additionalProperties" : 0,
                      "properties" : {
                         "digest" : {
-                           "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                           "maxLength" : 40,
+                           "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+                           "maxLength" : 64,
                            "optional" : 1,
                            "type" : "string",
                            "typetext" : "<string>"
@@ -8571,8 +8902,8 @@ var pmgapi = [
                               "datastore" : {
                                  "description" : "Proxmox Backup Server datastore name.",
                                  "optional" : 1,
-                                 "type" : "string",
-                                 "typetext" : "<string>"
+                                 "pattern" : "(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*)",
+                                 "type" : "string"
                               },
                               "delete" : {
                                  "description" : "A list of settings you want to delete.",
@@ -8583,8 +8914,8 @@ var pmgapi = [
                                  "typetext" : "<string>"
                               },
                               "digest" : {
-                                 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                                 "maxLength" : 40,
+                                 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+                                 "maxLength" : 64,
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
@@ -8655,6 +8986,13 @@ var pmgapi = [
                                  "type" : "integer",
                                  "typetext" : "<N>"
                               },
+                              "namespace" : {
+                                 "description" : "Proxmox Backup Server namespace in the datastore, defaults to the root NS.",
+                                 "maxLength" : 256,
+                                 "optional" : 1,
+                                 "pattern" : "(?:(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*)/){0,7}(?:(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*))?",
+                                 "type" : "string"
+                              },
                               "notify" : {
                                  "description" : "Specify when to notify via e-mail",
                                  "enum" : [
@@ -8671,6 +9009,15 @@ var pmgapi = [
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
+                              "port" : {
+                                 "default" : 8007,
+                                 "description" : "Non-default port for Proxmox Backup Server.",
+                                 "maximum" : 65535,
+                                 "minimum" : 1,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (1 - 65535)"
+                              },
                               "remote" : {
                                  "description" : "Proxmox Backup Server ID.",
                                  "format" : "pve-configid",
@@ -8737,6 +9084,7 @@ var pmgapi = [
                            "datastore" : {
                               "description" : "Proxmox Backup Server datastore name.",
                               "optional" : 0,
+                              "pattern" : "(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*)",
                               "type" : "string"
                            },
                            "disable" : {
@@ -8797,6 +9145,13 @@ var pmgapi = [
                               "optional" : 1,
                               "type" : "integer"
                            },
+                           "namespace" : {
+                              "description" : "Proxmox Backup Server namespace in the datastore, defaults to the root NS.",
+                              "maxLength" : 256,
+                              "optional" : 1,
+                              "pattern" : "(?:(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*)/){0,7}(?:(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*))?",
+                              "type" : "string"
+                           },
                            "notify" : {
                               "description" : "Specify when to notify via e-mail",
                               "enum" : [
@@ -8812,6 +9167,14 @@ var pmgapi = [
                               "optional" : 1,
                               "type" : "string"
                            },
+                           "port" : {
+                              "default" : 8007,
+                              "description" : "Non-default port for Proxmox Backup Server.",
+                              "maximum" : 65535,
+                              "minimum" : 1,
+                              "optional" : 1,
+                              "type" : "integer"
+                           },
                            "remote" : {
                               "description" : "Proxmox Backup Server ID.",
                               "format" : "pve-configid",
@@ -8855,8 +9218,8 @@ var pmgapi = [
                         "datastore" : {
                            "description" : "Proxmox Backup Server datastore name.",
                            "optional" : 0,
-                           "type" : "string",
-                           "typetext" : "<string>"
+                           "pattern" : "(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*)",
+                           "type" : "string"
                         },
                         "disable" : {
                            "description" : "Flag to disable (deactivate) the entry.",
@@ -8924,6 +9287,13 @@ var pmgapi = [
                            "type" : "integer",
                            "typetext" : "<N>"
                         },
+                        "namespace" : {
+                           "description" : "Proxmox Backup Server namespace in the datastore, defaults to the root NS.",
+                           "maxLength" : 256,
+                           "optional" : 1,
+                           "pattern" : "(?:(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*)/){0,7}(?:(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*))?",
+                           "type" : "string"
+                        },
                         "notify" : {
                            "description" : "Specify when to notify via e-mail",
                            "enum" : [
@@ -8940,6 +9310,15 @@ var pmgapi = [
                            "type" : "string",
                            "typetext" : "<string>"
                         },
+                        "port" : {
+                           "default" : 8007,
+                           "description" : "Non-default port for Proxmox Backup Server.",
+                           "maximum" : 65535,
+                           "minimum" : 1,
+                           "optional" : 1,
+                           "type" : "integer",
+                           "typetext" : "<integer> (1 - 65535)"
+                        },
                         "remote" : {
                            "description" : "Proxmox Backup Server ID.",
                            "format" : "pve-configid",
@@ -9057,25 +9436,33 @@ var pmgapi = [
                                           "ad",
                                           "ali",
                                           "anx",
+                                          "artfiles",
                                           "arvan",
                                           "aurora",
                                           "autodns",
                                           "aws",
+                                          "azion",
                                           "azure",
+                                          "bookmyname",
+                                          "bunny",
                                           "cf",
                                           "clouddns",
                                           "cloudns",
                                           "cn",
                                           "conoha",
                                           "constellix",
-                                          "cx",
+                                          "cpanel",
+                                          "curanet",
                                           "cyon",
                                           "da",
                                           "ddnss",
                                           "desec",
                                           "df",
                                           "dgon",
+                                          "dnsexit",
+                                          "dnshome",
                                           "dnsimple",
+                                          "dnsservices",
                                           "do",
                                           "doapi",
                                           "domeneshop",
@@ -9091,11 +9478,14 @@ var pmgapi = [
                                           "edgedns",
                                           "euserv",
                                           "exoscale",
+                                          "fornex",
                                           "freedns",
                                           "gandi_livedns",
                                           "gcloud",
+                                          "gcore",
                                           "gd",
-                                          "gdnsdk",
+                                          "geoscaling",
+                                          "googledomains",
                                           "he",
                                           "hetzner",
                                           "hexonet",
@@ -9106,6 +9496,7 @@ var pmgapi = [
                                           "internetbs",
                                           "inwx",
                                           "ionos",
+                                          "ipv64",
                                           "ispconfig",
                                           "jd",
                                           "joker",
@@ -9113,6 +9504,7 @@ var pmgapi = [
                                           "kas",
                                           "kinghost",
                                           "knot",
+                                          "la",
                                           "leaseweb",
                                           "lexicon",
                                           "linode",
@@ -9126,9 +9518,11 @@ var pmgapi = [
                                           "myapi",
                                           "mydevil",
                                           "mydnsjp",
+                                          "mythic_beasts",
                                           "namecheap",
                                           "namecom",
                                           "namesilo",
+                                          "nanelo",
                                           "nederhost",
                                           "neodigit",
                                           "netcup",
@@ -9140,6 +9534,7 @@ var pmgapi = [
                                           "nsone",
                                           "nsupdate",
                                           "nw",
+                                          "oci",
                                           "one",
                                           "online",
                                           "openprovider",
@@ -9152,23 +9547,30 @@ var pmgapi = [
                                           "porkbun",
                                           "rackcorp",
                                           "rackspace",
+                                          "rage4",
                                           "rcode0",
                                           "regru",
                                           "scaleway",
                                           "schlundtech",
                                           "selectel",
+                                          "selfhost",
                                           "servercow",
                                           "simply",
                                           "tele3",
+                                          "tencent",
                                           "transip",
+                                          "udr",
                                           "ultra",
                                           "unoeuro",
                                           "variomedia",
+                                          "veesp",
+                                          "vercel",
                                           "vscale",
                                           "vultr",
                                           "websupport",
                                           "world4you",
                                           "yandex",
+                                          "yc",
                                           "zilore",
                                           "zone",
                                           "zonomi"
@@ -9191,8 +9593,8 @@ var pmgapi = [
                                        "typetext" : "<string>"
                                     },
                                     "digest" : {
-                                       "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                                       "maxLength" : 40,
+                                       "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+                                       "maxLength" : 64,
                                        "optional" : 1,
                                        "type" : "string",
                                        "typetext" : "<string>"
@@ -9308,25 +9710,33 @@ var pmgapi = [
                                     "ad",
                                     "ali",
                                     "anx",
+                                    "artfiles",
                                     "arvan",
                                     "aurora",
                                     "autodns",
                                     "aws",
+                                    "azion",
                                     "azure",
+                                    "bookmyname",
+                                    "bunny",
                                     "cf",
                                     "clouddns",
                                     "cloudns",
                                     "cn",
                                     "conoha",
                                     "constellix",
-                                    "cx",
+                                    "cpanel",
+                                    "curanet",
                                     "cyon",
                                     "da",
                                     "ddnss",
                                     "desec",
                                     "df",
                                     "dgon",
+                                    "dnsexit",
+                                    "dnshome",
                                     "dnsimple",
+                                    "dnsservices",
                                     "do",
                                     "doapi",
                                     "domeneshop",
@@ -9342,11 +9752,14 @@ var pmgapi = [
                                     "edgedns",
                                     "euserv",
                                     "exoscale",
+                                    "fornex",
                                     "freedns",
                                     "gandi_livedns",
                                     "gcloud",
+                                    "gcore",
                                     "gd",
-                                    "gdnsdk",
+                                    "geoscaling",
+                                    "googledomains",
                                     "he",
                                     "hetzner",
                                     "hexonet",
@@ -9357,6 +9770,7 @@ var pmgapi = [
                                     "internetbs",
                                     "inwx",
                                     "ionos",
+                                    "ipv64",
                                     "ispconfig",
                                     "jd",
                                     "joker",
@@ -9364,6 +9778,7 @@ var pmgapi = [
                                     "kas",
                                     "kinghost",
                                     "knot",
+                                    "la",
                                     "leaseweb",
                                     "lexicon",
                                     "linode",
@@ -9377,9 +9792,11 @@ var pmgapi = [
                                     "myapi",
                                     "mydevil",
                                     "mydnsjp",
+                                    "mythic_beasts",
                                     "namecheap",
                                     "namecom",
                                     "namesilo",
+                                    "nanelo",
                                     "nederhost",
                                     "neodigit",
                                     "netcup",
@@ -9391,6 +9808,7 @@ var pmgapi = [
                                     "nsone",
                                     "nsupdate",
                                     "nw",
+                                    "oci",
                                     "one",
                                     "online",
                                     "openprovider",
@@ -9403,23 +9821,30 @@ var pmgapi = [
                                     "porkbun",
                                     "rackcorp",
                                     "rackspace",
+                                    "rage4",
                                     "rcode0",
                                     "regru",
                                     "scaleway",
                                     "schlundtech",
                                     "selectel",
+                                    "selfhost",
                                     "servercow",
                                     "simply",
                                     "tele3",
+                                    "tencent",
                                     "transip",
+                                    "udr",
                                     "ultra",
                                     "unoeuro",
                                     "variomedia",
+                                    "veesp",
+                                    "vercel",
                                     "vscale",
                                     "vultr",
                                     "websupport",
                                     "world4you",
                                     "yandex",
+                                    "yc",
                                     "zilore",
                                     "zone",
                                     "zonomi"
@@ -9669,6 +10094,20 @@ var pmgapi = [
                                  "pattern" : "^https?://.*",
                                  "type" : "string"
                               },
+                              "eab-hmac-key" : {
+                                 "description" : "HMAC key for External Account Binding.",
+                                 "optional" : 1,
+                                 "requires" : "eab-kid",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "eab-kid" : {
+                                 "description" : "Key Identifier for External Account Binding.",
+                                 "optional" : 1,
+                                 "requires" : "eab-hmac-key",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
                               "name" : {
                                  "default" : "default",
                                  "description" : "ACME account config file name.",
@@ -9706,7 +10145,7 @@ var pmgapi = [
                   "info" : {
                      "GET" : {
                         "allowtoken" : 1,
-                        "description" : "Retrieve ACME TermsOfService URL from CA.",
+                        "description" : "Retrieve ACME TermsOfService URL from CA. Deprecated, please use /config/acme/meta.",
                         "method" : "GET",
                         "name" : "get_tos",
                         "parameters" : {
@@ -9735,6 +10174,63 @@ var pmgapi = [
                   "path" : "/config/acme/tos",
                   "text" : "tos"
                },
+               {
+                  "info" : {
+                     "GET" : {
+                        "allowtoken" : 1,
+                        "description" : "Retrieve ACME Directory Meta Information",
+                        "method" : "GET",
+                        "name" : "get_meta",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "directory" : {
+                                 "default" : "https://acme-v02.api.letsencrypt.org/directory",
+                                 "description" : "URL of ACME CA directory endpoint.",
+                                 "optional" : 1,
+                                 "pattern" : "^https?://.*",
+                                 "type" : "string"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "user" : "all"
+                        },
+                        "returns" : {
+                           "additionalProperties" : 1,
+                           "properties" : {
+                              "caaIdentities" : {
+                                 "description" : "Hostnames referring to the ACME servers.",
+                                 "items" : {
+                                    "type" : "string"
+                                 },
+                                 "optional" : 1,
+                                 "type" : "array"
+                              },
+                              "externalAccountRequired" : {
+                                 "description" : "EAB Required",
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "termsOfService" : {
+                                 "description" : "ACME TermsOfService URL.",
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "website" : {
+                                 "description" : "URL to more information about the ACME server.",
+                                 "optional" : 1,
+                                 "type" : "string"
+                              }
+                           },
+                           "type" : "object"
+                        }
+                     }
+                  },
+                  "leaf" : 1,
+                  "path" : "/config/acme/meta",
+                  "text" : "meta"
+               },
                {
                   "info" : {
                      "GET" : {
@@ -9844,6 +10340,152 @@ var pmgapi = [
             "path" : "/config/acme",
             "text" : "acme"
          },
+         {
+            "children" : [
+               {
+                  "info" : {
+                     "GET" : {
+                        "allowtoken" : 1,
+                        "description" : "Read the webauthn configuration.",
+                        "method" : "GET",
+                        "name" : "get_webauthn_config",
+                        "parameters" : {
+                           "additionalProperties" : 0
+                        },
+                        "permissions" : {
+                           "user" : "all"
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "optional" : 1,
+                           "properties" : {
+                              "allow-subdomains" : {
+                                 "default" : 1,
+                                 "description" : "Whether to allow the origin to be a subdomain, rather than the exact URL.",
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "id" : {
+                                 "description" : "Relying part ID. Must be the domain name without protocol, port or location.\nChanging this *will* break existing credentials.",
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "origin" : {
+                                 "description" : "Site origin. Must be a `https://` URL (or `http://localhost`). Should contain the address users type in their browsers to access the web interface.\nChanging this *may* break existing credentials.",
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "rp" : {
+                                 "description" : "Relying party name. Any text identifier.\nChanging this *may* break existing credentials.",
+                                 "optional" : 1,
+                                 "type" : "string"
+                              }
+                           },
+                           "type" : "object"
+                        }
+                     },
+                     "PUT" : {
+                        "allowtoken" : 1,
+                        "description" : "Read the webauthn configuration.",
+                        "method" : "PUT",
+                        "name" : "update_webauthn_config",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "allow-subdomains" : {
+                                 "default" : 1,
+                                 "description" : "Whether to allow the origin to be a subdomain, rather than the exact URL.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "delete" : {
+                                 "description" : "A list of settings you want to delete.",
+                                 "enum" : [
+                                    "id",
+                                    "allow-subdomains",
+                                    "origin",
+                                    "rp"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "digest" : {
+                                 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                 "maxLength" : 40,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "id" : {
+                                 "description" : "Relying part ID. Must be the domain name without protocol, port or location.\nChanging this *will* break existing credentials.",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "origin" : {
+                                 "description" : "Site origin. Must be a `https://` URL (or `http://localhost`). Should contain the address users type in their browsers to access the web interface.\nChanging this *may* break existing credentials.",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "rp" : {
+                                 "description" : "Relying party name. Any text identifier.\nChanging this *may* break existing credentials.",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "admin"
+                           ]
+                        },
+                        "protected" : 1,
+                        "proxyto" : "master",
+                        "returns" : {
+                           "type" : "null"
+                        }
+                     }
+                  },
+                  "leaf" : 1,
+                  "path" : "/config/tfa/webauthn",
+                  "text" : "webauthn"
+               }
+            ],
+            "info" : {
+               "GET" : {
+                  "allowtoken" : 1,
+                  "description" : "Directory index.",
+                  "method" : "GET",
+                  "name" : "index",
+                  "parameters" : {
+                     "additionalProperties" : 0
+                  },
+                  "returns" : {
+                     "items" : {
+                        "properties" : {
+                           "section" : {
+                              "type" : "string"
+                           }
+                        },
+                        "type" : "object"
+                     },
+                     "links" : [
+                        {
+                           "href" : "{section}",
+                           "rel" : "child"
+                        }
+                     ],
+                     "type" : "array"
+                  }
+               }
+            },
+            "leaf" : 0,
+            "path" : "/config/tfa",
+            "text" : "tfa"
+         },
          {
             "info" : {
                "GET" : {
@@ -9874,11 +10516,12 @@ var pmgapi = [
                      "additionalProperties" : 0,
                      "properties" : {
                         "advfilter" : {
-                           "default" : 1,
-                           "description" : "Use advanced filters for statistic.",
+                           "default" : 0,
+                           "description" : "Enable advanced filters for statistic.",
                            "optional" : 1,
                            "type" : "boolean",
-                           "typetext" : "<boolean>"
+                           "typetext" : "<boolean>",
+                           "verbose_description" : "Enable advanced filters for statistic.\n\nIf this is enabled, the receiver statistic are limited to active ones\n(receivers which also sent out mail in the 90 days before), and the contact\nstatistic will not contain these active receivers.\n"
                         },
                         "avast" : {
                            "default" : 0,
@@ -9931,8 +10574,8 @@ var pmgapi = [
                            "typetext" : "<boolean>"
                         },
                         "digest" : {
-                           "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                           "maxLength" : 40,
+                           "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+                           "maxLength" : 64,
                            "optional" : 1,
                            "type" : "string",
                            "typetext" : "<string>"
@@ -10075,8 +10718,8 @@ var pmgapi = [
                            "typetext" : "<string>"
                         },
                         "digest" : {
-                           "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                           "maxLength" : 40,
+                           "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+                           "maxLength" : 64,
                            "optional" : 1,
                            "type" : "string",
                            "typetext" : "<string>"
@@ -10105,7 +10748,7 @@ var pmgapi = [
                            "typetext" : "<boolean>"
                         },
                         "scriptedupdates" : {
-                           "default" : 0,
+                           "default" : 1,
                            "description" : "Enables ScriptedUpdates (incremental download of signatures)",
                            "optional" : 1,
                            "type" : "boolean",
@@ -10199,14 +10842,14 @@ var pmgapi = [
                            "typetext" : "<string>"
                         },
                         "digest" : {
-                           "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                           "maxLength" : 40,
+                           "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+                           "maxLength" : 64,
                            "optional" : 1,
                            "type" : "string",
                            "typetext" : "<string>"
                         },
                         "dnsbl_sites" : {
-                           "description" : "Optional list of DNS white/blacklist domains (see postscreen_dnsbl_sites parameter).",
+                           "description" : "Optional list of DNS white/blacklist domains (postfix option `postscreen_dnsbl_sites`).",
                            "format" : "dnsbl-entry-list",
                            "optional" : 1,
                            "type" : "string",
@@ -10214,7 +10857,7 @@ var pmgapi = [
                         },
                         "dnsbl_threshold" : {
                            "default" : 1,
-                           "description" : "The inclusive lower bound for blocking a remote SMTP client, based on its combined DNSBL score (see postscreen_dnsbl_threshold parameter).",
+                           "description" : "The inclusive lower bound for blocking a remote SMTP client, based on its combined DNSBL score (postfix option `postscreen_dnsbl_threshold`).",
                            "minimum" : 0,
                            "optional" : 1,
                            "type" : "integer",
@@ -10222,7 +10865,7 @@ var pmgapi = [
                         },
                         "dwarning" : {
                            "default" : 4,
-                           "description" : "SMTP delay warning time (in hours).",
+                           "description" : "SMTP delay warning time (in hours). (postfix option `delay_warning_time`)",
                            "minimum" : 0,
                            "optional" : 1,
                            "type" : "integer",
@@ -10237,6 +10880,15 @@ var pmgapi = [
                            "type" : "integer",
                            "typetext" : "<integer> (1 - 65535)"
                         },
+                        "filter-timeout" : {
+                           "default" : 600,
+                           "description" : "Timeout for the processing of one mail (in seconds)  (postfix option `smtpd_proxy_timeout` and `lmtp_data_done_timeout`)",
+                           "maximum" : 86400,
+                           "minimum" : 2,
+                           "optional" : 1,
+                           "type" : "integer",
+                           "typetext" : "<integer> (2 - 86400)"
+                        },
                         "greylist" : {
                            "default" : 1,
                            "description" : "Use Greylisting for IPv4.",
@@ -10271,7 +10923,7 @@ var pmgapi = [
                         },
                         "helotests" : {
                            "default" : 0,
-                           "description" : "Use SMTP HELO tests.",
+                           "description" : "Use SMTP HELO tests. (postfix option `smtpd_helo_restrictions`)",
                            "optional" : 1,
                            "type" : "boolean",
                            "typetext" : "<boolean>"
@@ -10293,7 +10945,7 @@ var pmgapi = [
                            "typetext" : "<integer> (1 - 65535)"
                         },
                         "max_filters" : {
-                           "default" : 38,
+                           "default" : 25,
                            "description" : "Maximum number of pmg-smtp-filter processes.",
                            "maximum" : 40,
                            "minimum" : 3,
@@ -10330,7 +10982,7 @@ var pmgapi = [
                         },
                         "maxsize" : {
                            "default" : 10485760,
-                           "description" : "Maximum email size. Larger mails are rejected.",
+                           "description" : "Maximum email size. Larger mails are rejected. (postfix option `message_size_limit`)",
                            "minimum" : 1024,
                            "optional" : 1,
                            "type" : "integer",
@@ -10353,14 +11005,14 @@ var pmgapi = [
                         },
                         "rejectunknown" : {
                            "default" : 0,
-                           "description" : "Reject unknown clients.",
+                           "description" : "Reject unknown clients. (postfix option `reject_unknown_client_hostname`)",
                            "optional" : 1,
                            "type" : "boolean",
                            "typetext" : "<boolean>"
                         },
                         "rejectunknownsender" : {
                            "default" : 0,
-                           "description" : "Reject unknown senders.",
+                           "description" : "Reject unknown senders. (postfix option `reject_unknown_sender_domain`)",
                            "optional" : 1,
                            "type" : "boolean",
                            "typetext" : "<boolean>"
@@ -10399,7 +11051,7 @@ var pmgapi = [
                            "type" : "string"
                         },
                         "smarthost" : {
-                           "description" : "When set, all outgoing mails are deliverd to the specified smarthost.",
+                           "description" : "When set, all outgoing mails are deliverd to the specified smarthost. (postfix option `default_transport`)",
                            "format" : "address",
                            "optional" : 1,
                            "type" : "string",
@@ -10407,13 +11059,20 @@ var pmgapi = [
                         },
                         "smarthostport" : {
                            "default" : 25,
-                           "description" : "SMTP port number for smarthost.",
+                           "description" : "SMTP port number for smarthost. (postfix option `default_transport`)",
                            "maximum" : 65535,
                            "minimum" : 1,
                            "optional" : 1,
                            "type" : "integer",
                            "typetext" : "<integer> (1 - 65535)"
                         },
+                        "smtputf8" : {
+                           "default" : 1,
+                           "description" : "Enable SMTPUTF8 support in Postfix and detection for locally generated mail (postfix option `smtputf8_enable`)",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
+                        },
                         "spf" : {
                            "default" : 1,
                            "description" : "Use Sender Policy Framework.",
@@ -10443,7 +11102,7 @@ var pmgapi = [
                            "typetext" : "<boolean>"
                         },
                         "verifyreceivers" : {
-                           "description" : "Enable receiver verification. The value spefifies the numerical reply code when the Postfix SMTP server rejects a recipient address.",
+                           "description" : "Enable receiver verification. The value specifies the numerical reply code when the Postfix SMTP server rejects a recipient address. (postfix options `reject_unknown_recipient_domain`, `reject_unverified_recipient`, and `unverified_recipient_reject_code`)",
                            "enum" : [
                               "450",
                               "550"
@@ -10526,12 +11185,19 @@ var pmgapi = [
                            "typetext" : "<string>"
                         },
                         "digest" : {
-                           "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                           "maxLength" : 40,
+                           "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+                           "maxLength" : 64,
                            "optional" : 1,
                            "type" : "string",
                            "typetext" : "<string>"
                         },
+                        "extract_text" : {
+                           "default" : 0,
+                           "description" : "Extract text from attachments (doc, pdf, rtf, images) and scan for spam.",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
+                        },
                         "languages" : {
                            "default" : "all",
                            "description" : "This option is used to specify which languages are considered OK for incoming mail.",
@@ -10555,14 +11221,14 @@ var pmgapi = [
                            "typetext" : "<boolean>"
                         },
                         "use_awl" : {
-                           "default" : 1,
+                           "default" : 0,
                            "description" : "Use the Auto-Whitelist plugin.",
                            "optional" : 1,
                            "type" : "boolean",
                            "typetext" : "<boolean>"
                         },
                         "use_bayes" : {
-                           "default" : 1,
+                           "default" : 0,
                            "description" : "Whether to use the naive-Bayesian-style classifier.",
                            "optional" : 1,
                            "type" : "boolean",
@@ -10656,8 +11322,8 @@ var pmgapi = [
                            "typetext" : "<string>"
                         },
                         "digest" : {
-                           "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                           "maxLength" : 40,
+                           "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+                           "maxLength" : 64,
                            "optional" : 1,
                            "type" : "string",
                            "typetext" : "<string>"
@@ -10792,8 +11458,8 @@ var pmgapi = [
                            "typetext" : "<string>"
                         },
                         "digest" : {
-                           "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                           "maxLength" : 40,
+                           "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
+                           "maxLength" : 64,
                            "optional" : 1,
                            "type" : "string",
                            "typetext" : "<string>"
@@ -11028,9 +11694,16 @@ var pmgapi = [
                                                    "type" : "boolean",
                                                    "typetext" : "<boolean>"
                                                 },
-                                                "header" : {
-                                                   "default" : 1,
-                                                   "description" : "Show message header content.",
+                                                "decode-header" : {
+                                                   "default" : 0,
+                                                   "description" : "Decodes the header fields.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
+                                                "header" : {
+                                                   "default" : 1,
+                                                   "description" : "Show message header content.",
                                                    "optional" : 1,
                                                    "type" : "boolean",
                                                    "typetext" : "<boolean>"
@@ -12323,6 +12996,28 @@ var pmgapi = [
                         "returns" : {
                            "type" : "null"
                         }
+                     },
+                     "PUT" : {
+                        "allowtoken" : 1,
+                        "description" : "Reload network configuration",
+                        "method" : "PUT",
+                        "name" : "reload_network_config",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "node" : {
+                                 "description" : "The cluster node name.",
+                                 "format" : "pve-node",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           }
+                        },
+                        "protected" : 1,
+                        "proxyto" : "node",
+                        "returns" : {
+                           "type" : "string"
+                        }
                      }
                   },
                   "leaf" : 0,
@@ -12343,7 +13038,14 @@ var pmgapi = [
                                     "parameters" : {
                                        "additionalProperties" : 0,
                                        "properties" : {
+                                          "download" : {
+                                             "description" : "Whether the tasklog file should be downloaded. This parameter can't be used in conjunction with other parameters",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
                                           "limit" : {
+                                             "description" : "The amount of lines to read from the tasklog.",
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
@@ -12356,6 +13058,7 @@ var pmgapi = [
                                              "typetext" : "<string>"
                                           },
                                           "start" : {
+                                             "description" : "Start at this line when reading the tasklog",
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
@@ -12553,12 +13256,37 @@ var pmgapi = [
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
+                              "since" : {
+                                 "description" : "Only list tasks since this UNIX epoch.",
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer>"
+                              },
                               "start" : {
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer",
                                  "typetext" : "<integer> (0 - N)"
                               },
+                              "statusfilter" : {
+                                 "description" : "List of Task States that should be returned.",
+                                 "format" : "pve-task-status-type-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "typefilter" : {
+                                 "description" : "Only list tasks of this type (e.g., aptupdate, saupdate).",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "until" : {
+                                 "description" : "Only list tasks until this UNIX epoch.",
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer>"
+                              },
                               "userfilter" : {
                                  "optional" : 1,
                                  "type" : "string",
@@ -12636,7 +13364,8 @@ var pmgapi = [
                                                 "pmg-hourly",
                                                 "pmg-daily",
                                                 "pmgreport",
-                                                "pmgspamreport"
+                                                "pmgspamreport",
+                                                "chrony"
                                              ],
                                              "type" : "string"
                                           }
@@ -12695,7 +13424,8 @@ var pmgapi = [
                                                 "pmg-hourly",
                                                 "pmg-daily",
                                                 "pmgreport",
-                                                "pmgspamreport"
+                                                "pmgspamreport",
+                                                "chrony"
                                              ],
                                              "type" : "string"
                                           }
@@ -12753,7 +13483,8 @@ var pmgapi = [
                                                 "pmg-hourly",
                                                 "pmg-daily",
                                                 "pmgreport",
-                                                "pmgspamreport"
+                                                "pmgspamreport",
+                                                "chrony"
                                              ],
                                              "type" : "string"
                                           }
@@ -12811,7 +13542,8 @@ var pmgapi = [
                                                 "pmg-hourly",
                                                 "pmg-daily",
                                                 "pmgreport",
-                                                "pmgspamreport"
+                                                "pmgspamreport",
+                                                "chrony"
                                              ],
                                              "type" : "string"
                                           }
@@ -12869,7 +13601,8 @@ var pmgapi = [
                                                 "pmg-hourly",
                                                 "pmg-daily",
                                                 "pmgreport",
-                                                "pmgspamreport"
+                                                "pmgspamreport",
+                                                "chrony"
                                              ],
                                              "type" : "string"
                                           }
@@ -12927,7 +13660,8 @@ var pmgapi = [
                                           "pmg-hourly",
                                           "pmg-daily",
                                           "pmgreport",
-                                          "pmgspamreport"
+                                          "pmgspamreport",
+                                          "chrony"
                                        ],
                                        "type" : "string"
                                     }
@@ -13254,6 +13988,315 @@ var pmgapi = [
                         "path" : "/nodes/{node}/apt/changelog",
                         "text" : "changelog"
                      },
+                     {
+                        "info" : {
+                           "GET" : {
+                              "allowtoken" : 1,
+                              "description" : "Get APT repository information.",
+                              "method" : "GET",
+                              "name" : "repositories",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "admin",
+                                    "audit"
+                                 ]
+                              },
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "description" : "Result from parsing the APT repository files in /etc/apt/.",
+                                 "properties" : {
+                                    "digest" : {
+                                       "description" : "Common digest of all files.",
+                                       "type" : "string"
+                                    },
+                                    "errors" : {
+                                       "description" : "List of problematic repository files.",
+                                       "items" : {
+                                          "properties" : {
+                                             "error" : {
+                                                "description" : "The error message",
+                                                "type" : "string"
+                                             },
+                                             "path" : {
+                                                "description" : "Path to the problematic file.",
+                                                "type" : "string"
+                                             }
+                                          },
+                                          "type" : "object"
+                                       },
+                                       "type" : "array"
+                                    },
+                                    "files" : {
+                                       "description" : "List of parsed repository files.",
+                                       "items" : {
+                                          "properties" : {
+                                             "digest" : {
+                                                "description" : "Digest of the file as bytes.",
+                                                "items" : {
+                                                   "type" : "integer"
+                                                },
+                                                "type" : "array"
+                                             },
+                                             "file-type" : {
+                                                "description" : "Format of the file.",
+                                                "enum" : [
+                                                   "list",
+                                                   "sources"
+                                                ],
+                                                "type" : "string"
+                                             },
+                                             "path" : {
+                                                "description" : "Path to the problematic file.",
+                                                "type" : "string"
+                                             },
+                                             "repositories" : {
+                                                "description" : "The parsed repositories.",
+                                                "items" : {
+                                                   "properties" : {
+                                                      "Comment" : {
+                                                         "description" : "Associated comment",
+                                                         "optional" : 1,
+                                                         "type" : "string"
+                                                      },
+                                                      "Components" : {
+                                                         "description" : "List of repository components",
+                                                         "items" : {
+                                                            "type" : "string"
+                                                         },
+                                                         "optional" : 1,
+                                                         "type" : "array"
+                                                      },
+                                                      "Enabled" : {
+                                                         "description" : "Whether the repository is enabled or not",
+                                                         "type" : "boolean"
+                                                      },
+                                                      "FileType" : {
+                                                         "description" : "Format of the defining file.",
+                                                         "enum" : [
+                                                            "list",
+                                                            "sources"
+                                                         ],
+                                                         "type" : "string"
+                                                      },
+                                                      "Options" : {
+                                                         "description" : "Additional options",
+                                                         "items" : {
+                                                            "properties" : {
+                                                               "Key" : {
+                                                                  "type" : "string"
+                                                               },
+                                                               "Values" : {
+                                                                  "items" : {
+                                                                     "type" : "string"
+                                                                  },
+                                                                  "type" : "array"
+                                                               }
+                                                            },
+                                                            "type" : "object"
+                                                         },
+                                                         "optional" : 1,
+                                                         "type" : "array"
+                                                      },
+                                                      "Suites" : {
+                                                         "description" : "List of package distribuitions",
+                                                         "items" : {
+                                                            "type" : "string"
+                                                         },
+                                                         "type" : "array"
+                                                      },
+                                                      "Types" : {
+                                                         "description" : "List of package types.",
+                                                         "items" : {
+                                                            "enum" : [
+                                                               "deb",
+                                                               "deb-src"
+                                                            ],
+                                                            "type" : "string"
+                                                         },
+                                                         "type" : "array"
+                                                      },
+                                                      "URIs" : {
+                                                         "description" : "List of repository URIs.",
+                                                         "items" : {
+                                                            "type" : "string"
+                                                         },
+                                                         "type" : "array"
+                                                      }
+                                                   },
+                                                   "type" : "object"
+                                                },
+                                                "type" : "array"
+                                             }
+                                          },
+                                          "type" : "object"
+                                       },
+                                       "type" : "array"
+                                    },
+                                    "infos" : {
+                                       "description" : "Additional information/warnings for APT repositories.",
+                                       "items" : {
+                                          "properties" : {
+                                             "index" : {
+                                                "description" : "Index of the associated repository within the file.",
+                                                "type" : "string"
+                                             },
+                                             "kind" : {
+                                                "description" : "Kind of the information (e.g. warning).",
+                                                "type" : "string"
+                                             },
+                                             "message" : {
+                                                "description" : "Information message.",
+                                                "type" : "string"
+                                             },
+                                             "path" : {
+                                                "description" : "Path to the associated file.",
+                                                "type" : "string"
+                                             },
+                                             "property" : {
+                                                "description" : "Property from which the info originates.",
+                                                "optional" : 1,
+                                                "type" : "string"
+                                             }
+                                          },
+                                          "type" : "object"
+                                       },
+                                       "type" : "array"
+                                    },
+                                    "standard-repos" : {
+                                       "description" : "List of standard repositories and their configuration status",
+                                       "items" : {
+                                          "properties" : {
+                                             "description" : {
+                                                "description" : "Description of the repository.",
+                                                "type" : "string"
+                                             },
+                                             "handle" : {
+                                                "description" : "Handle to identify the repository.",
+                                                "type" : "string"
+                                             },
+                                             "name" : {
+                                                "description" : "Display name of the repository.",
+                                                "type" : "string"
+                                             },
+                                             "status" : {
+                                                "description" : "Indicating enabled/disabled status, if the repository is configured.",
+                                                "optional" : 1,
+                                                "type" : "boolean"
+                                             }
+                                          },
+                                          "type" : "object"
+                                       },
+                                       "type" : "array"
+                                    }
+                                 },
+                                 "type" : "object"
+                              }
+                           },
+                           "POST" : {
+                              "allowtoken" : 1,
+                              "description" : "Change the properties of a repository. Currently only allows enabling/disabling.",
+                              "method" : "POST",
+                              "name" : "change_repository",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "digest" : {
+                                       "description" : "Digest to detect modifications.",
+                                       "maxLength" : 80,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "enabled" : {
+                                       "description" : "Whether the repository should be enabled or not.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "index" : {
+                                       "description" : "Index within the file (starting from 0).",
+                                       "type" : "integer",
+                                       "typetext" : "<integer>"
+                                    },
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "path" : {
+                                       "description" : "Path to the containing file.",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "admin"
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           },
+                           "PUT" : {
+                              "allowtoken" : 1,
+                              "description" : "Add a standard repository to the configuration",
+                              "method" : "PUT",
+                              "name" : "add_repository",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "digest" : {
+                                       "description" : "Digest to detect modifications.",
+                                       "maxLength" : 80,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "handle" : {
+                                       "description" : "Handle that identifies a repository.",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "admin"
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/apt/repositories",
+                        "text" : "repositories"
+                     },
                      {
                         "info" : {
                            "GET" : {
@@ -14390,6 +15433,7 @@ var pmgapi = [
                                  "datastore" : {
                                     "description" : "Proxmox Backup Server datastore name.",
                                     "optional" : 0,
+                                    "pattern" : "(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*)",
                                     "type" : "string"
                                  },
                                  "disable" : {
@@ -14450,6 +15494,13 @@ var pmgapi = [
                                     "optional" : 1,
                                     "type" : "integer"
                                  },
+                                 "namespace" : {
+                                    "description" : "Proxmox Backup Server namespace in the datastore, defaults to the root NS.",
+                                    "maxLength" : 256,
+                                    "optional" : 1,
+                                    "pattern" : "(?:(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*)/){0,7}(?:(?:[A-Za-z0-9_][A-Za-z0-9._\\-]*))?",
+                                    "type" : "string"
+                                 },
                                  "notify" : {
                                     "description" : "Specify when to notify via e-mail",
                                     "enum" : [
@@ -14465,6 +15516,14 @@ var pmgapi = [
                                     "optional" : 1,
                                     "type" : "string"
                                  },
+                                 "port" : {
+                                    "default" : 8007,
+                                    "description" : "Non-default port for Proxmox Backup Server.",
+                                    "maximum" : 65535,
+                                    "minimum" : 1,
+                                    "optional" : 1,
+                                    "type" : "integer"
+                                 },
                                  "remote" : {
                                     "description" : "Proxmox Backup Server ID.",
                                     "format" : "pve-configid",
@@ -15465,8 +16524,8 @@ var pmgapi = [
                                  "default" : "login",
                                  "description" : "Run specific command or default to login.",
                                  "enum" : [
-                                    "upgrade",
-                                    "login"
+                                    "login",
+                                    "upgrade"
                                  ],
                                  "optional" : 1,
                                  "type" : "string"
@@ -15914,27 +16973,64 @@ var pmgapi = [
          {
             "children" : [
                {
-                  "info" : {
-                     "DELETE" : {
-                        "allowtoken" : 1,
-                        "description" : "Delete a user.",
-                        "method" : "DELETE",
-                        "name" : "delete",
-                        "parameters" : {
-                           "additionalProperties" : 0,
-                           "properties" : {
-                              "userid" : {
-                                 "description" : "User ID",
-                                 "format" : "pmg-userid",
-                                 "maxLength" : 64,
-                                 "minLength" : 4,
-                                 "type" : "string",
-                                 "typetext" : "<string>"
-                              }
-                           }
-                        },
-                        "protected" : 1,
-                        "proxyto" : "master",
+                  "children" : [
+                     {
+                        "info" : {
+                           "PUT" : {
+                              "allowtoken" : 1,
+                              "description" : "Unlock a user's TFA authentication.",
+                              "method" : "PUT",
+                              "name" : "unlock_tfa",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "userid" : {
+                                       "description" : "User ID",
+                                       "format" : "pmg-userid",
+                                       "maxLength" : 64,
+                                       "minLength" : 4,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "admin"
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "boolean"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/access/users/{userid}/unlock-tfa",
+                        "text" : "unlock-tfa"
+                     }
+                  ],
+                  "info" : {
+                     "DELETE" : {
+                        "allowtoken" : 1,
+                        "description" : "Delete a user.",
+                        "method" : "DELETE",
+                        "name" : "delete",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "userid" : {
+                                 "description" : "User ID",
+                                 "format" : "pmg-userid",
+                                 "maxLength" : 64,
+                                 "minLength" : 4,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           }
+                        },
+                        "protected" : 1,
+                        "proxyto" : "master",
                         "returns" : {
                            "type" : "null"
                         }
@@ -16078,7 +17174,7 @@ var pmgapi = [
                         }
                      }
                   },
-                  "leaf" : 1,
+                  "leaf" : 0,
                   "path" : "/access/users/{userid}",
                   "text" : "{userid}"
                }
@@ -16114,6 +17210,16 @@ var pmgapi = [
                            "role" : {
                               "type" : "string"
                            },
+                           "tfa-locked-until" : {
+                              "description" : "Contains a timestamp until when a user is locked out of 2nd factors.",
+                              "optional" : 1,
+                              "type" : "integer"
+                           },
+                           "totp-locked" : {
+                              "description" : "True if the user is currently locked out of TOTP factors.",
+                              "optional" : 1,
+                              "type" : "boolean"
+                           },
                            "userid" : {
                               "type" : "string"
                            }
@@ -16232,11 +17338,436 @@ var pmgapi = [
             "path" : "/access/users",
             "text" : "users"
          },
+         {
+            "children" : [
+               {
+                  "children" : [
+                     {
+                        "info" : {
+                           "DELETE" : {
+                              "allowtoken" : 0,
+                              "description" : "Delete a TFA entry by ID.",
+                              "method" : "DELETE",
+                              "name" : "delete_tfa",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "id" : {
+                                       "description" : "A TFA entry id.",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "password" : {
+                                       "description" : "The current password.",
+                                       "maxLength" : 64,
+                                       "minLength" : 5,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "userid" : {
+                                       "description" : "User ID",
+                                       "format" : "pmg-userid",
+                                       "maxLength" : 64,
+                                       "minLength" : 4,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "admin",
+                                    "qmanager",
+                                    "audit"
+                                 ],
+                                 "description" : "Each user is allowed to modify their own TFA entries. Only root can modify entries of another user."
+                              },
+                              "protected" : 1,
+                              "proxyto" : "master",
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           },
+                           "GET" : {
+                              "allowtoken" : 0,
+                              "description" : "Fetch a requested TFA entry if present.",
+                              "method" : "GET",
+                              "name" : "get_tfa_entry",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "id" : {
+                                       "description" : "A TFA entry id.",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "userid" : {
+                                       "description" : "User ID",
+                                       "format" : "pmg-userid",
+                                       "maxLength" : 64,
+                                       "minLength" : 4,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "description" : "Each user is allowed to view their own TFA entries. Only root can view entries of another user.",
+                                 "user" : "all"
+                              },
+                              "protected" : 1,
+                              "proxyto" : "master",
+                              "returns" : {
+                                 "description" : "TFA Entry.",
+                                 "properties" : {
+                                    "created" : {
+                                       "description" : "Creation time of this entry as unix epoch.",
+                                       "type" : "integer"
+                                    },
+                                    "description" : {
+                                       "description" : "User chosen description for this entry.",
+                                       "type" : "string"
+                                    },
+                                    "enable" : {
+                                       "default" : 1,
+                                       "description" : "Whether this TFA entry is currently enabled.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
+                                    "id" : {
+                                       "description" : "The id used to reference this entry.",
+                                       "type" : "string"
+                                    },
+                                    "type" : {
+                                       "description" : "TFA Entry Type.",
+                                       "enum" : [
+                                          "totp",
+                                          "u2f",
+                                          "webauthn",
+                                          "recovery"
+                                       ],
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "type" : "object"
+                              }
+                           },
+                           "PUT" : {
+                              "allowtoken" : 0,
+                              "description" : "Add a TFA entry for a user.",
+                              "method" : "PUT",
+                              "name" : "update_tfa_entry",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "description" : {
+                                       "description" : "A description to distinguish multiple entries from one another",
+                                       "maxLength" : 255,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "enable" : {
+                                       "description" : "Whether the entry should be enabled for login.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "id" : {
+                                       "description" : "A TFA entry id.",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "password" : {
+                                       "description" : "The current password.",
+                                       "maxLength" : 64,
+                                       "minLength" : 5,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "userid" : {
+                                       "description" : "User ID",
+                                       "format" : "pmg-userid",
+                                       "maxLength" : 64,
+                                       "minLength" : 4,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "admin",
+                                    "qmanager",
+                                    "audit"
+                                 ],
+                                 "description" : "Each user is allowed to modify their own TFA entries. Only root can modify entries of another user."
+                              },
+                              "protected" : 1,
+                              "proxyto" : "master",
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/access/tfa/{userid}/{id}",
+                        "text" : "{id}"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "allowtoken" : 0,
+                        "description" : "List TFA configurations of users.",
+                        "method" : "GET",
+                        "name" : "list_user_tfa",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "userid" : {
+                                 "description" : "User ID",
+                                 "format" : "pmg-userid",
+                                 "maxLength" : 64,
+                                 "minLength" : 4,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "description" : "Each user is allowed to view their own TFA entries. Only root can view entries of another user.",
+                           "user" : "all"
+                        },
+                        "protected" : 1,
+                        "proxyto" : "master",
+                        "returns" : {
+                           "description" : "A list of the user's TFA entries.",
+                           "items" : {
+                              "description" : "TFA Entry.",
+                              "properties" : {
+                                 "created" : {
+                                    "description" : "Creation time of this entry as unix epoch.",
+                                    "type" : "integer"
+                                 },
+                                 "description" : {
+                                    "description" : "User chosen description for this entry.",
+                                    "type" : "string"
+                                 },
+                                 "enable" : {
+                                    "default" : 1,
+                                    "description" : "Whether this TFA entry is currently enabled.",
+                                    "optional" : 1,
+                                    "type" : "boolean"
+                                 },
+                                 "id" : {
+                                    "description" : "The id used to reference this entry.",
+                                    "type" : "string"
+                                 },
+                                 "type" : {
+                                    "description" : "TFA Entry Type.",
+                                    "enum" : [
+                                       "totp",
+                                       "u2f",
+                                       "webauthn",
+                                       "recovery"
+                                    ],
+                                    "type" : "string"
+                                 }
+                              },
+                              "type" : "object"
+                           },
+                           "type" : "array"
+                        }
+                     },
+                     "POST" : {
+                        "allowtoken" : 0,
+                        "description" : "Add a TFA entry for a user.",
+                        "method" : "POST",
+                        "name" : "add_tfa_entry",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "challenge" : {
+                                 "description" : "When responding to a u2f challenge: the original challenge string",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "description" : {
+                                 "description" : "A description to distinguish multiple entries from one another",
+                                 "maxLength" : 255,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "password" : {
+                                 "description" : "The current password.",
+                                 "maxLength" : 64,
+                                 "minLength" : 5,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "totp" : {
+                                 "description" : "A totp URI.",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "type" : {
+                                 "description" : "TFA Entry Type.",
+                                 "enum" : [
+                                    "totp",
+                                    "u2f",
+                                    "webauthn",
+                                    "recovery"
+                                 ],
+                                 "type" : "string"
+                              },
+                              "userid" : {
+                                 "description" : "User ID",
+                                 "format" : "pmg-userid",
+                                 "maxLength" : 64,
+                                 "minLength" : 4,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "value" : {
+                                 "description" : "The current value for the provided totp URI, or a Webauthn/U2F challenge response",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "admin",
+                              "qmanager",
+                              "audit"
+                           ],
+                           "description" : "Each user is allowed to modify their own TFA entries. Only root can modify entries of another user."
+                        },
+                        "protected" : 1,
+                        "proxyto" : "master",
+                        "returns" : {
+                           "properties" : {
+                              "challenge" : {
+                                 "description" : "When adding u2f entries, this contains a challenge the user must respond to in order to finish the registration.",
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "id" : {
+                                 "description" : "The id of a newly added TFA entry.",
+                                 "type" : "string"
+                              },
+                              "recovery" : {
+                                 "description" : "When adding recovery codes, this contains the list of codes to be displayed to the user",
+                                 "items" : {
+                                    "description" : "A recovery entry.",
+                                    "type" : "string"
+                                 },
+                                 "optional" : 1,
+                                 "type" : "array"
+                              }
+                           },
+                           "type" : "object"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/access/tfa/{userid}",
+                  "text" : "{userid}"
+               }
+            ],
+            "info" : {
+               "GET" : {
+                  "allowtoken" : 0,
+                  "description" : "List TFA configurations of users.",
+                  "method" : "GET",
+                  "name" : "list_tfa",
+                  "parameters" : {
+                     "additionalProperties" : 0
+                  },
+                  "permissions" : {
+                     "description" : "Returns all or just the logged-in user, depending on privileges.",
+                     "user" : "all"
+                  },
+                  "protected" : 1,
+                  "proxyto" : "master",
+                  "returns" : {
+                     "description" : "The list tuples of user and TFA entries.",
+                     "items" : {
+                        "properties" : {
+                           "entries" : {
+                              "items" : {
+                                 "description" : "TFA Entry.",
+                                 "properties" : {
+                                    "created" : {
+                                       "description" : "Creation time of this entry as unix epoch.",
+                                       "type" : "integer"
+                                    },
+                                    "description" : {
+                                       "description" : "User chosen description for this entry.",
+                                       "type" : "string"
+                                    },
+                                    "enable" : {
+                                       "default" : 1,
+                                       "description" : "Whether this TFA entry is currently enabled.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
+                                    "id" : {
+                                       "description" : "The id used to reference this entry.",
+                                       "type" : "string"
+                                    },
+                                    "type" : {
+                                       "description" : "TFA Entry Type.",
+                                       "enum" : [
+                                          "totp",
+                                          "u2f",
+                                          "webauthn",
+                                          "recovery"
+                                       ],
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "type" : "object"
+                              },
+                              "type" : "array"
+                           },
+                           "tfa-locked-until" : {
+                              "description" : "Contains a timestamp until when a user is locked out of 2nd factors.",
+                              "optional" : 1,
+                              "type" : "integer"
+                           },
+                           "totp-locked" : {
+                              "description" : "True if the user is currently locked out of TOTP factors.",
+                              "optional" : 1,
+                              "type" : "boolean"
+                           },
+                           "userid" : {
+                              "description" : "User this entry belongs to.",
+                              "type" : "string"
+                           }
+                        },
+                        "type" : "object"
+                     },
+                     "type" : "array"
+                  }
+               }
+            },
+            "leaf" : 0,
+            "path" : "/access/tfa",
+            "text" : "tfa"
+         },
          {
             "info" : {
                "GET" : {
                   "allowtoken" : 1,
-                  "description" : "Dummy. Useful for formaters which want to priovde a login page.",
+                  "description" : "Dummy. Useful for formatters which want to priovde a login page.",
                   "method" : "GET",
                   "name" : "get_ticket",
                   "parameters" : {
@@ -16286,6 +17817,12 @@ var pmgapi = [
                            "optional" : 1,
                            "type" : "string"
                         },
+                        "tfa-challenge" : {
+                           "description" : "The signed TFA challenge string the user wants to respond to.",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
                         "username" : {
                            "description" : "User name",
                            "maxLength" : 64,
@@ -16378,79 +17915,33 @@ var pmgapi = [
             },
             "permissions" : {
                "user" : "all"
-            },
-            "returns" : {
-               "items" : {
-                  "properties" : {
-                     "subdir" : {
-                        "type" : "string"
-                     }
-                  },
-                  "type" : "object"
-               },
-               "links" : [
-                  {
-                     "href" : "{subdir}",
-                     "rel" : "child"
-                  }
-               ],
-               "type" : "array"
-            }
-         }
-      },
-      "leaf" : 0,
-      "path" : "/access",
-      "text" : "access"
-   },
-   {
-      "children" : [
-         {
-            "children" : [
-               {
-                  "info" : {
-                     "DELETE" : {
-                        "allowtoken" : 1,
-                        "description" : "Delete user whitelist entries.",
-                        "method" : "DELETE",
-                        "name" : "whitelist_delete",
-                        "parameters" : {
-                           "additionalProperties" : 0,
-                           "properties" : {
-                              "address" : {
-                                 "description" : "The address you want to remove.",
-                                 "minLength" : 3,
-                                 "pattern" : "(?:[^\\s\\/\\\\;\\,]+)(?:\\,[^\\s\\/\\\\;\\,]+)*",
-                                 "type" : "string"
-                              },
-                              "pmail" : {
-                                 "description" : "List entries for the user with this primary email address. Quarantine users cannot specify this parameter, but it is required for all other roles.",
-                                 "maxLength" : 512,
-                                 "minLength" : 3,
-                                 "optional" : 1,
-                                 "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
-                                 "type" : "string"
-                              }
-                           }
-                        },
-                        "permissions" : {
-                           "check" : [
-                              "admin",
-                              "qmanager",
-                              "audit",
-                              "quser"
-                           ]
-                        },
-                        "protected" : 1,
-                        "returns" : {
-                           "type" : "null"
-                        }
+            },
+            "returns" : {
+               "items" : {
+                  "properties" : {
+                     "subdir" : {
+                        "type" : "string"
                      }
                   },
-                  "leaf" : 1,
-                  "path" : "/quarantine/whitelist/{address}",
-                  "text" : "{address}"
-               }
-            ],
+                  "type" : "object"
+               },
+               "links" : [
+                  {
+                     "href" : "{subdir}",
+                     "rel" : "child"
+                  }
+               ],
+               "type" : "array"
+            }
+         }
+      },
+      "leaf" : 0,
+      "path" : "/access",
+      "text" : "access"
+   },
+   {
+      "children" : [
+         {
             "info" : {
                "DELETE" : {
                   "allowtoken" : 1,
@@ -16565,57 +18056,11 @@ var pmgapi = [
                   }
                }
             },
-            "leaf" : 0,
+            "leaf" : 1,
             "path" : "/quarantine/whitelist",
             "text" : "whitelist"
          },
          {
-            "children" : [
-               {
-                  "info" : {
-                     "DELETE" : {
-                        "allowtoken" : 1,
-                        "description" : "Delete user blacklist entries.",
-                        "method" : "DELETE",
-                        "name" : "blacklist_delete",
-                        "parameters" : {
-                           "additionalProperties" : 0,
-                           "properties" : {
-                              "address" : {
-                                 "description" : "The address you want to remove.",
-                                 "minLength" : 3,
-                                 "pattern" : "(?:[^\\s\\/\\\\;\\,]+)(?:\\,[^\\s\\/\\\\;\\,]+)*",
-                                 "type" : "string"
-                              },
-                              "pmail" : {
-                                 "description" : "List entries for the user with this primary email address. Quarantine users cannot specify this parameter, but it is required for all other roles.",
-                                 "maxLength" : 512,
-                                 "minLength" : 3,
-                                 "optional" : 1,
-                                 "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
-                                 "type" : "string"
-                              }
-                           }
-                        },
-                        "permissions" : {
-                           "check" : [
-                              "admin",
-                              "qmanager",
-                              "audit",
-                              "quser"
-                           ]
-                        },
-                        "protected" : 1,
-                        "returns" : {
-                           "type" : "null"
-                        }
-                     }
-                  },
-                  "leaf" : 1,
-                  "path" : "/quarantine/blacklist/{address}",
-                  "text" : "{address}"
-               }
-            ],
             "info" : {
                "DELETE" : {
                   "allowtoken" : 1,
@@ -16730,7 +18175,7 @@ var pmgapi = [
                   }
                }
             },
-            "leaf" : 0,
+            "leaf" : 1,
             "path" : "/quarantine/blacklist",
             "text" : "blacklist"
          },
@@ -16751,6 +18196,17 @@ var pmgapi = [
                            "type" : "integer",
                            "typetext" : "<integer> (1 - N)"
                         },
+                        "quarantine-type" : {
+                           "default" : "spam",
+                           "description" : "Query this type of quarantine for users.",
+                           "enum" : [
+                              "spam",
+                              "attachment",
+                              "virus"
+                           ],
+                           "optional" : 1,
+                           "type" : "string"
+                        },
                         "starttime" : {
                            "description" : "Only consider entries newer than 'starttime' (unix epoch). Default is 'now - 1day'.",
                            "minimum" : 0,
@@ -16985,6 +18441,14 @@ var pmgapi = [
                            "type" : "integer",
                            "typetext" : "<integer> (1 - N)"
                         },
+                        "pmail" : {
+                           "description" : "List entries for the user with this primary email address. Quarantine users cannot specify this parameter, but it is required for all other roles.",
+                           "maxLength" : 512,
+                           "minLength" : 3,
+                           "optional" : 1,
+                           "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
+                           "type" : "string"
+                        },
                         "starttime" : {
                            "description" : "Only consider entries newer than 'starttime' (unix epoch). Default is 'now - 1day'.",
                            "minimum" : 0,
@@ -17069,6 +18533,14 @@ var pmgapi = [
                            "type" : "integer",
                            "typetext" : "<integer> (1 - N)"
                         },
+                        "pmail" : {
+                           "description" : "List entries for the user with this primary email address. Quarantine users cannot specify this parameter, but it is required for all other roles.",
+                           "maxLength" : 512,
+                           "minLength" : 3,
+                           "optional" : 1,
+                           "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
+                           "type" : "string"
+                        },
                         "starttime" : {
                            "description" : "Only consider entries newer than 'starttime' (unix epoch). Default is 'now - 1day'.",
                            "minimum" : 0,
@@ -17324,7 +18796,8 @@ var pmgapi = [
                      "check" : [
                         "admin",
                         "qmanager",
-                        "audit"
+                        "audit",
+                        "quser"
                      ]
                   },
                   "returns" : {
@@ -17384,207 +18857,88 @@ var pmgapi = [
                   },
                   "permissions" : {
                      "check" : [
-                        "admin",
-                        "qmanager",
-                        "audit",
-                        "quser"
-                     ]
-                  },
-                  "returns" : {
-                     "type" : "object"
-                  }
-               }
-            },
-            "leaf" : 1,
-            "path" : "/quarantine/download",
-            "text" : "download"
-         },
-         {
-            "info" : {
-               "POST" : {
-                  "allowtoken" : 1,
-                  "description" : "Send Quarantine link to given e-mail.",
-                  "method" : "POST",
-                  "name" : "sendlink",
-                  "parameters" : {
-                     "additionalProperties" : 0,
-                     "properties" : {
-                        "mail" : {
-                           "description" : "Email Address (allow most characters).",
-                           "maxLength" : 512,
-                           "minLength" : 3,
-                           "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
-                           "type" : "string"
-                        }
-                     }
-                  },
-                  "permissions" : {
-                     "user" : "world"
-                  },
-                  "protected" : 1,
-                  "returns" : {
-                     "type" : "null"
-                  }
-               }
-            },
-            "leaf" : 1,
-            "path" : "/quarantine/sendlink",
-            "text" : "sendlink"
-         }
-      ],
-      "info" : {
-         "GET" : {
-            "allowtoken" : 1,
-            "description" : "Directory index.",
-            "method" : "GET",
-            "name" : "index",
-            "parameters" : {
-               "additionalProperties" : 0
-            },
-            "permissions" : {
-               "user" : "all"
-            },
-            "returns" : {
-               "items" : {
-                  "properties" : {},
-                  "type" : "object"
-               },
-               "links" : [
-                  {
-                     "href" : "{name}",
-                     "rel" : "child"
-                  }
-               ],
-               "type" : "array"
-            }
-         }
-      },
-      "leaf" : 0,
-      "path" : "/quarantine",
-      "text" : "quarantine"
-   },
-   {
-      "children" : [
-         {
-            "children" : [
-               {
-                  "info" : {
-                     "GET" : {
-                        "allowtoken" : 1,
-                        "description" : "Detailed Contact Statistics.",
-                        "method" : "GET",
-                        "name" : "contactdetails",
-                        "parameters" : {
-                           "additionalProperties" : 0,
-                           "properties" : {
-                              "contact" : {
-                                 "description" : "Contact email address.",
-                                 "maxLength" : 512,
-                                 "minLength" : 3,
-                                 "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
-                                 "type" : "string"
-                              },
-                              "day" : {
-                                 "description" : "Day of month. Get statistics for a single day.",
-                                 "maximum" : 31,
-                                 "minimum" : 1,
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "<integer> (1 - 31)"
-                              },
-                              "endtime" : {
-                                 "description" : "Only consider entries older than 'endtime' (unix epoch). This is set to '<start> + 1day' by default.",
-                                 "minimum" : 1,
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "<integer> (1 - N)"
-                              },
-                              "filter" : {
-                                 "description" : "Sender address filter.",
-                                 "maxLength" : 512,
-                                 "optional" : 1,
-                                 "type" : "string",
-                                 "typetext" : "<string>"
-                              },
-                              "month" : {
-                                 "description" : "Month. You will get statistics for the whole month if you do not specify a day.",
-                                 "maximum" : 12,
-                                 "minimum" : 1,
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "<integer> (1 - 12)"
-                              },
-                              "orderby" : {
-                                 "description" : "Remote sorting configuration(JSON, ExtJS compatible).",
-                                 "maxLength" : 4096,
-                                 "optional" : 1,
-                                 "type" : "string",
-                                 "typetext" : "<string>"
-                              },
-                              "starttime" : {
-                                 "description" : "Only consider entries newer than 'starttime' (unix epoch). Default is 'now - 1day'.",
-                                 "minimum" : 0,
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "<integer> (0 - N)"
-                              },
-                              "year" : {
-                                 "description" : "Year. Defaults to current year. You will get statistics for the whole year if you do not specify a month or day.",
-                                 "maximum" : 3000,
-                                 "minimum" : 1900,
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "<integer> (1900 - 3000)"
-                              }
-                           }
-                        },
-                        "permissions" : {
-                           "check" : [
-                              "admin",
-                              "qmanager",
-                              "audit"
-                           ]
-                        },
-                        "returns" : {
-                           "items" : {
-                              "properties" : {
-                                 "blocked" : {
-                                    "description" : "Mail was blocked.",
-                                    "type" : "boolean"
-                                 },
-                                 "bytes" : {
-                                    "description" : "Mail traffic (Bytes).",
-                                    "type" : "number"
-                                 },
-                                 "sender" : {
-                                    "description" : "Sender email.",
-                                    "type" : "string"
-                                 },
-                                 "spamlevel" : {
-                                    "description" : "Spam score.",
-                                    "type" : "number"
-                                 },
-                                 "time" : {
-                                    "description" : "Receive time stamp",
-                                    "type" : "integer"
-                                 },
-                                 "virusinfo" : {
-                                    "description" : "Virus name.",
-                                    "optional" : 1,
-                                    "type" : "string"
-                                 }
-                              },
-                              "type" : "object"
-                           },
-                           "type" : "array"
+                        "admin",
+                        "qmanager",
+                        "audit",
+                        "quser"
+                     ]
+                  },
+                  "returns" : {
+                     "type" : "object"
+                  }
+               }
+            },
+            "leaf" : 1,
+            "path" : "/quarantine/download",
+            "text" : "download"
+         },
+         {
+            "info" : {
+               "POST" : {
+                  "allowtoken" : 1,
+                  "description" : "Send Quarantine link to given e-mail.",
+                  "method" : "POST",
+                  "name" : "sendlink",
+                  "parameters" : {
+                     "additionalProperties" : 0,
+                     "properties" : {
+                        "mail" : {
+                           "description" : "Email Address (allow most characters).",
+                           "maxLength" : 512,
+                           "minLength" : 3,
+                           "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
+                           "type" : "string"
                         }
                      }
                   },
-                  "leaf" : 1,
-                  "path" : "/statistics/contact/{contact}",
-                  "text" : "{contact}"
+                  "permissions" : {
+                     "user" : "world"
+                  },
+                  "protected" : 1,
+                  "returns" : {
+                     "type" : "null"
+                  }
                }
-            ],
+            },
+            "leaf" : 1,
+            "path" : "/quarantine/sendlink",
+            "text" : "sendlink"
+         }
+      ],
+      "info" : {
+         "GET" : {
+            "allowtoken" : 1,
+            "description" : "Directory index.",
+            "method" : "GET",
+            "name" : "index",
+            "parameters" : {
+               "additionalProperties" : 0
+            },
+            "permissions" : {
+               "user" : "all"
+            },
+            "returns" : {
+               "items" : {
+                  "properties" : {},
+                  "type" : "object"
+               },
+               "links" : [
+                  {
+                     "href" : "{name}",
+                     "rel" : "child"
+                  }
+               ],
+               "type" : "array"
+            }
+         }
+      },
+      "leaf" : 0,
+      "path" : "/quarantine",
+      "text" : "quarantine"
+   },
+   {
+      "children" : [
+         {
             "info" : {
                "GET" : {
                   "allowtoken" : 1,
@@ -17689,7 +19043,7 @@ var pmgapi = [
                   }
                }
             },
-            "leaf" : 0,
+            "leaf" : 1,
             "path" : "/statistics/contact",
             "text" : "contact"
          },
@@ -17826,125 +19180,6 @@ var pmgapi = [
             "text" : "detail"
          },
          {
-            "children" : [
-               {
-                  "info" : {
-                     "GET" : {
-                        "allowtoken" : 1,
-                        "description" : "Detailed Sender Statistics.",
-                        "method" : "GET",
-                        "name" : "senderdetails",
-                        "parameters" : {
-                           "additionalProperties" : 0,
-                           "properties" : {
-                              "day" : {
-                                 "description" : "Day of month. Get statistics for a single day.",
-                                 "maximum" : 31,
-                                 "minimum" : 1,
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "<integer> (1 - 31)"
-                              },
-                              "endtime" : {
-                                 "description" : "Only consider entries older than 'endtime' (unix epoch). This is set to '<start> + 1day' by default.",
-                                 "minimum" : 1,
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "<integer> (1 - N)"
-                              },
-                              "filter" : {
-                                 "description" : "Receiver address filter.",
-                                 "maxLength" : 512,
-                                 "optional" : 1,
-                                 "type" : "string",
-                                 "typetext" : "<string>"
-                              },
-                              "month" : {
-                                 "description" : "Month. You will get statistics for the whole month if you do not specify a day.",
-                                 "maximum" : 12,
-                                 "minimum" : 1,
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "<integer> (1 - 12)"
-                              },
-                              "orderby" : {
-                                 "description" : "Remote sorting configuration(JSON, ExtJS compatible).",
-                                 "maxLength" : 4096,
-                                 "optional" : 1,
-                                 "type" : "string",
-                                 "typetext" : "<string>"
-                              },
-                              "sender" : {
-                                 "description" : "Sender email address.",
-                                 "maxLength" : 512,
-                                 "minLength" : 3,
-                                 "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
-                                 "type" : "string"
-                              },
-                              "starttime" : {
-                                 "description" : "Only consider entries newer than 'starttime' (unix epoch). Default is 'now - 1day'.",
-                                 "minimum" : 0,
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "<integer> (0 - N)"
-                              },
-                              "year" : {
-                                 "description" : "Year. Defaults to current year. You will get statistics for the whole year if you do not specify a month or day.",
-                                 "maximum" : 3000,
-                                 "minimum" : 1900,
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "<integer> (1900 - 3000)"
-                              }
-                           }
-                        },
-                        "permissions" : {
-                           "check" : [
-                              "admin",
-                              "qmanager",
-                              "audit"
-                           ]
-                        },
-                        "returns" : {
-                           "items" : {
-                              "properties" : {
-                                 "blocked" : {
-                                    "description" : "Mail was blocked.",
-                                    "type" : "boolean"
-                                 },
-                                 "bytes" : {
-                                    "description" : "Mail traffic (Bytes).",
-                                    "type" : "number"
-                                 },
-                                 "receiver" : {
-                                    "description" : "Receiver email.",
-                                    "type" : "string"
-                                 },
-                                 "spamlevel" : {
-                                    "description" : "Spam score.",
-                                    "type" : "number"
-                                 },
-                                 "time" : {
-                                    "description" : "Receive time stamp",
-                                    "type" : "integer"
-                                 },
-                                 "virusinfo" : {
-                                    "description" : "Virus name.",
-                                    "optional" : 1,
-                                    "type" : "string"
-                                 }
-                              },
-                              "type" : "object"
-                           },
-                           "type" : "array"
-                        }
-                     }
-                  },
-                  "leaf" : 1,
-                  "path" : "/statistics/sender/{sender}",
-                  "text" : "{sender}"
-               }
-            ],
             "info" : {
                "GET" : {
                   "allowtoken" : 1,
@@ -18049,130 +19284,11 @@ var pmgapi = [
                   }
                }
             },
-            "leaf" : 0,
+            "leaf" : 1,
             "path" : "/statistics/sender",
             "text" : "sender"
          },
          {
-            "children" : [
-               {
-                  "info" : {
-                     "GET" : {
-                        "allowtoken" : 1,
-                        "description" : "Detailed Receiver Statistics.",
-                        "method" : "GET",
-                        "name" : "receiverdetails",
-                        "parameters" : {
-                           "additionalProperties" : 0,
-                           "properties" : {
-                              "day" : {
-                                 "description" : "Day of month. Get statistics for a single day.",
-                                 "maximum" : 31,
-                                 "minimum" : 1,
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "<integer> (1 - 31)"
-                              },
-                              "endtime" : {
-                                 "description" : "Only consider entries older than 'endtime' (unix epoch). This is set to '<start> + 1day' by default.",
-                                 "minimum" : 1,
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "<integer> (1 - N)"
-                              },
-                              "filter" : {
-                                 "description" : "Sender address filter.",
-                                 "maxLength" : 512,
-                                 "optional" : 1,
-                                 "type" : "string",
-                                 "typetext" : "<string>"
-                              },
-                              "month" : {
-                                 "description" : "Month. You will get statistics for the whole month if you do not specify a day.",
-                                 "maximum" : 12,
-                                 "minimum" : 1,
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "<integer> (1 - 12)"
-                              },
-                              "orderby" : {
-                                 "description" : "Remote sorting configuration(JSON, ExtJS compatible).",
-                                 "maxLength" : 4096,
-                                 "optional" : 1,
-                                 "type" : "string",
-                                 "typetext" : "<string>"
-                              },
-                              "receiver" : {
-                                 "description" : "Receiver email address.",
-                                 "maxLength" : 512,
-                                 "minLength" : 3,
-                                 "pattern" : "(?:[^\\s\\\\@]+\\@[^\\s\\/\\\\@]+)",
-                                 "type" : "string"
-                              },
-                              "starttime" : {
-                                 "description" : "Only consider entries newer than 'starttime' (unix epoch). Default is 'now - 1day'.",
-                                 "minimum" : 0,
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "<integer> (0 - N)"
-                              },
-                              "year" : {
-                                 "description" : "Year. Defaults to current year. You will get statistics for the whole year if you do not specify a month or day.",
-                                 "maximum" : 3000,
-                                 "minimum" : 1900,
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "<integer> (1900 - 3000)"
-                              }
-                           }
-                        },
-                        "permissions" : {
-                           "check" : [
-                              "admin",
-                              "qmanager",
-                              "audit"
-                           ]
-                        },
-                        "returns" : {
-                           "items" : {
-                              "properties" : {
-                                 "blocked" : {
-                                    "description" : "Mail was blocked.",
-                                    "type" : "boolean"
-                                 },
-                                 "bytes" : {
-                                    "description" : "Mail traffic (Bytes).",
-                                    "type" : "number"
-                                 },
-                                 "sender" : {
-                                    "description" : "Sender email.",
-                                    "type" : "string"
-                                 },
-                                 "spamlevel" : {
-                                    "description" : "Spam score.",
-                                    "type" : "number"
-                                 },
-                                 "time" : {
-                                    "description" : "Receive time stamp",
-                                    "type" : "integer"
-                                 },
-                                 "virusinfo" : {
-                                    "description" : "Virus name.",
-                                    "optional" : 1,
-                                    "type" : "string"
-                                 }
-                              },
-                              "type" : "object"
-                           },
-                           "type" : "array"
-                        }
-                     }
-                  },
-                  "leaf" : 1,
-                  "path" : "/statistics/receiver/{receiver}",
-                  "text" : "{receiver}"
-               }
-            ],
             "info" : {
                "GET" : {
                   "allowtoken" : 1,
@@ -18282,7 +19398,7 @@ var pmgapi = [
                   }
                }
             },
-            "leaf" : 0,
+            "leaf" : 1,
             "path" : "/statistics/receiver",
             "text" : "receiver"
          },