]> git.proxmox.com Git - pve-docs.git/blobdiff - api-viewer/apidata.js
build: refactor build process
[pve-docs.git] / api-viewer / apidata.js
index 3214dfa410b840da7e7867caa4c9126da41110b1..f47afe89e16642024c2d8b081a78748c30de0bf2 100644 (file)
@@ -4,508 +4,155 @@ var pveapi = [
          {
             "children" : [
                {
-                  "children" : [
-                     {
-                        "children" : [
-                           {
-                              "info" : {
-                                 "DELETE" : {
-                                    "description" : "Delete rule.",
-                                    "method" : "DELETE",
-                                    "name" : "delete_rule",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "digest" : {
-                                             "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                                             "maxLength" : 40,
-                                             "optional" : 1,
-                                             "type" : "string"
-                                          },
-                                          "group" : {
-                                             "description" : "Security Group name.",
-                                             "maxLength" : 18,
-                                             "minLength" : 2,
-                                             "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                             "type" : "string"
-                                          },
-                                          "pos" : {
-                                             "description" : "Update rule at position <pos>.",
-                                             "minimum" : 0,
-                                             "optional" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "integer (0- N)"
-                                          }
-                                       }
-                                    },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/",
-                                          [
-                                             "Sys.Modify"
-                                          ]
-                                       ]
-                                    },
-                                    "protected" : 1,
-                                    "proxyto" : null,
-                                    "returns" : {
-                                       "type" : "null"
-                                    }
-                                 },
-                                 "GET" : {
-                                    "description" : "Get single rule data.",
-                                    "method" : "GET",
-                                    "name" : "get_rule",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "group" : {
-                                             "description" : "Security Group name.",
-                                             "maxLength" : 18,
-                                             "minLength" : 2,
-                                             "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                             "type" : "string"
-                                          },
-                                          "pos" : {
-                                             "description" : "Update rule at position <pos>.",
-                                             "minimum" : 0,
-                                             "optional" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "integer (0- N)"
-                                          }
-                                       }
-                                    },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/",
-                                          [
-                                             "Sys.Audit"
-                                          ]
-                                       ]
-                                    },
-                                    "proxyto" : null,
-                                    "returns" : {
-                                       "properties" : {
-                                          "pos" : {
-                                             "type" : "integer"
-                                          }
-                                       },
-                                       "type" : "object"
-                                    }
-                                 },
-                                 "PUT" : {
-                                    "description" : "Modify rule data.",
-                                    "method" : "PUT",
-                                    "name" : "update_rule",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "action" : {
-                                             "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
-                                             "maxLength" : 20,
-                                             "minLength" : 2,
-                                             "optional" : 1,
-                                             "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                             "type" : "string"
-                                          },
-                                          "comment" : {
-                                             "optional" : 1,
-                                             "type" : "string"
-                                          },
-                                          "delete" : {
-                                             "description" : "A list of settings you want to delete.",
-                                             "format" : "pve-configid-list",
-                                             "optional" : 1,
-                                             "type" : "string"
-                                          },
-                                          "dest" : {
-                                             "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
-                                             "format" : "pve-fw-addr-spec",
-                                             "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"
-                                          },
-                                          "dport" : {
-                                             "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
-                                             "format" : "pve-fw-dport-spec",
-                                             "optional" : 1,
-                                             "type" : "string"
-                                          },
-                                          "enable" : {
-                                             "minimum" : 0,
-                                             "optional" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "integer (0- N)"
-                                          },
-                                          "group" : {
-                                             "description" : "Security Group name.",
-                                             "maxLength" : 18,
-                                             "minLength" : 2,
-                                             "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                             "type" : "string"
-                                          },
-                                          "iface" : {
-                                             "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
-                                             "format" : "pve-iface",
-                                             "maxLength" : 20,
-                                             "minLength" : 2,
-                                             "optional" : 1,
-                                             "type" : "string"
-                                          },
-                                          "macro" : {
-                                             "maxLength" : 128,
-                                             "optional" : 1,
-                                             "type" : "string"
-                                          },
-                                          "moveto" : {
-                                             "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
-                                             "minimum" : 0,
-                                             "optional" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "integer (0- N)"
-                                          },
-                                          "pos" : {
-                                             "description" : "Update rule at position <pos>.",
-                                             "minimum" : 0,
-                                             "optional" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "integer (0- N)"
-                                          },
-                                          "proto" : {
-                                             "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
-                                             "format" : "pve-fw-protocol-spec",
-                                             "optional" : 1,
-                                             "type" : "string"
-                                          },
-                                          "source" : {
-                                             "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
-                                             "format" : "pve-fw-addr-spec",
-                                             "optional" : 1,
-                                             "type" : "string"
-                                          },
-                                          "sport" : {
-                                             "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
-                                             "format" : "pve-fw-sport-spec",
-                                             "optional" : 1,
-                                             "type" : "string"
-                                          },
-                                          "type" : {
-                                             "enum" : [
-                                                "in",
-                                                "out",
-                                                "group"
-                                             ],
-                                             "optional" : 1,
-                                             "type" : "string"
-                                          }
-                                       }
-                                    },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/",
-                                          [
-                                             "Sys.Modify"
-                                          ]
-                                       ]
-                                    },
-                                    "protected" : 1,
-                                    "proxyto" : null,
-                                    "returns" : {
-                                       "type" : "null"
-                                    }
-                                 }
-                              },
-                              "leaf" : 1,
-                              "path" : "/cluster/firewall/groups/{group}/{pos}",
-                              "text" : "{pos}"
-                           }
-                        ],
-                        "info" : {
-                           "DELETE" : {
-                              "description" : "Delete security group.",
-                              "method" : "DELETE",
-                              "name" : "delete_security_group",
-                              "parameters" : {
-                                 "additionalProperties" : 0,
-                                 "properties" : {
-                                    "group" : {
-                                       "description" : "Security Group name.",
-                                       "maxLength" : 18,
-                                       "minLength" : 2,
-                                       "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                       "type" : "string"
-                                    }
-                                 }
+                  "info" : {
+                     "DELETE" : {
+                        "description" : "Mark replication job for removal.",
+                        "method" : "DELETE",
+                        "name" : "delete",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "force" : {
+                                 "default" : 0,
+                                 "description" : "Will remove the jobconfig entry, but will not cleanup.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Modify"
-                                    ]
-                                 ]
+                              "id" : {
+                                 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
+                                 "format" : "pve-replication-job-id",
+                                 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
+                                 "type" : "string"
                               },
-                              "protected" : 1,
-                              "returns" : {
-                                 "type" : "null"
-                              }
-                           },
-                           "GET" : {
-                              "description" : "List rules.",
-                              "method" : "GET",
-                              "name" : "get_rules",
-                              "parameters" : {
-                                 "additionalProperties" : 0,
-                                 "properties" : {
-                                    "group" : {
-                                       "description" : "Security Group name.",
-                                       "maxLength" : 18,
-                                       "minLength" : 2,
-                                       "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                       "type" : "string"
-                                    }
-                                 }
-                              },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Audit"
-                                    ]
-                                 ]
-                              },
-                              "proxyto" : null,
-                              "returns" : {
-                                 "items" : {
-                                    "properties" : {
-                                       "pos" : {
-                                          "type" : "integer"
-                                       }
-                                    },
-                                    "type" : "object"
-                                 },
-                                 "links" : [
-                                    {
-                                       "href" : "{pos}",
-                                       "rel" : "child"
-                                    }
-                                 ],
-                                 "type" : "array"
-                              }
-                           },
-                           "POST" : {
-                              "description" : "Create new rule.",
-                              "method" : "POST",
-                              "name" : "create_rule",
-                              "parameters" : {
-                                 "additionalProperties" : 0,
-                                 "properties" : {
-                                    "action" : {
-                                       "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
-                                       "maxLength" : 20,
-                                       "minLength" : 2,
-                                       "optional" : 0,
-                                       "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                       "type" : "string"
-                                    },
-                                    "comment" : {
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "dest" : {
-                                       "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
-                                       "format" : "pve-fw-addr-spec",
-                                       "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"
-                                    },
-                                    "dport" : {
-                                       "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
-                                       "format" : "pve-fw-dport-spec",
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "enable" : {
-                                       "minimum" : 0,
-                                       "optional" : 1,
-                                       "type" : "integer",
-                                       "typetext" : "integer (0- N)"
-                                    },
-                                    "group" : {
-                                       "description" : "Security Group name.",
-                                       "maxLength" : 18,
-                                       "minLength" : 2,
-                                       "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                       "type" : "string"
-                                    },
-                                    "iface" : {
-                                       "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
-                                       "format" : "pve-iface",
-                                       "maxLength" : 20,
-                                       "minLength" : 2,
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "macro" : {
-                                       "maxLength" : 128,
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "pos" : {
-                                       "description" : "Update rule at position <pos>.",
-                                       "minimum" : 0,
-                                       "optional" : 1,
-                                       "type" : "integer",
-                                       "typetext" : "integer (0- N)"
-                                    },
-                                    "proto" : {
-                                       "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
-                                       "format" : "pve-fw-protocol-spec",
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "source" : {
-                                       "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
-                                       "format" : "pve-fw-addr-spec",
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "sport" : {
-                                       "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
-                                       "format" : "pve-fw-sport-spec",
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "type" : {
-                                       "enum" : [
-                                          "in",
-                                          "out",
-                                          "group"
-                                       ],
-                                       "optional" : 0,
-                                       "type" : "string"
-                                    }
-                                 }
-                              },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Modify"
-                                    ]
-                                 ]
-                              },
-                              "protected" : 1,
-                              "proxyto" : null,
-                              "returns" : {
-                                 "type" : "null"
+                              "keep" : {
+                                 "default" : 0,
+                                 "description" : "Keep replicated data at target (do not remove).",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               }
                            }
                         },
-                        "leaf" : 0,
-                        "path" : "/cluster/firewall/groups/{group}",
-                        "text" : "{group}"
-                     }
-                  ],
-                  "info" : {
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/storage",
+                              [
+                                 "Datastore.Allocate"
+                              ]
+                           ]
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "type" : "null"
+                        }
+                     },
                      "GET" : {
-                        "description" : "List security groups.",
+                        "description" : "Read replication job configuration.",
                         "method" : "GET",
-                        "name" : "list_security_groups",
+                        "name" : "read",
                         "parameters" : {
-                           "additionalProperties" : 0
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "id" : {
+                                 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
+                                 "format" : "pve-replication-job-id",
+                                 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
+                                 "type" : "string"
+                              }
+                           }
                         },
                         "permissions" : {
+                           "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
                            "user" : "all"
                         },
                         "returns" : {
-                           "items" : {
-                              "properties" : {
-                                 "comment" : {
-                                    "optional" : 1,
-                                    "type" : "string"
-                                 },
-                                 "digest" : {
-                                    "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                                    "maxLength" : 40,
-                                    "optional" : 0,
-                                    "type" : "string"
-                                 },
-                                 "group" : {
-                                    "description" : "Security Group name.",
-                                    "maxLength" : 18,
-                                    "minLength" : 2,
-                                    "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                    "type" : "string"
-                                 }
-                              },
-                              "type" : "object"
-                           },
-                           "links" : [
-                              {
-                                 "href" : "{group}",
-                                 "rel" : "child"
-                              }
-                           ],
-                           "type" : "array"
+                           "type" : "object"
                         }
                      },
-                     "POST" : {
-                        "description" : "Create new security group.",
-                        "method" : "POST",
-                        "name" : "create_security_group",
+                     "PUT" : {
+                        "description" : "Update replication job configuration.",
+                        "method" : "PUT",
+                        "name" : "update",
                         "parameters" : {
                            "additionalProperties" : 0,
                            "properties" : {
                               "comment" : {
+                                 "description" : "Description.",
+                                 "maxLength" : 4096,
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "delete" : {
+                                 "description" : "A list of settings you want to delete.",
+                                 "format" : "pve-configid-list",
+                                 "maxLength" : 4096,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "digest" : {
                                  "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
                                  "maxLength" : 40,
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
-                              "group" : {
-                                 "description" : "Security Group name.",
-                                 "maxLength" : 18,
-                                 "minLength" : 2,
-                                 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                              "disable" : {
+                                 "description" : "Flag to disable/deactivate the entry.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "id" : {
+                                 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
+                                 "format" : "pve-replication-job-id",
+                                 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
                                  "type" : "string"
                               },
-                              "rename" : {
-                                 "description" : "Rename/update an existing security group. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing group.",
-                                 "maxLength" : 18,
-                                 "minLength" : 2,
+                              "rate" : {
+                                 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
+                                 "minimum" : 1,
                                  "optional" : 1,
-                                 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                 "type" : "string"
+                                 "type" : "number",
+                                 "typetext" : "<number> (1 - N)"
+                              },
+                              "remove_job" : {
+                                 "description" : "Mark the replication job for removal. The job will remove all local replication snapshots. When set to 'full', it also tries to remove replicated volumes on the target. The job then removes itself from the configuration file.",
+                                 "enum" : [
+                                    "local",
+                                    "full"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "schedule" : {
+                                 "default" : "*/15",
+                                 "description" : "Storage replication schedule. The format is a subset of `systemd` calender events.",
+                                 "format" : "pve-calendar-event",
+                                 "maxLength" : 128,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "source" : {
+                                 "description" : "Source of the replication.",
+                                 "format" : "pve-node",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
-                           }
+                           },
+                           "type" : "object"
                         },
                         "permissions" : {
                            "check" : [
                               "perm",
-                              "/",
+                              "/storage",
                               [
-                                 "Sys.Modify"
+                                 "Datastore.Allocate"
                               ]
                            ]
                         },
@@ -515,217 +162,231 @@ var pveapi = [
                         }
                      }
                   },
-                  "leaf" : 0,
-                  "path" : "/cluster/firewall/groups",
-                  "text" : "groups"
+                  "leaf" : 1,
+                  "path" : "/cluster/replication/{id}",
+                  "text" : "{id}"
+               }
+            ],
+            "info" : {
+               "GET" : {
+                  "description" : "List replication jobs.",
+                  "method" : "GET",
+                  "name" : "index",
+                  "parameters" : {
+                     "additionalProperties" : 0
+                  },
+                  "permissions" : {
+                     "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
+                     "user" : "all"
+                  },
+                  "returns" : {
+                     "items" : {
+                        "properties" : {},
+                        "type" : "object"
+                     },
+                     "links" : [
+                        {
+                           "href" : "{id}",
+                           "rel" : "child"
+                        }
+                     ],
+                     "type" : "array"
+                  }
                },
+               "POST" : {
+                  "description" : "Create a new replication job",
+                  "method" : "POST",
+                  "name" : "create",
+                  "parameters" : {
+                     "additionalProperties" : 0,
+                     "properties" : {
+                        "comment" : {
+                           "description" : "Description.",
+                           "maxLength" : 4096,
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "disable" : {
+                           "description" : "Flag to disable/deactivate the entry.",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
+                        },
+                        "id" : {
+                           "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
+                           "format" : "pve-replication-job-id",
+                           "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
+                           "type" : "string"
+                        },
+                        "rate" : {
+                           "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
+                           "minimum" : 1,
+                           "optional" : 1,
+                           "type" : "number",
+                           "typetext" : "<number> (1 - N)"
+                        },
+                        "remove_job" : {
+                           "description" : "Mark the replication job for removal. The job will remove all local replication snapshots. When set to 'full', it also tries to remove replicated volumes on the target. The job then removes itself from the configuration file.",
+                           "enum" : [
+                              "local",
+                              "full"
+                           ],
+                           "optional" : 1,
+                           "type" : "string"
+                        },
+                        "schedule" : {
+                           "default" : "*/15",
+                           "description" : "Storage replication schedule. The format is a subset of `systemd` calender events.",
+                           "format" : "pve-calendar-event",
+                           "maxLength" : 128,
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "source" : {
+                           "description" : "Source of the replication.",
+                           "format" : "pve-node",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "target" : {
+                           "description" : "Target node.",
+                           "format" : "pve-node",
+                           "optional" : 0,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "type" : {
+                           "description" : "Section type.",
+                           "enum" : [
+                              "local"
+                           ],
+                           "type" : "string"
+                        }
+                     },
+                     "type" : "object"
+                  },
+                  "permissions" : {
+                     "check" : [
+                        "perm",
+                        "/storage",
+                        [
+                           "Datastore.Allocate"
+                        ]
+                     ]
+                  },
+                  "protected" : 1,
+                  "returns" : {
+                     "type" : "null"
+                  }
+               }
+            },
+            "leaf" : 0,
+            "path" : "/cluster/replication",
+            "text" : "replication"
+         },
+         {
+            "children" : [
                {
                   "children" : [
                      {
                         "info" : {
                            "DELETE" : {
-                              "description" : "Delete rule.",
+                              "description" : "Removes a node from the cluster configuration.",
                               "method" : "DELETE",
-                              "name" : "delete_rule",
+                              "name" : "delnode",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
-                                    "digest" : {
-                                       "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                                       "maxLength" : 40,
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "pos" : {
-                                       "description" : "Update rule at position <pos>.",
-                                       "minimum" : 0,
-                                       "optional" : 1,
-                                       "type" : "integer",
-                                       "typetext" : "integer (0- N)"
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Modify"
-                                    ]
-                                 ]
-                              },
                               "protected" : 1,
-                              "proxyto" : null,
                               "returns" : {
                                  "type" : "null"
                               }
                            },
-                           "GET" : {
-                              "description" : "Get single rule data.",
-                              "method" : "GET",
-                              "name" : "get_rule",
-                              "parameters" : {
-                                 "additionalProperties" : 0,
-                                 "properties" : {
-                                    "pos" : {
-                                       "description" : "Update rule at position <pos>.",
-                                       "minimum" : 0,
-                                       "optional" : 1,
-                                       "type" : "integer",
-                                       "typetext" : "integer (0- N)"
-                                    }
-                                 }
-                              },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Audit"
-                                    ]
-                                 ]
-                              },
-                              "proxyto" : null,
-                              "returns" : {
-                                 "properties" : {
-                                    "pos" : {
-                                       "type" : "integer"
-                                    }
-                                 },
-                                 "type" : "object"
-                              }
-                           },
-                           "PUT" : {
-                              "description" : "Modify rule data.",
-                              "method" : "PUT",
-                              "name" : "update_rule",
+                           "POST" : {
+                              "description" : "Adds a node to the cluster configuration.",
+                              "method" : "POST",
+                              "name" : "addnode",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
-                                    "action" : {
-                                       "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
-                                       "maxLength" : 20,
-                                       "minLength" : 2,
-                                       "optional" : 1,
-                                       "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                       "type" : "string"
-                                    },
-                                    "comment" : {
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "delete" : {
-                                       "description" : "A list of settings you want to delete.",
-                                       "format" : "pve-configid-list",
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "dest" : {
-                                       "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
-                                       "format" : "pve-fw-addr-spec",
-                                       "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,
+                                    "force" : {
+                                       "description" : "Do not throw error if node already exists.",
                                        "optional" : 1,
-                                       "type" : "string"
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
                                     },
-                                    "dport" : {
-                                       "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
-                                       "format" : "pve-fw-dport-spec",
-                                       "optional" : 1,
-                                       "type" : "string"
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
-                                    "enable" : {
-                                       "minimum" : 0,
+                                    "nodeid" : {
+                                       "description" : "Node id for this node.",
+                                       "minimum" : 1,
                                        "optional" : 1,
                                        "type" : "integer",
-                                       "typetext" : "integer (0- N)"
-                                    },
-                                    "iface" : {
-                                       "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
-                                       "format" : "pve-iface",
-                                       "maxLength" : 20,
-                                       "minLength" : 2,
-                                       "optional" : 1,
-                                       "type" : "string"
+                                       "typetext" : "<integer> (1 - N)"
                                     },
-                                    "macro" : {
-                                       "maxLength" : 128,
+                                    "ring0_addr" : {
+                                       "default" : "Hostname of the node",
+                                       "description" : "Hostname (or IP) of the corosync ring0 address of this node.",
+                                       "format" : "address",
                                        "optional" : 1,
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
-                                    "moveto" : {
-                                       "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
-                                       "minimum" : 0,
+                                    "ring1_addr" : {
+                                       "description" : "Hostname (or IP) of the corosync ring1 address of this node. Requires a valid configured ring 1 (bindnet1_addr) in the cluster.",
+                                       "format" : "address",
                                        "optional" : 1,
-                                       "type" : "integer",
-                                       "typetext" : "integer (0- N)"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
-                                    "pos" : {
-                                       "description" : "Update rule at position <pos>.",
+                                    "votes" : {
+                                       "description" : "Number of votes for this node",
                                        "minimum" : 0,
                                        "optional" : 1,
                                        "type" : "integer",
-                                       "typetext" : "integer (0- N)"
-                                    },
-                                    "proto" : {
-                                       "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
-                                       "format" : "pve-fw-protocol-spec",
-                                       "optional" : 1,
+                                       "typetext" : "<integer> (0 - N)"
+                                    }
+                                 }
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "properties" : {
+                                    "corosync_authkey" : {
                                        "type" : "string"
                                     },
-                                    "source" : {
-                                       "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
-                                       "format" : "pve-fw-addr-spec",
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "sport" : {
-                                       "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
-                                       "format" : "pve-fw-sport-spec",
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "type" : {
-                                       "enum" : [
-                                          "in",
-                                          "out",
-                                          "group"
-                                       ],
-                                       "optional" : 1,
+                                    "corosync_conf" : {
                                        "type" : "string"
                                     }
-                                 }
-                              },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Modify"
-                                    ]
-                                 ]
-                              },
-                              "protected" : 1,
-                              "proxyto" : null,
-                              "returns" : {
-                                 "type" : "null"
+                                 },
+                                 "type" : "object"
                               }
                            }
                         },
                         "leaf" : 1,
-                        "path" : "/cluster/firewall/rules/{pos}",
-                        "text" : "{pos}"
+                        "path" : "/cluster/config/nodes/{node}",
+                        "text" : "{node}"
                      }
                   ],
                   "info" : {
                      "GET" : {
-                        "description" : "List rules.",
+                        "description" : "Corosync node list.",
                         "method" : "GET",
-                        "name" : "get_rules",
+                        "name" : "nodes",
                         "parameters" : {
                            "additionalProperties" : 0
                         },
@@ -738,167 +399,349 @@ var pveapi = [
                               ]
                            ]
                         },
-                        "proxyto" : null,
                         "returns" : {
                            "items" : {
                               "properties" : {
-                                 "pos" : {
-                                    "type" : "integer"
+                                 "node" : {
+                                    "type" : "string"
                                  }
                               },
                               "type" : "object"
                            },
                            "links" : [
                               {
-                                 "href" : "{pos}",
+                                 "href" : "{node}",
                                  "rel" : "child"
                               }
                            ],
                            "type" : "array"
                         }
-                     },
-                     "POST" : {
-                        "description" : "Create new rule.",
-                        "method" : "POST",
-                        "name" : "create_rule",
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/cluster/config/nodes",
+                  "text" : "nodes"
+               },
+               {
+                  "info" : {
+                     "GET" : {
+                        "description" : "Get information needed to join this cluster over the connected node.",
+                        "method" : "GET",
+                        "name" : "join_info",
                         "parameters" : {
                            "additionalProperties" : 0,
                            "properties" : {
-                              "action" : {
-                                 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
-                                 "maxLength" : 20,
-                                 "minLength" : 2,
-                                 "optional" : 0,
-                                 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                 "type" : "string"
-                              },
-                              "comment" : {
+                              "node" : {
+                                 "default" : "current connected node",
+                                 "description" : "The node for which the joinee gets the nodeinfo. ",
+                                 "format" : "pve-node",
                                  "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Audit"
+                              ]
+                           ]
+                        },
+                        "returns" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "config_digest" : {
                                  "type" : "string"
                               },
-                              "dest" : {
-                                 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
-                                 "format" : "pve-fw-addr-spec",
-                                 "optional" : 1,
-                                 "type" : "string"
+                              "nodelist" : {
+                                 "items" : {
+                                    "additionalProperties" : 1,
+                                    "properties" : {
+                                       "name" : {
+                                          "description" : "The cluster node name.",
+                                          "format" : "pve-node",
+                                          "type" : "string"
+                                       },
+                                       "nodeid" : {
+                                          "description" : "Node id for this node.",
+                                          "minimum" : 1,
+                                          "optional" : 1,
+                                          "type" : "integer"
+                                       },
+                                       "pve_addr" : {
+                                          "format" : "ip",
+                                          "type" : "string"
+                                       },
+                                       "pve_fp" : {
+                                          "description" : "Certificate SHA 256 fingerprint.",
+                                          "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
+                                          "type" : "string"
+                                       },
+                                       "quorum_votes" : {
+                                          "minimum" : 0,
+                                          "type" : "integer"
+                                       },
+                                       "ring0_addr" : {
+                                          "default" : "Hostname of the node",
+                                          "description" : "Hostname (or IP) of the corosync ring0 address of this node.",
+                                          "format" : "address",
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       }
+                                    },
+                                    "type" : "object"
+                                 },
+                                 "type" : "array"
                               },
-                              "digest" : {
-                                 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                                 "maxLength" : 40,
-                                 "optional" : 1,
+                              "preferred_node" : {
+                                 "description" : "The cluster node name.",
+                                 "format" : "pve-node",
                                  "type" : "string"
                               },
-                              "dport" : {
-                                 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
-                                 "format" : "pve-fw-dport-spec",
-                                 "optional" : 1,
+                              "totem" : {
+                                 "type" : "object"
+                              }
+                           },
+                           "type" : "object"
+                        }
+                     },
+                     "POST" : {
+                        "description" : "Joins this node into an existing cluster.",
+                        "method" : "POST",
+                        "name" : "join",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "fingerprint" : {
+                                 "description" : "Certificate SHA 256 fingerprint.",
+                                 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
                                  "type" : "string"
                               },
-                              "enable" : {
-                                 "minimum" : 0,
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "integer (0- N)"
-                              },
-                              "iface" : {
-                                 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
-                                 "format" : "pve-iface",
-                                 "maxLength" : 20,
-                                 "minLength" : 2,
+                              "force" : {
+                                 "description" : "Do not throw error if node already exists.",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
-                              "macro" : {
-                                 "maxLength" : 128,
-                                 "optional" : 1,
-                                 "type" : "string"
+                              "hostname" : {
+                                 "description" : "Hostname (or IP) of an existing cluster member.",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
-                              "pos" : {
-                                 "description" : "Update rule at position <pos>.",
-                                 "minimum" : 0,
+                              "nodeid" : {
+                                 "description" : "Node id for this node.",
+                                 "minimum" : 1,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (0- N)"
+                                 "typetext" : "<integer> (1 - N)"
                               },
-                              "proto" : {
-                                 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
-                                 "format" : "pve-fw-protocol-spec",
-                                 "optional" : 1,
-                                 "type" : "string"
+                              "password" : {
+                                 "description" : "Superuser (root) password of peer node.",
+                                 "maxLength" : 128,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
-                              "source" : {
-                                 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
-                                 "format" : "pve-fw-addr-spec",
+                              "ring0_addr" : {
+                                 "default" : "IP resolved by node's hostname",
+                                 "description" : "Hostname (or IP) of the corosync ring0 address of this node.",
+                                 "format" : "address",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
-                              "sport" : {
-                                 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
-                                 "format" : "pve-fw-sport-spec",
+                              "ring1_addr" : {
+                                 "description" : "Hostname (or IP) of the corosync ring1 address of this node. Requires a valid configured ring 1 (bindnet1_addr) in the cluster.",
+                                 "format" : "address",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
-                              "type" : {
-                                 "enum" : [
-                                    "in",
-                                    "out",
-                                    "group"
-                                 ],
-                                 "optional" : 0,
-                                 "type" : "string"
+                              "votes" : {
+                                 "description" : "Number of votes for this node",
+                                 "minimum" : 0,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (0 - N)"
                               }
                            }
                         },
+                        "protected" : 1,
+                        "returns" : {
+                           "type" : "string"
+                        }
+                     }
+                  },
+                  "leaf" : 1,
+                  "path" : "/cluster/config/join",
+                  "text" : "join"
+               },
+               {
+                  "info" : {
+                     "GET" : {
+                        "description" : "Get corosync totem protocol settings.",
+                        "method" : "GET",
+                        "name" : "totem",
+                        "parameters" : {
+                           "additionalProperties" : 0
+                        },
                         "permissions" : {
                            "check" : [
                               "perm",
                               "/",
                               [
-                                 "Sys.Modify"
+                                 "Sys.Audit"
                               ]
                            ]
                         },
-                        "protected" : 1,
-                        "proxyto" : null,
                         "returns" : {
-                           "type" : "null"
+                           "properties" : {},
+                           "type" : "object"
                         }
                      }
                   },
-                  "leaf" : 0,
-                  "path" : "/cluster/firewall/rules",
-                  "text" : "rules"
+                  "leaf" : 1,
+                  "path" : "/cluster/config/totem",
+                  "text" : "totem"
+               }
+            ],
+            "info" : {
+               "GET" : {
+                  "description" : "Directory index.",
+                  "method" : "GET",
+                  "name" : "index",
+                  "parameters" : {
+                     "additionalProperties" : 0
+                  },
+                  "permissions" : {
+                     "check" : [
+                        "perm",
+                        "/",
+                        [
+                           "Sys.Audit"
+                        ]
+                     ]
+                  },
+                  "returns" : {
+                     "items" : {
+                        "properties" : {},
+                        "type" : "object"
+                     },
+                     "links" : [
+                        {
+                           "href" : "{name}",
+                           "rel" : "child"
+                        }
+                     ],
+                     "type" : "array"
+                  }
                },
-               {
-                  "children" : [
-                     {
-                        "children" : [
-                           {
-                              "info" : {
-                                 "DELETE" : {
-                                    "description" : "Remove IP or Network from IPSet.",
-                                    "method" : "DELETE",
-                                    "name" : "remove_ip",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "cidr" : {
-                                             "description" : "Network/IP specification in CIDR format.",
-                                             "format" : "IPorCIDRorAlias",
-                                             "type" : "string"
-                                          },
+               "POST" : {
+                  "description" : "Generate new cluster configuration.",
+                  "method" : "POST",
+                  "name" : "create",
+                  "parameters" : {
+                     "additionalProperties" : 0,
+                     "properties" : {
+                        "bindnet0_addr" : {
+                           "description" : "This specifies the network address the corosync ring 0 executive should bind to and defaults to the local IP address of the node.",
+                           "format" : "ip",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "bindnet1_addr" : {
+                           "description" : "This specifies the network address the corosync ring 1 executive should bind to and is optional.",
+                           "format" : "ip",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "clustername" : {
+                           "description" : "The name of the cluster.",
+                           "format" : "pve-node",
+                           "maxLength" : 15,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "nodeid" : {
+                           "description" : "Node id for this node.",
+                           "minimum" : 1,
+                           "optional" : 1,
+                           "type" : "integer",
+                           "typetext" : "<integer> (1 - N)"
+                        },
+                        "ring0_addr" : {
+                           "default" : "Hostname of the node",
+                           "description" : "Hostname (or IP) of the corosync ring0 address of this node.",
+                           "format" : "address",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "ring1_addr" : {
+                           "description" : "Hostname (or IP) of the corosync ring1 address of this node. Requires a valid configured ring 1 (bindnet1_addr) in the cluster.",
+                           "format" : "address",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "votes" : {
+                           "description" : "Number of votes for this node.",
+                           "minimum" : 1,
+                           "optional" : 1,
+                           "type" : "integer",
+                           "typetext" : "<integer> (1 - N)"
+                        }
+                     }
+                  },
+                  "protected" : 1,
+                  "returns" : {
+                     "type" : "string"
+                  }
+               }
+            },
+            "leaf" : 0,
+            "path" : "/cluster/config",
+            "text" : "config"
+         },
+         {
+            "children" : [
+               {
+                  "children" : [
+                     {
+                        "children" : [
+                           {
+                              "info" : {
+                                 "DELETE" : {
+                                    "description" : "Delete rule.",
+                                    "method" : "DELETE",
+                                    "name" : "delete_rule",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
                                           "digest" : {
                                              "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
                                              "maxLength" : 40,
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
-                                          "name" : {
-                                             "description" : "IP set name.",
-                                             "maxLength" : 64,
+                                          "group" : {
+                                             "description" : "Security Group name.",
+                                             "maxLength" : 18,
                                              "minLength" : 2,
                                              "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
                                              "type" : "string"
+                                          },
+                                          "pos" : {
+                                             "description" : "Update rule at position <pos>.",
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (0 - N)"
                                           }
                                        }
                                     },
@@ -912,28 +755,31 @@ var pveapi = [
                                        ]
                                     },
                                     "protected" : 1,
+                                    "proxyto" : null,
                                     "returns" : {
                                        "type" : "null"
                                     }
                                  },
                                  "GET" : {
-                                    "description" : "Read IP or Network settings from IPSet.",
+                                    "description" : "Get single rule data.",
                                     "method" : "GET",
-                                    "name" : "read_ip",
+                                    "name" : "get_rule",
                                     "parameters" : {
                                        "additionalProperties" : 0,
                                        "properties" : {
-                                          "cidr" : {
-                                             "description" : "Network/IP specification in CIDR format.",
-                                             "format" : "IPorCIDRorAlias",
-                                             "type" : "string"
-                                          },
-                                          "name" : {
-                                             "description" : "IP set name.",
-                                             "maxLength" : 64,
+                                          "group" : {
+                                             "description" : "Security Group name.",
+                                             "maxLength" : 18,
                                              "minLength" : 2,
                                              "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
                                              "type" : "string"
+                                          },
+                                          "pos" : {
+                                             "description" : "Update rule at position <pos>.",
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (0 - N)"
                                           }
                                        }
                                     },
@@ -946,43 +792,139 @@ var pveapi = [
                                           ]
                                        ]
                                     },
-                                    "protected" : 1,
+                                    "proxyto" : null,
                                     "returns" : {
+                                       "properties" : {
+                                          "pos" : {
+                                             "type" : "integer"
+                                          }
+                                       },
                                        "type" : "object"
                                     }
                                  },
                                  "PUT" : {
-                                    "description" : "Update IP or Network settings",
+                                    "description" : "Modify rule data.",
                                     "method" : "PUT",
-                                    "name" : "update_ip",
+                                    "name" : "update_rule",
                                     "parameters" : {
                                        "additionalProperties" : 0,
                                        "properties" : {
-                                          "cidr" : {
-                                             "description" : "Network/IP specification in CIDR format.",
-                                             "format" : "IPorCIDRorAlias",
+                                          "action" : {
+                                             "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+                                             "maxLength" : 20,
+                                             "minLength" : 2,
+                                             "optional" : 1,
+                                             "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
                                              "type" : "string"
                                           },
                                           "comment" : {
+                                             "description" : "Descriptive comment.",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "delete" : {
+                                             "description" : "A list of settings you want to delete.",
+                                             "format" : "pve-configid-list",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "dest" : {
+                                             "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+                                             "format" : "pve-fw-addr-spec",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "digest" : {
                                              "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
                                              "maxLength" : 40,
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
-                                          "name" : {
-                                             "description" : "IP set name.",
-                                             "maxLength" : 64,
+                                          "dport" : {
+                                             "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+                                             "format" : "pve-fw-dport-spec",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "enable" : {
+                                             "description" : "Flag to enable/disable a rule.",
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (0 - N)"
+                                          },
+                                          "group" : {
+                                             "description" : "Security Group name.",
+                                             "maxLength" : 18,
                                              "minLength" : 2,
                                              "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
                                              "type" : "string"
                                           },
-                                          "nomatch" : {
+                                          "iface" : {
+                                             "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+                                             "format" : "pve-iface",
+                                             "maxLength" : 20,
+                                             "minLength" : 2,
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "macro" : {
+                                             "description" : "Use predefined standard macro.",
+                                             "maxLength" : 128,
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "moveto" : {
+                                             "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (0 - N)"
+                                          },
+                                          "pos" : {
+                                             "description" : "Update rule at position <pos>.",
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (0 - N)"
+                                          },
+                                          "proto" : {
+                                             "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+                                             "format" : "pve-fw-protocol-spec",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "source" : {
+                                             "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+                                             "format" : "pve-fw-addr-spec",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "sport" : {
+                                             "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+                                             "format" : "pve-fw-sport-spec",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "type" : {
+                                             "description" : "Rule type.",
+                                             "enum" : [
+                                                "in",
+                                                "out",
+                                                "group"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
                                           }
                                        }
                                     },
@@ -996,27 +938,28 @@ var pveapi = [
                                        ]
                                     },
                                     "protected" : 1,
+                                    "proxyto" : null,
                                     "returns" : {
                                        "type" : "null"
                                     }
                                  }
                               },
                               "leaf" : 1,
-                              "path" : "/cluster/firewall/ipset/{name}/{cidr}",
-                              "text" : "{cidr}"
+                              "path" : "/cluster/firewall/groups/{group}/{pos}",
+                              "text" : "{pos}"
                            }
                         ],
                         "info" : {
                            "DELETE" : {
-                              "description" : "Delete IPSet",
+                              "description" : "Delete security group.",
                               "method" : "DELETE",
-                              "name" : "delete_ipset",
+                              "name" : "delete_security_group",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
-                                    "name" : {
-                                       "description" : "IP set name.",
-                                       "maxLength" : 64,
+                                    "group" : {
+                                       "description" : "Security Group name.",
+                                       "maxLength" : 18,
                                        "minLength" : 2,
                                        "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
                                        "type" : "string"
@@ -1038,15 +981,15 @@ var pveapi = [
                               }
                            },
                            "GET" : {
-                              "description" : "List IPSet content",
+                              "description" : "List rules.",
                               "method" : "GET",
-                              "name" : "get_ipset",
+                              "name" : "get_rules",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
-                                    "name" : {
-                                       "description" : "IP set name.",
-                                       "maxLength" : 64,
+                                    "group" : {
+                                       "description" : "Security Group name.",
+                                       "maxLength" : 18,
                                        "minLength" : 2,
                                        "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
                                        "type" : "string"
@@ -1062,32 +1005,19 @@ var pveapi = [
                                     ]
                                  ]
                               },
+                              "proxyto" : null,
                               "returns" : {
                                  "items" : {
                                     "properties" : {
-                                       "cidr" : {
-                                          "type" : "string"
-                                       },
-                                       "comment" : {
-                                          "optional" : 1,
-                                          "type" : "string"
-                                       },
-                                       "digest" : {
-                                          "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                                          "maxLength" : 40,
-                                          "optional" : 0,
-                                          "type" : "string"
-                                       },
-                                       "nomatch" : {
-                                          "optional" : 1,
-                                          "type" : "boolean"
+                                       "pos" : {
+                                          "type" : "integer"
                                        }
                                     },
                                     "type" : "object"
                                  },
                                  "links" : [
                                     {
-                                       "href" : "{cidr}",
+                                       "href" : "{pos}",
                                        "rel" : "child"
                                     }
                                  ],
@@ -1095,31 +1025,114 @@ var pveapi = [
                               }
                            },
                            "POST" : {
-                              "description" : "Add IP or Network to IPSet.",
+                              "description" : "Create new rule.",
                               "method" : "POST",
-                              "name" : "create_ip",
+                              "name" : "create_rule",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
-                                    "cidr" : {
-                                       "description" : "Network/IP specification in CIDR format.",
-                                       "format" : "IPorCIDRorAlias",
-                                       "type" : "string"
-                                    },
-                                    "comment" : {
-                                       "optional" : 1,
+                                    "action" : {
+                                       "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+                                       "maxLength" : 20,
+                                       "minLength" : 2,
+                                       "optional" : 0,
+                                       "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
                                        "type" : "string"
                                     },
-                                    "name" : {
-                                       "description" : "IP set name.",
-                                       "maxLength" : 64,
+                                    "comment" : {
+                                       "description" : "Descriptive comment.",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "dest" : {
+                                       "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+                                       "format" : "pve-fw-addr-spec",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "digest" : {
+                                       "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                       "maxLength" : 40,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "dport" : {
+                                       "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+                                       "format" : "pve-fw-dport-spec",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "enable" : {
+                                       "description" : "Flag to enable/disable a rule.",
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (0 - N)"
+                                    },
+                                    "group" : {
+                                       "description" : "Security Group name.",
+                                       "maxLength" : 18,
                                        "minLength" : 2,
                                        "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
                                        "type" : "string"
                                     },
-                                    "nomatch" : {
+                                    "iface" : {
+                                       "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+                                       "format" : "pve-iface",
+                                       "maxLength" : 20,
+                                       "minLength" : 2,
                                        "optional" : 1,
-                                       "type" : "boolean"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "macro" : {
+                                       "description" : "Use predefined standard macro.",
+                                       "maxLength" : 128,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "pos" : {
+                                       "description" : "Update rule at position <pos>.",
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (0 - N)"
+                                    },
+                                    "proto" : {
+                                       "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+                                       "format" : "pve-fw-protocol-spec",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "source" : {
+                                       "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+                                       "format" : "pve-fw-addr-spec",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "sport" : {
+                                       "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+                                       "format" : "pve-fw-sport-spec",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "type" : {
+                                       "description" : "Rule type.",
+                                       "enum" : [
+                                          "in",
+                                          "out",
+                                          "group"
+                                       ],
+                                       "optional" : 0,
+                                       "type" : "string"
                                     }
                                  }
                               },
@@ -1133,32 +1146,27 @@ var pveapi = [
                                  ]
                               },
                               "protected" : 1,
+                              "proxyto" : null,
                               "returns" : {
                                  "type" : "null"
                               }
                            }
                         },
                         "leaf" : 0,
-                        "path" : "/cluster/firewall/ipset/{name}",
-                        "text" : "{name}"
+                        "path" : "/cluster/firewall/groups/{group}",
+                        "text" : "{group}"
                      }
                   ],
                   "info" : {
                      "GET" : {
-                        "description" : "List IPSets",
+                        "description" : "List security groups.",
                         "method" : "GET",
-                        "name" : "ipset_index",
+                        "name" : "list_security_groups",
                         "parameters" : {
                            "additionalProperties" : 0
                         },
                         "permissions" : {
-                           "check" : [
-                              "perm",
-                              "/",
-                              [
-                                 "Sys.Audit"
-                              ]
-                           ]
+                           "user" : "all"
                         },
                         "returns" : {
                            "items" : {
@@ -1173,9 +1181,9 @@ var pveapi = [
                                     "optional" : 0,
                                     "type" : "string"
                                  },
-                                 "name" : {
-                                    "description" : "IP set name.",
-                                    "maxLength" : 64,
+                                 "group" : {
+                                    "description" : "Security Group name.",
+                                    "maxLength" : 18,
                                     "minLength" : 2,
                                     "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
                                     "type" : "string"
@@ -1185,7 +1193,7 @@ var pveapi = [
                            },
                            "links" : [
                               {
-                                 "href" : "{name}",
+                                 "href" : "{group}",
                                  "rel" : "child"
                               }
                            ],
@@ -1193,32 +1201,34 @@ var pveapi = [
                         }
                      },
                      "POST" : {
-                        "description" : "Create new IPSet",
+                        "description" : "Create new security group.",
                         "method" : "POST",
-                        "name" : "create_ipset",
+                        "name" : "create_security_group",
                         "parameters" : {
                            "additionalProperties" : 0,
                            "properties" : {
                               "comment" : {
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "digest" : {
                                  "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
                                  "maxLength" : 40,
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
-                              "name" : {
-                                 "description" : "IP set name.",
-                                 "maxLength" : 64,
+                              "group" : {
+                                 "description" : "Security Group name.",
+                                 "maxLength" : 18,
                                  "minLength" : 2,
                                  "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
                                  "type" : "string"
                               },
                               "rename" : {
-                                 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
-                                 "maxLength" : 64,
+                                 "description" : "Rename/update an existing security group. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing group.",
+                                 "maxLength" : 18,
                                  "minLength" : 2,
                                  "optional" : 1,
                                  "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
@@ -1242,17 +1252,17 @@ var pveapi = [
                      }
                   },
                   "leaf" : 0,
-                  "path" : "/cluster/firewall/ipset",
-                  "text" : "ipset"
+                  "path" : "/cluster/firewall/groups",
+                  "text" : "groups"
                },
                {
                   "children" : [
                      {
                         "info" : {
                            "DELETE" : {
-                              "description" : "Remove IP or Network alias.",
+                              "description" : "Delete rule.",
                               "method" : "DELETE",
-                              "name" : "remove_alias",
+                              "name" : "delete_rule",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
@@ -1260,14 +1270,15 @@ var pveapi = [
                                        "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"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
-                                    "name" : {
-                                       "description" : "Alias name.",
-                                       "maxLength" : 64,
-                                       "minLength" : 2,
-                                       "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                       "type" : "string"
+                                    "pos" : {
+                                       "description" : "Update rule at position <pos>.",
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (0 - N)"
                                     }
                                  }
                               },
@@ -1281,23 +1292,24 @@ var pveapi = [
                                  ]
                               },
                               "protected" : 1,
+                              "proxyto" : null,
                               "returns" : {
                                  "type" : "null"
                               }
                            },
                            "GET" : {
-                              "description" : "Read alias.",
+                              "description" : "Get single rule data.",
                               "method" : "GET",
-                              "name" : "read_alias",
+                              "name" : "get_rule",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
-                                    "name" : {
-                                       "description" : "Alias name.",
-                                       "maxLength" : 64,
-                                       "minLength" : 2,
-                                       "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                       "type" : "string"
+                                    "pos" : {
+                                       "description" : "Update rule at position <pos>.",
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (0 - N)"
                                     }
                                  }
                               },
@@ -1310,77 +1322,164 @@ var pveapi = [
                                     ]
                                  ]
                               },
+                              "proxyto" : null,
                               "returns" : {
+                                 "properties" : {
+                                    "pos" : {
+                                       "type" : "integer"
+                                    }
+                                 },
                                  "type" : "object"
                               }
                            },
                            "PUT" : {
-                              "description" : "Update IP or Network alias.",
+                              "description" : "Modify rule data.",
                               "method" : "PUT",
-                              "name" : "update_alias",
+                              "name" : "update_rule",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
-                                    "cidr" : {
-                                       "description" : "Network/IP specification in CIDR format.",
-                                       "format" : "IPorCIDR",
+                                    "action" : {
+                                       "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+                                       "maxLength" : 20,
+                                       "minLength" : 2,
+                                       "optional" : 1,
+                                       "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
                                        "type" : "string"
                                     },
                                     "comment" : {
+                                       "description" : "Descriptive comment.",
                                        "optional" : 1,
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "delete" : {
+                                       "description" : "A list of settings you want to delete.",
+                                       "format" : "pve-configid-list",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "dest" : {
+                                       "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+                                       "format" : "pve-fw-addr-spec",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "digest" : {
                                        "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
                                        "maxLength" : 40,
                                        "optional" : 1,
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
-                                    "name" : {
-                                       "description" : "Alias name.",
-                                       "maxLength" : 64,
-                                       "minLength" : 2,
-                                       "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                       "type" : "string"
+                                    "dport" : {
+                                       "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+                                       "format" : "pve-fw-dport-spec",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
-                                    "rename" : {
-                                       "description" : "Rename an existing alias.",
-                                       "maxLength" : 64,
+                                    "enable" : {
+                                       "description" : "Flag to enable/disable a rule.",
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (0 - N)"
+                                    },
+                                    "iface" : {
+                                       "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+                                       "format" : "pve-iface",
+                                       "maxLength" : 20,
                                        "minLength" : 2,
                                        "optional" : 1,
-                                       "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                       "type" : "string"
-                                    }
-                                 }
-                              },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Modify"
-                                    ]
-                                 ]
-                              },
-                              "protected" : 1,
-                              "returns" : {
-                                 "type" : "null"
-                              }
-                           }
-                        },
-                        "leaf" : 1,
-                        "path" : "/cluster/firewall/aliases/{name}",
-                        "text" : "{name}"
-                     }
-                  ],
-                  "info" : {
-                     "GET" : {
-                        "description" : "List aliases",
-                        "method" : "GET",
-                        "name" : "get_aliases",
-                        "parameters" : {
-                           "additionalProperties" : 0
-                        },
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "macro" : {
+                                       "description" : "Use predefined standard macro.",
+                                       "maxLength" : 128,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "moveto" : {
+                                       "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (0 - N)"
+                                    },
+                                    "pos" : {
+                                       "description" : "Update rule at position <pos>.",
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (0 - N)"
+                                    },
+                                    "proto" : {
+                                       "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+                                       "format" : "pve-fw-protocol-spec",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "source" : {
+                                       "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+                                       "format" : "pve-fw-addr-spec",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "sport" : {
+                                       "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+                                       "format" : "pve-fw-sport-spec",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "type" : {
+                                       "description" : "Rule type.",
+                                       "enum" : [
+                                          "in",
+                                          "out",
+                                          "group"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Modify"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : null,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/cluster/firewall/rules/{pos}",
+                        "text" : "{pos}"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "description" : "List rules.",
+                        "method" : "GET",
+                        "name" : "get_rules",
+                        "parameters" : {
+                           "additionalProperties" : 0
+                        },
                         "permissions" : {
                            "check" : [
                               "perm",
@@ -1390,31 +1489,19 @@ var pveapi = [
                               ]
                            ]
                         },
+                        "proxyto" : null,
                         "returns" : {
                            "items" : {
                               "properties" : {
-                                 "cidr" : {
-                                    "type" : "string"
-                                 },
-                                 "comment" : {
-                                    "optional" : 1,
-                                    "type" : "string"
-                                 },
-                                 "digest" : {
-                                    "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                                    "maxLength" : 40,
-                                    "optional" : 0,
-                                    "type" : "string"
-                                 },
-                                 "name" : {
-                                    "type" : "string"
+                                 "pos" : {
+                                    "type" : "integer"
                                  }
                               },
                               "type" : "object"
                            },
                            "links" : [
                               {
-                                 "href" : "{name}",
+                                 "href" : "{pos}",
                                  "rel" : "child"
                               }
                            ],
@@ -1422,26 +1509,106 @@ var pveapi = [
                         }
                      },
                      "POST" : {
-                        "description" : "Create IP or Network Alias.",
+                        "description" : "Create new rule.",
                         "method" : "POST",
-                        "name" : "create_alias",
+                        "name" : "create_rule",
                         "parameters" : {
                            "additionalProperties" : 0,
                            "properties" : {
-                              "cidr" : {
-                                 "description" : "Network/IP specification in CIDR format.",
-                                 "format" : "IPorCIDR",
+                              "action" : {
+                                 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+                                 "maxLength" : 20,
+                                 "minLength" : 2,
+                                 "optional" : 0,
+                                 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
                                  "type" : "string"
                               },
                               "comment" : {
+                                 "description" : "Descriptive comment.",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
-                              "name" : {
-                                 "description" : "Alias name.",
-                                 "maxLength" : 64,
+                              "dest" : {
+                                 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+                                 "format" : "pve-fw-addr-spec",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "digest" : {
+                                 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                 "maxLength" : 40,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "dport" : {
+                                 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+                                 "format" : "pve-fw-dport-spec",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "enable" : {
+                                 "description" : "Flag to enable/disable a rule.",
+                                 "minimum" : 0,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (0 - N)"
+                              },
+                              "iface" : {
+                                 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+                                 "format" : "pve-iface",
+                                 "maxLength" : 20,
                                  "minLength" : 2,
-                                 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "macro" : {
+                                 "description" : "Use predefined standard macro.",
+                                 "maxLength" : 128,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "pos" : {
+                                 "description" : "Update rule at position <pos>.",
+                                 "minimum" : 0,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (0 - N)"
+                              },
+                              "proto" : {
+                                 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+                                 "format" : "pve-fw-protocol-spec",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "source" : {
+                                 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+                                 "format" : "pve-fw-addr-spec",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "sport" : {
+                                 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+                                 "format" : "pve-fw-sport-spec",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "type" : {
+                                 "description" : "Rule type.",
+                                 "enum" : [
+                                    "in",
+                                    "out",
+                                    "group"
+                                 ],
+                                 "optional" : 0,
                                  "type" : "string"
                               }
                            }
@@ -1456,186 +1623,308 @@ var pveapi = [
                            ]
                         },
                         "protected" : 1,
+                        "proxyto" : null,
                         "returns" : {
                            "type" : "null"
                         }
                      }
                   },
                   "leaf" : 0,
-                  "path" : "/cluster/firewall/aliases",
-                  "text" : "aliases"
+                  "path" : "/cluster/firewall/rules",
+                  "text" : "rules"
                },
                {
-                  "info" : {
-                     "GET" : {
-                        "description" : "Get Firewall options.",
-                        "method" : "GET",
-                        "name" : "get_options",
-                        "parameters" : {
-                           "additionalProperties" : 0
-                        },
-                        "permissions" : {
-                           "check" : [
-                              "perm",
-                              "/",
-                              [
-                                 "Sys.Audit"
-                              ]
-                           ]
-                        },
-                        "returns" : {
-                           "properties" : {
-                              "enable" : {
-                                 "description" : "Enable or disable the firewall cluster wide.",
-                                 "minimum" : 0,
-                                 "optional" : 1,
-                                 "type" : "integer"
-                              },
-                              "policy_in" : {
-                                 "description" : "Input policy.",
-                                 "enum" : [
-                                    "ACCEPT",
-                                    "REJECT",
-                                    "DROP"
-                                 ],
-                                 "optional" : 1,
-                                 "type" : "string"
-                              },
-                              "policy_out" : {
-                                 "description" : "Output policy.",
-                                 "enum" : [
-                                    "ACCEPT",
-                                    "REJECT",
-                                    "DROP"
-                                 ],
-                                 "optional" : 1,
-                                 "type" : "string"
-                              }
-                           },
-                           "type" : "object"
-                        }
-                     },
-                     "PUT" : {
-                        "description" : "Set Firewall options.",
-                        "method" : "PUT",
-                        "name" : "set_options",
-                        "parameters" : {
-                           "additionalProperties" : 0,
-                           "properties" : {
-                              "delete" : {
-                                 "description" : "A list of settings you want to delete.",
-                                 "format" : "pve-configid-list",
-                                 "optional" : 1,
-                                 "type" : "string"
-                              },
-                              "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"
-                              },
-                              "enable" : {
-                                 "description" : "Enable or disable the firewall cluster wide.",
-                                 "minimum" : 0,
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "integer (0- N)"
-                              },
-                              "policy_in" : {
-                                 "description" : "Input policy.",
-                                 "enum" : [
-                                    "ACCEPT",
-                                    "REJECT",
-                                    "DROP"
-                                 ],
-                                 "optional" : 1,
-                                 "type" : "string"
+                  "children" : [
+                     {
+                        "children" : [
+                           {
+                              "info" : {
+                                 "DELETE" : {
+                                    "description" : "Remove IP or Network from IPSet.",
+                                    "method" : "DELETE",
+                                    "name" : "remove_ip",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "cidr" : {
+                                             "description" : "Network/IP specification in CIDR format.",
+                                             "format" : "IPorCIDRorAlias",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "digest" : {
+                                             "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                             "maxLength" : 40,
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "name" : {
+                                             "description" : "IP set name.",
+                                             "maxLength" : 64,
+                                             "minLength" : 2,
+                                             "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                             "type" : "string"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/",
+                                          [
+                                             "Sys.Modify"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "returns" : {
+                                       "type" : "null"
+                                    }
+                                 },
+                                 "GET" : {
+                                    "description" : "Read IP or Network settings from IPSet.",
+                                    "method" : "GET",
+                                    "name" : "read_ip",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "cidr" : {
+                                             "description" : "Network/IP specification in CIDR format.",
+                                             "format" : "IPorCIDRorAlias",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "name" : {
+                                             "description" : "IP set name.",
+                                             "maxLength" : 64,
+                                             "minLength" : 2,
+                                             "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                             "type" : "string"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/",
+                                          [
+                                             "Sys.Audit"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "returns" : {
+                                       "type" : "object"
+                                    }
+                                 },
+                                 "PUT" : {
+                                    "description" : "Update IP or Network settings",
+                                    "method" : "PUT",
+                                    "name" : "update_ip",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "cidr" : {
+                                             "description" : "Network/IP specification in CIDR format.",
+                                             "format" : "IPorCIDRorAlias",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "comment" : {
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "digest" : {
+                                             "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                             "maxLength" : 40,
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "name" : {
+                                             "description" : "IP set name.",
+                                             "maxLength" : 64,
+                                             "minLength" : 2,
+                                             "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                             "type" : "string"
+                                          },
+                                          "nomatch" : {
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/",
+                                          [
+                                             "Sys.Modify"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "returns" : {
+                                       "type" : "null"
+                                    }
+                                 }
                               },
-                              "policy_out" : {
-                                 "description" : "Output policy.",
-                                 "enum" : [
-                                    "ACCEPT",
-                                    "REJECT",
-                                    "DROP"
-                                 ],
-                                 "optional" : 1,
-                                 "type" : "string"
-                              }
+                              "leaf" : 1,
+                              "path" : "/cluster/firewall/ipset/{name}/{cidr}",
+                              "text" : "{cidr}"
                            }
-                        },
-                        "permissions" : {
-                           "check" : [
-                              "perm",
-                              "/",
-                              [
-                                 "Sys.Modify"
-                              ]
-                           ]
-                        },
-                        "protected" : 1,
-                        "returns" : {
-                           "type" : "null"
-                        }
-                     }
-                  },
-                  "leaf" : 1,
-                  "path" : "/cluster/firewall/options",
-                  "text" : "options"
-               },
-               {
-                  "info" : {
-                     "GET" : {
-                        "description" : "List available macros",
-                        "method" : "GET",
-                        "name" : "get_macros",
-                        "parameters" : {
-                           "additionalProperties" : 0
-                        },
-                        "permissions" : {
-                           "user" : "all"
-                        },
-                        "returns" : {
-                           "items" : {
-                              "properties" : {
-                                 "descr" : {
-                                    "description" : "More verbose description (if available).",
-                                    "type" : "string"
-                                 },
-                                 "macro" : {
-                                    "description" : "Macro name.",
-                                    "type" : "string"
+                        ],
+                        "info" : {
+                           "DELETE" : {
+                              "description" : "Delete IPSet",
+                              "method" : "DELETE",
+                              "name" : "delete_ipset",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "name" : {
+                                       "description" : "IP set name.",
+                                       "maxLength" : 64,
+                                       "minLength" : 2,
+                                       "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                       "type" : "string"
+                                    }
                                  }
                               },
-                              "type" : "object"
-                           },
-                           "type" : "array"
-                        }
-                     }
-                  },
-                  "leaf" : 1,
-                  "path" : "/cluster/firewall/macros",
-                  "text" : "macros"
-               },
-               {
-                  "info" : {
-                     "GET" : {
-                        "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
-                        "method" : "GET",
-                        "name" : "refs",
-                        "parameters" : {
-                           "additionalProperties" : 0,
-                           "properties" : {
-                              "type" : {
-                                 "description" : "Only list references of specified type.",
-                                 "enum" : [
-                                    "alias",
-                                    "ipset"
-                                 ],
-                                 "optional" : 1,
-                                 "type" : "string"
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Modify"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
                               }
-                           }
-                        },
+                           },
+                           "GET" : {
+                              "description" : "List IPSet content",
+                              "method" : "GET",
+                              "name" : "get_ipset",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "name" : {
+                                       "description" : "IP set name.",
+                                       "maxLength" : 64,
+                                       "minLength" : 2,
+                                       "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Audit"
+                                    ]
+                                 ]
+                              },
+                              "returns" : {
+                                 "items" : {
+                                    "properties" : {
+                                       "cidr" : {
+                                          "type" : "string"
+                                       },
+                                       "comment" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "digest" : {
+                                          "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                          "maxLength" : 40,
+                                          "optional" : 0,
+                                          "type" : "string"
+                                       },
+                                       "nomatch" : {
+                                          "optional" : 1,
+                                          "type" : "boolean"
+                                       }
+                                    },
+                                    "type" : "object"
+                                 },
+                                 "links" : [
+                                    {
+                                       "href" : "{cidr}",
+                                       "rel" : "child"
+                                    }
+                                 ],
+                                 "type" : "array"
+                              }
+                           },
+                           "POST" : {
+                              "description" : "Add IP or Network to IPSet.",
+                              "method" : "POST",
+                              "name" : "create_ip",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "cidr" : {
+                                       "description" : "Network/IP specification in CIDR format.",
+                                       "format" : "IPorCIDRorAlias",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "comment" : {
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "name" : {
+                                       "description" : "IP set name.",
+                                       "maxLength" : 64,
+                                       "minLength" : 2,
+                                       "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                       "type" : "string"
+                                    },
+                                    "nomatch" : {
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Modify"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           }
+                        },
+                        "leaf" : 0,
+                        "path" : "/cluster/firewall/ipset/{name}",
+                        "text" : "{name}"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "description" : "List IPSets",
+                        "method" : "GET",
+                        "name" : "ipset_index",
+                        "parameters" : {
+                           "additionalProperties" : 0
+                        },
                         "permissions" : {
                            "check" : [
                               "perm",
@@ -1652,75 +1941,63 @@ var pveapi = [
                                     "optional" : 1,
                                     "type" : "string"
                                  },
-                                 "name" : {
-                                    "type" : "string"
-                                 },
-                                 "ref" : {
+                                 "digest" : {
+                                    "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                    "maxLength" : 40,
+                                    "optional" : 0,
                                     "type" : "string"
                                  },
-                                 "type" : {
-                                    "enum" : [
-                                       "alias",
-                                       "ipset"
-                                    ],
+                                 "name" : {
+                                    "description" : "IP set name.",
+                                    "maxLength" : 64,
+                                    "minLength" : 2,
+                                    "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
                                     "type" : "string"
                                  }
                               },
                               "type" : "object"
                            },
+                           "links" : [
+                              {
+                                 "href" : "{name}",
+                                 "rel" : "child"
+                              }
+                           ],
                            "type" : "array"
                         }
-                     }
-                  },
-                  "leaf" : 1,
-                  "path" : "/cluster/firewall/refs",
-                  "text" : "refs"
-               }
-            ],
-            "info" : {
-               "GET" : {
-                  "description" : "Directory index.",
-                  "method" : "GET",
-                  "name" : "index",
-                  "parameters" : {
-                     "additionalProperties" : 0
-                  },
-                  "permissions" : {
-                     "user" : "all"
-                  },
-                  "returns" : {
-                     "items" : {
-                        "properties" : {},
-                        "type" : "object"
                      },
-                     "links" : [
-                        {
-                           "href" : "{name}",
-                           "rel" : "child"
-                        }
-                     ],
-                     "type" : "array"
-                  }
-               }
-            },
-            "leaf" : 0,
-            "path" : "/cluster/firewall",
-            "text" : "firewall"
-         },
-         {
-            "children" : [
-               {
-                  "info" : {
-                     "DELETE" : {
-                        "description" : "Delete vzdump backup job definition.",
-                        "method" : "DELETE",
-                        "name" : "delete_job",
+                     "POST" : {
+                        "description" : "Create new IPSet",
+                        "method" : "POST",
+                        "name" : "create_ipset",
                         "parameters" : {
                            "additionalProperties" : 0,
                            "properties" : {
-                              "id" : {
-                                 "description" : "The job ID.",
-                                 "maxLength" : 50,
+                              "comment" : {
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "digest" : {
+                                 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                 "maxLength" : 40,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "name" : {
+                                 "description" : "IP set name.",
+                                 "maxLength" : 64,
+                                 "minLength" : 2,
+                                 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                 "type" : "string"
+                              },
+                              "rename" : {
+                                 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
+                                 "maxLength" : 64,
+                                 "minLength" : 2,
+                                 "optional" : 1,
+                                 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
                                  "type" : "string"
                               }
                            }
@@ -1738,236 +2015,346 @@ var pveapi = [
                         "returns" : {
                            "type" : "null"
                         }
-                     },
-                     "GET" : {
-                        "description" : "Read vzdump backup job definition.",
-                        "method" : "GET",
-                        "name" : "read_job",
-                        "parameters" : {
-                           "additionalProperties" : 0,
-                           "properties" : {
-                              "id" : {
-                                 "description" : "The job ID.",
-                                 "maxLength" : 50,
-                                 "type" : "string"
-                              }
-                           }
-                        },
-                        "permissions" : {
-                           "check" : [
-                              "perm",
-                              "/",
-                              [
-                                 "Sys.Audit"
-                              ]
-                           ]
-                        },
-                        "returns" : {
-                           "type" : "object"
-                        }
-                     },
-                     "PUT" : {
-                        "description" : "Update vzdump backup job definition.",
-                        "method" : "PUT",
-                        "name" : "update_job",
-                        "parameters" : {
-                           "additionalProperties" : 0,
-                           "properties" : {
-                              "all" : {
-                                 "default" : 0,
-                                 "description" : "Backup all known guest systems on this host.",
-                                 "optional" : 1,
-                                 "type" : "boolean"
-                              },
-                              "bwlimit" : {
-                                 "default" : 0,
-                                 "description" : "Limit I/O bandwidth (KBytes per second).",
-                                 "minimum" : 0,
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "integer (0- N)"
-                              },
-                              "compress" : {
-                                 "default" : "0",
-                                 "description" : "Compress dump file.",
-                                 "enum" : [
-                                    "0",
-                                    "1",
-                                    "gzip",
-                                    "lzo"
-                                 ],
-                                 "optional" : 1,
-                                 "type" : "string"
-                              },
-                              "delete" : {
-                                 "description" : "A list of settings you want to delete.",
-                                 "format" : "pve-configid-list",
-                                 "optional" : 1,
-                                 "type" : "string"
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/cluster/firewall/ipset",
+                  "text" : "ipset"
+               },
+               {
+                  "children" : [
+                     {
+                        "info" : {
+                           "DELETE" : {
+                              "description" : "Remove IP or Network alias.",
+                              "method" : "DELETE",
+                              "name" : "remove_alias",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "digest" : {
+                                       "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                       "maxLength" : 40,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "name" : {
+                                       "description" : "Alias name.",
+                                       "maxLength" : 64,
+                                       "minLength" : 2,
+                                       "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                       "type" : "string"
+                                    }
+                                 }
                               },
-                              "dow" : {
-                                 "description" : "Day of week selection.",
-                                 "format" : "pve-day-of-week-list",
-                                 "optional" : 1,
-                                 "type" : "string"
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Modify"
+                                    ]
+                                 ]
                               },
-                              "dumpdir" : {
-                                 "description" : "Store resulting files to specified directory.",
-                                 "optional" : 1,
-                                 "type" : "string"
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           },
+                           "GET" : {
+                              "description" : "Read alias.",
+                              "method" : "GET",
+                              "name" : "read_alias",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "name" : {
+                                       "description" : "Alias name.",
+                                       "maxLength" : 64,
+                                       "minLength" : 2,
+                                       "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                       "type" : "string"
+                                    }
+                                 }
                               },
-                              "enabled" : {
-                                 "default" : "1",
-                                 "description" : "Enable or disable the job.",
-                                 "optional" : 1,
-                                 "type" : "boolean"
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Audit"
+                                    ]
+                                 ]
                               },
-                              "exclude" : {
-                                 "description" : "Exclude specified guest systems (assumes --all)",
-                                 "format" : "pve-vmid-list",
-                                 "optional" : 1,
-                                 "type" : "string"
+                              "returns" : {
+                                 "type" : "object"
+                              }
+                           },
+                           "PUT" : {
+                              "description" : "Update IP or Network alias.",
+                              "method" : "PUT",
+                              "name" : "update_alias",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "cidr" : {
+                                       "description" : "Network/IP specification in CIDR format.",
+                                       "format" : "IPorCIDR",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "comment" : {
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "digest" : {
+                                       "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                       "maxLength" : 40,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "name" : {
+                                       "description" : "Alias name.",
+                                       "maxLength" : 64,
+                                       "minLength" : 2,
+                                       "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                       "type" : "string"
+                                    },
+                                    "rename" : {
+                                       "description" : "Rename an existing alias.",
+                                       "maxLength" : 64,
+                                       "minLength" : 2,
+                                       "optional" : 1,
+                                       "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                       "type" : "string"
+                                    }
+                                 }
                               },
-                              "exclude-path" : {
-                                 "description" : "Exclude certain files/directories (shell globs).",
-                                 "format" : "string-alist",
-                                 "optional" : 1,
-                                 "type" : "string"
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Modify"
+                                    ]
+                                 ]
                               },
-                              "id" : {
-                                 "description" : "The job ID.",
-                                 "maxLength" : 50,
-                                 "type" : "string"
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/cluster/firewall/aliases/{name}",
+                        "text" : "{name}"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "description" : "List aliases",
+                        "method" : "GET",
+                        "name" : "get_aliases",
+                        "parameters" : {
+                           "additionalProperties" : 0
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Audit"
+                              ]
+                           ]
+                        },
+                        "returns" : {
+                           "items" : {
+                              "properties" : {
+                                 "cidr" : {
+                                    "type" : "string"
+                                 },
+                                 "comment" : {
+                                    "optional" : 1,
+                                    "type" : "string"
+                                 },
+                                 "digest" : {
+                                    "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                    "maxLength" : 40,
+                                    "optional" : 0,
+                                    "type" : "string"
+                                 },
+                                 "name" : {
+                                    "type" : "string"
+                                 }
                               },
-                              "ionice" : {
-                                 "default" : 7,
-                                 "description" : "Set CFQ ionice priority.",
-                                 "maximum" : 8,
-                                 "minimum" : 0,
-                                 "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "integer (0-8)"
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{name}",
+                                 "rel" : "child"
+                              }
+                           ],
+                           "type" : "array"
+                        }
+                     },
+                     "POST" : {
+                        "description" : "Create IP or Network Alias.",
+                        "method" : "POST",
+                        "name" : "create_alias",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "cidr" : {
+                                 "description" : "Network/IP specification in CIDR format.",
+                                 "format" : "IPorCIDR",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
-                              "lockwait" : {
-                                 "default" : 180,
-                                 "description" : "Maximal time to wait for the global lock (minutes).",
-                                 "minimum" : 0,
+                              "comment" : {
                                  "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "integer (0- N)"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
-                              "mailnotification" : {
-                                 "default" : "always",
-                                 "description" : "Specify when to send an email",
-                                 "enum" : [
-                                    "always",
-                                    "failure"
-                                 ],
-                                 "optional" : 1,
+                              "name" : {
+                                 "description" : "Alias name.",
+                                 "maxLength" : 64,
+                                 "minLength" : 2,
+                                 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
                                  "type" : "string"
-                              },
-                              "mailto" : {
-                                 "description" : "Comma-separated list of email addresses that should receive email notifications.",
-                                 "format" : "string-list",
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Modify"
+                              ]
+                           ]
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "type" : "null"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/cluster/firewall/aliases",
+                  "text" : "aliases"
+               },
+               {
+                  "info" : {
+                     "GET" : {
+                        "description" : "Get Firewall options.",
+                        "method" : "GET",
+                        "name" : "get_options",
+                        "parameters" : {
+                           "additionalProperties" : 0
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Audit"
+                              ]
+                           ]
+                        },
+                        "returns" : {
+                           "properties" : {
+                              "ebtables" : {
+                                 "default" : 1,
+                                 "description" : "Enable ebtables rules cluster wide.",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "boolean"
                               },
-                              "maxfiles" : {
-                                 "default" : 1,
-                                 "description" : "Maximal number of backup files per guest system.",
-                                 "minimum" : 1,
+                              "enable" : {
+                                 "description" : "Enable or disable the firewall cluster wide.",
+                                 "minimum" : 0,
                                  "optional" : 1,
-                                 "type" : "integer",
-                                 "typetext" : "integer (1- N)"
+                                 "type" : "integer"
                               },
-                              "mode" : {
-                                 "default" : "snapshot",
-                                 "description" : "Backup mode.",
+                              "policy_in" : {
+                                 "description" : "Input policy.",
                                  "enum" : [
-                                    "snapshot",
-                                    "suspend",
-                                    "stop"
+                                    "ACCEPT",
+                                    "REJECT",
+                                    "DROP"
                                  ],
                                  "optional" : 1,
                                  "type" : "string"
                               },
-                              "node" : {
-                                 "description" : "Only run if executed on this node.",
-                                 "format" : "pve-node",
+                              "policy_out" : {
+                                 "description" : "Output policy.",
+                                 "enum" : [
+                                    "ACCEPT",
+                                    "REJECT",
+                                    "DROP"
+                                 ],
                                  "optional" : 1,
                                  "type" : "string"
-                              },
-                              "pigz" : {
-                                 "default" : 0,
-                                 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
-                                 "optional" : 1,
-                                 "type" : "integer"
-                              },
-                              "quiet" : {
-                                 "default" : 0,
-                                 "description" : "Be quiet.",
-                                 "optional" : 1,
-                                 "type" : "boolean"
-                              },
-                              "remove" : {
-                                 "default" : 1,
-                                 "description" : "Remove old backup files if there are more than 'maxfiles' backup files.",
-                                 "optional" : 1,
-                                 "type" : "boolean"
-                              },
-                              "script" : {
-                                 "description" : "Use specified hook script.",
+                              }
+                           },
+                           "type" : "object"
+                        }
+                     },
+                     "PUT" : {
+                        "description" : "Set Firewall options.",
+                        "method" : "PUT",
+                        "name" : "set_options",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "delete" : {
+                                 "description" : "A list of settings you want to delete.",
+                                 "format" : "pve-configid-list",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
-                              "size" : {
-                                 "default" : 1024,
-                                 "description" : "Unused, will be removed in a future release.",
-                                 "minimum" : 500,
+                              "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" : "integer",
-                                 "typetext" : "integer (500- N)"
-                              },
-                              "starttime" : {
-                                 "description" : "Job Start time.",
-                                 "pattern" : "\\d{1,2}:\\d{1,2}",
                                  "type" : "string",
-                                 "typetext" : "HH:MM"
+                                 "typetext" : "<string>"
                               },
-                              "stdexcludes" : {
+                              "ebtables" : {
                                  "default" : 1,
-                                 "description" : "Exclude temporary files and logs.",
-                                 "optional" : 1,
-                                 "type" : "boolean"
-                              },
-                              "stop" : {
-                                 "default" : 0,
-                                 "description" : "Stop runnig backup jobs on this host.",
+                                 "description" : "Enable ebtables rules cluster wide.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
-                              "stopwait" : {
-                                 "default" : 10,
-                                 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
+                              "enable" : {
+                                 "description" : "Enable or disable the firewall cluster wide.",
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (0- N)"
+                                 "typetext" : "<integer> (0 - N)"
                               },
-                              "storage" : {
-                                 "description" : "Store resulting file to this storage.",
-                                 "format" : "pve-storage-id",
-                                 "optional" : 1,
-                                 "type" : "string"
-                              },
-                              "tmpdir" : {
-                                 "description" : "Store temporary files to specified directory.",
+                              "policy_in" : {
+                                 "description" : "Input policy.",
+                                 "enum" : [
+                                    "ACCEPT",
+                                    "REJECT",
+                                    "DROP"
+                                 ],
                                  "optional" : 1,
                                  "type" : "string"
                               },
-                              "vmid" : {
-                                 "description" : "The ID of the guest system you want to backup.",
-                                 "format" : "pve-vmid-list",
+                              "policy_out" : {
+                                 "description" : "Output policy.",
+                                 "enum" : [
+                                    "ACCEPT",
+                                    "REJECT",
+                                    "DROP"
+                                 ],
                                  "optional" : 1,
                                  "type" : "string"
                               }
@@ -1989,509 +2376,150 @@ var pveapi = [
                      }
                   },
                   "leaf" : 1,
-                  "path" : "/cluster/backup/{id}",
-                  "text" : "{id}"
-               }
-            ],
-            "info" : {
-               "GET" : {
-                  "description" : "List vzdump backup schedule.",
-                  "method" : "GET",
-                  "name" : "index",
-                  "parameters" : {
-                     "additionalProperties" : 0
-                  },
-                  "permissions" : {
-                     "check" : [
-                        "perm",
-                        "/",
-                        [
-                           "Sys.Audit"
-                        ]
-                     ]
-                  },
-                  "returns" : {
-                     "items" : {
-                        "properties" : {
-                           "id" : {
-                              "type" : "string"
-                           }
-                        },
-                        "type" : "object"
-                     },
-                     "links" : [
-                        {
-                           "href" : "{id}",
-                           "rel" : "child"
-                        }
-                     ],
-                     "type" : "array"
-                  }
+                  "path" : "/cluster/firewall/options",
+                  "text" : "options"
                },
-               "POST" : {
-                  "description" : "Create new vzdump backup job.",
-                  "method" : "POST",
-                  "name" : "create_job",
-                  "parameters" : {
-                     "additionalProperties" : 0,
-                     "properties" : {
-                        "all" : {
-                           "default" : 0,
-                           "description" : "Backup all known guest systems on this host.",
-                           "optional" : 1,
-                           "type" : "boolean"
-                        },
-                        "bwlimit" : {
-                           "default" : 0,
-                           "description" : "Limit I/O bandwidth (KBytes per second).",
-                           "minimum" : 0,
-                           "optional" : 1,
-                           "type" : "integer",
-                           "typetext" : "integer (0- N)"
+               {
+                  "info" : {
+                     "GET" : {
+                        "description" : "List available macros",
+                        "method" : "GET",
+                        "name" : "get_macros",
+                        "parameters" : {
+                           "additionalProperties" : 0
                         },
-                        "compress" : {
-                           "default" : "0",
-                           "description" : "Compress dump file.",
-                           "enum" : [
-                              "0",
-                              "1",
-                              "gzip",
-                              "lzo"
-                           ],
-                           "optional" : 1,
-                           "type" : "string"
+                        "permissions" : {
+                           "user" : "all"
                         },
-                        "dow" : {
-                           "default" : "mon,tue,wed,thu,fri,sat,sun",
-                           "description" : "Day of week selection.",
-                           "format" : "pve-day-of-week-list",
-                           "optional" : 1,
-                           "type" : "string"
-                        },
-                        "dumpdir" : {
-                           "description" : "Store resulting files to specified directory.",
-                           "optional" : 1,
-                           "type" : "string"
-                        },
-                        "enabled" : {
-                           "default" : "1",
-                           "description" : "Enable or disable the job.",
-                           "optional" : 1,
-                           "type" : "boolean"
-                        },
-                        "exclude" : {
-                           "description" : "Exclude specified guest systems (assumes --all)",
-                           "format" : "pve-vmid-list",
-                           "optional" : 1,
-                           "type" : "string"
-                        },
-                        "exclude-path" : {
-                           "description" : "Exclude certain files/directories (shell globs).",
-                           "format" : "string-alist",
-                           "optional" : 1,
-                           "type" : "string"
-                        },
-                        "ionice" : {
-                           "default" : 7,
-                           "description" : "Set CFQ ionice priority.",
-                           "maximum" : 8,
-                           "minimum" : 0,
-                           "optional" : 1,
-                           "type" : "integer",
-                           "typetext" : "integer (0-8)"
-                        },
-                        "lockwait" : {
-                           "default" : 180,
-                           "description" : "Maximal time to wait for the global lock (minutes).",
-                           "minimum" : 0,
-                           "optional" : 1,
-                           "type" : "integer",
-                           "typetext" : "integer (0- N)"
-                        },
-                        "mailnotification" : {
-                           "default" : "always",
-                           "description" : "Specify when to send an email",
-                           "enum" : [
-                              "always",
-                              "failure"
-                           ],
-                           "optional" : 1,
-                           "type" : "string"
-                        },
-                        "mailto" : {
-                           "description" : "Comma-separated list of email addresses that should receive email notifications.",
-                           "format" : "string-list",
-                           "optional" : 1,
-                           "type" : "string"
-                        },
-                        "maxfiles" : {
-                           "default" : 1,
-                           "description" : "Maximal number of backup files per guest system.",
-                           "minimum" : 1,
-                           "optional" : 1,
-                           "type" : "integer",
-                           "typetext" : "integer (1- N)"
-                        },
-                        "mode" : {
-                           "default" : "snapshot",
-                           "description" : "Backup mode.",
-                           "enum" : [
-                              "snapshot",
-                              "suspend",
-                              "stop"
-                           ],
-                           "optional" : 1,
-                           "type" : "string"
-                        },
-                        "node" : {
-                           "description" : "Only run if executed on this node.",
-                           "format" : "pve-node",
-                           "optional" : 1,
-                           "type" : "string"
-                        },
-                        "pigz" : {
-                           "default" : 0,
-                           "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
-                           "optional" : 1,
-                           "type" : "integer"
-                        },
-                        "quiet" : {
-                           "default" : 0,
-                           "description" : "Be quiet.",
-                           "optional" : 1,
-                           "type" : "boolean"
-                        },
-                        "remove" : {
-                           "default" : 1,
-                           "description" : "Remove old backup files if there are more than 'maxfiles' backup files.",
-                           "optional" : 1,
-                           "type" : "boolean"
-                        },
-                        "script" : {
-                           "description" : "Use specified hook script.",
-                           "optional" : 1,
-                           "type" : "string"
-                        },
-                        "size" : {
-                           "default" : 1024,
-                           "description" : "Unused, will be removed in a future release.",
-                           "minimum" : 500,
-                           "optional" : 1,
-                           "type" : "integer",
-                           "typetext" : "integer (500- N)"
-                        },
-                        "starttime" : {
-                           "description" : "Job Start time.",
-                           "pattern" : "\\d{1,2}:\\d{1,2}",
-                           "type" : "string",
-                           "typetext" : "HH:MM"
-                        },
-                        "stdexcludes" : {
-                           "default" : 1,
-                           "description" : "Exclude temporary files and logs.",
-                           "optional" : 1,
-                           "type" : "boolean"
-                        },
-                        "stop" : {
-                           "default" : 0,
-                           "description" : "Stop runnig backup jobs on this host.",
-                           "optional" : 1,
-                           "type" : "boolean"
-                        },
-                        "stopwait" : {
-                           "default" : 10,
-                           "description" : "Maximal time to wait until a guest system is stopped (minutes).",
-                           "minimum" : 0,
-                           "optional" : 1,
-                           "type" : "integer",
-                           "typetext" : "integer (0- N)"
-                        },
-                        "storage" : {
-                           "description" : "Store resulting file to this storage.",
-                           "format" : "pve-storage-id",
-                           "optional" : 1,
-                           "type" : "string"
+                        "returns" : {
+                           "items" : {
+                              "properties" : {
+                                 "descr" : {
+                                    "description" : "More verbose description (if available).",
+                                    "type" : "string"
+                                 },
+                                 "macro" : {
+                                    "description" : "Macro name.",
+                                    "type" : "string"
+                                 }
+                              },
+                              "type" : "object"
+                           },
+                           "type" : "array"
+                        }
+                     }
+                  },
+                  "leaf" : 1,
+                  "path" : "/cluster/firewall/macros",
+                  "text" : "macros"
+               },
+               {
+                  "info" : {
+                     "GET" : {
+                        "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
+                        "method" : "GET",
+                        "name" : "refs",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "type" : {
+                                 "description" : "Only list references of specified type.",
+                                 "enum" : [
+                                    "alias",
+                                    "ipset"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string"
+                              }
+                           }
                         },
-                        "tmpdir" : {
-                           "description" : "Store temporary files to specified directory.",
-                           "optional" : 1,
-                           "type" : "string"
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Audit"
+                              ]
+                           ]
                         },
-                        "vmid" : {
-                           "description" : "The ID of the guest system you want to backup.",
-                           "format" : "pve-vmid-list",
-                           "optional" : 1,
-                           "type" : "string"
+                        "returns" : {
+                           "items" : {
+                              "properties" : {
+                                 "comment" : {
+                                    "optional" : 1,
+                                    "type" : "string"
+                                 },
+                                 "name" : {
+                                    "type" : "string"
+                                 },
+                                 "ref" : {
+                                    "type" : "string"
+                                 },
+                                 "type" : {
+                                    "enum" : [
+                                       "alias",
+                                       "ipset"
+                                    ],
+                                    "type" : "string"
+                                 }
+                              },
+                              "type" : "object"
+                           },
+                           "type" : "array"
                         }
                      }
                   },
+                  "leaf" : 1,
+                  "path" : "/cluster/firewall/refs",
+                  "text" : "refs"
+               }
+            ],
+            "info" : {
+               "GET" : {
+                  "description" : "Directory index.",
+                  "method" : "GET",
+                  "name" : "index",
+                  "parameters" : {
+                     "additionalProperties" : 0
+                  },
                   "permissions" : {
-                     "check" : [
-                        "perm",
-                        "/",
-                        [
-                           "Sys.Modify"
-                        ]
-                     ]
+                     "user" : "all"
                   },
-                  "protected" : 1,
                   "returns" : {
-                     "type" : "null"
+                     "items" : {
+                        "properties" : {},
+                        "type" : "object"
+                     },
+                     "links" : [
+                        {
+                           "href" : "{name}",
+                           "rel" : "child"
+                        }
+                     ],
+                     "type" : "array"
                   }
                }
             },
             "leaf" : 0,
-            "path" : "/cluster/backup",
-            "text" : "backup"
+            "path" : "/cluster/firewall",
+            "text" : "firewall"
          },
          {
             "children" : [
                {
-                  "children" : [
-                     {
-                        "children" : [
-                           {
-                              "info" : {
-                                 "POST" : {
-                                    "description" : "Request resource migration (online) to another node.",
-                                    "method" : "POST",
-                                    "name" : "migrate",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "type" : "string"
-                                          },
-                                          "sid" : {
-                                             "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
-                                             "format" : "pve-ha-resource-or-vm-id",
-                                             "type" : "string",
-                                             "typetext" : "<type>:<name>"
-                                          }
-                                       }
-                                    },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/",
-                                          [
-                                             "Sys.Console"
-                                          ]
-                                       ]
-                                    },
-                                    "protected" : 1,
-                                    "returns" : {
-                                       "type" : "null"
-                                    }
-                                 }
-                              },
-                              "leaf" : 1,
-                              "path" : "/cluster/ha/resources/{sid}/migrate",
-                              "text" : "migrate"
-                           },
-                           {
-                              "info" : {
-                                 "POST" : {
-                                    "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.",
-                                    "method" : "POST",
-                                    "name" : "relocate",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "type" : "string"
-                                          },
-                                          "sid" : {
-                                             "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
-                                             "format" : "pve-ha-resource-or-vm-id",
-                                             "type" : "string",
-                                             "typetext" : "<type>:<name>"
-                                          }
-                                       }
-                                    },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/",
-                                          [
-                                             "Sys.Console"
-                                          ]
-                                       ]
-                                    },
-                                    "protected" : 1,
-                                    "returns" : {
-                                       "type" : "null"
-                                    }
-                                 }
-                              },
-                              "leaf" : 1,
-                              "path" : "/cluster/ha/resources/{sid}/relocate",
-                              "text" : "relocate"
-                           }
-                        ],
-                        "info" : {
-                           "DELETE" : {
-                              "description" : "Delete resource configuration.",
-                              "method" : "DELETE",
-                              "name" : "delete",
-                              "parameters" : {
-                                 "additionalProperties" : 0,
-                                 "properties" : {
-                                    "sid" : {
-                                       "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
-                                       "format" : "pve-ha-resource-or-vm-id",
-                                       "type" : "string",
-                                       "typetext" : "<type>:<name>"
-                                    }
-                                 }
-                              },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Console"
-                                    ]
-                                 ]
-                              },
-                              "protected" : 1,
-                              "returns" : {
-                                 "type" : "null"
-                              }
-                           },
-                           "GET" : {
-                              "description" : "Read resource configuration.",
-                              "method" : "GET",
-                              "name" : "read",
-                              "parameters" : {
-                                 "additionalProperties" : 0,
-                                 "properties" : {
-                                    "sid" : {
-                                       "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
-                                       "format" : "pve-ha-resource-or-vm-id",
-                                       "type" : "string",
-                                       "typetext" : "<type>:<name>"
-                                    }
-                                 }
-                              },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Audit"
-                                    ]
-                                 ]
-                              },
-                              "returns" : {}
-                           },
-                           "PUT" : {
-                              "description" : "Update resource configuration.",
-                              "method" : "PUT",
-                              "name" : "update",
-                              "parameters" : {
-                                 "additionalProperties" : 0,
-                                 "properties" : {
-                                    "comment" : {
-                                       "description" : "Description.",
-                                       "maxLength" : 4096,
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "delete" : {
-                                       "description" : "A list of settings you want to delete.",
-                                       "format" : "pve-configid-list",
-                                       "maxLength" : 4096,
-                                       "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"
-                                    },
-                                    "group" : {
-                                       "description" : "The HA group identifier.",
-                                       "format" : "pve-configid",
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "max_relocate" : {
-                                       "default" : 1,
-                                       "description" : "Maximal number of service relocate tries when a service failes to start.",
-                                       "minimum" : 0,
-                                       "optional" : 1,
-                                       "type" : "integer",
-                                       "typetext" : "integer (0- N)"
-                                    },
-                                    "max_restart" : {
-                                       "default" : 1,
-                                       "description" : "Maximal number of tries to restart the service on a node after its start failed.",
-                                       "minimum" : 0,
-                                       "optional" : 1,
-                                       "type" : "integer",
-                                       "typetext" : "integer (0- N)"
-                                    },
-                                    "sid" : {
-                                       "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
-                                       "format" : "pve-ha-resource-or-vm-id",
-                                       "type" : "string",
-                                       "typetext" : "<type>:<name>"
-                                    },
-                                    "state" : {
-                                       "default" : "enabled",
-                                       "description" : "Resource state.",
-                                       "enum" : [
-                                          "enabled",
-                                          "disabled"
-                                       ],
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    }
-                                 },
-                                 "type" : "object"
-                              },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Console"
-                                    ]
-                                 ]
-                              },
-                              "protected" : 1,
-                              "returns" : {
-                                 "type" : "null"
-                              }
-                           }
-                        },
-                        "leaf" : 0,
-                        "path" : "/cluster/ha/resources/{sid}",
-                        "text" : "{sid}"
-                     }
-                  ],
                   "info" : {
-                     "GET" : {
-                        "description" : "List HA resources.",
-                        "method" : "GET",
-                        "name" : "index",
+                     "DELETE" : {
+                        "description" : "Delete vzdump backup job definition.",
+                        "method" : "DELETE",
+                        "name" : "delete_job",
                         "parameters" : {
                            "additionalProperties" : 0,
                            "properties" : {
-                              "type" : {
-                                 "description" : "Only list resources of specific type",
-                                 "enum" : [
-                                    "ct",
-                                    "vm"
-                                 ],
-                                 "optional" : 1,
-                                 "type" : "string"
+                              "id" : {
+                                 "description" : "The job ID.",
+                                 "maxLength" : 50,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -2500,97 +2528,275 @@ var pveapi = [
                               "perm",
                               "/",
                               [
-                                 "Sys.Audit"
+                                 "Sys.Modify"
                               ]
                            ]
                         },
+                        "protected" : 1,
                         "returns" : {
-                           "items" : {
-                              "properties" : {
-                                 "sid" : {
-                                    "type" : "string"
-                                 }
-                              },
-                              "type" : "object"
-                           },
-                           "links" : [
-                              {
-                                 "href" : "{sid}",
-                                 "rel" : "child"
+                           "type" : "null"
+                        }
+                     },
+                     "GET" : {
+                        "description" : "Read vzdump backup job definition.",
+                        "method" : "GET",
+                        "name" : "read_job",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "id" : {
+                                 "description" : "The job ID.",
+                                 "maxLength" : 50,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
-                           ],
-                           "type" : "array"
+                           }
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Audit"
+                              ]
+                           ]
+                        },
+                        "returns" : {
+                           "type" : "object"
                         }
                      },
-                     "POST" : {
-                        "description" : "Create a new HA resource.",
-                        "method" : "POST",
-                        "name" : "create",
+                     "PUT" : {
+                        "description" : "Update vzdump backup job definition.",
+                        "method" : "PUT",
+                        "name" : "update_job",
                         "parameters" : {
                            "additionalProperties" : 0,
                            "properties" : {
-                              "comment" : {
-                                 "description" : "Description.",
-                                 "maxLength" : 4096,
+                              "all" : {
+                                 "default" : 0,
+                                 "description" : "Backup all known guest systems on this host.",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
-                              "group" : {
-                                 "description" : "The HA group identifier.",
-                                 "format" : "pve-configid",
+                              "bwlimit" : {
+                                 "default" : 0,
+                                 "description" : "Limit I/O bandwidth (KBytes per second).",
+                                 "minimum" : 0,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (0 - N)"
+                              },
+                              "compress" : {
+                                 "default" : "0",
+                                 "description" : "Compress dump file.",
+                                 "enum" : [
+                                    "0",
+                                    "1",
+                                    "gzip",
+                                    "lzo"
+                                 ],
                                  "optional" : 1,
                                  "type" : "string"
                               },
-                              "max_relocate" : {
-                                 "default" : 1,
-                                 "description" : "Maximal number of service relocate tries when a service failes to start.",
+                              "delete" : {
+                                 "description" : "A list of settings you want to delete.",
+                                 "format" : "pve-configid-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "dow" : {
+                                 "description" : "Day of week selection.",
+                                 "format" : "pve-day-of-week-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "dumpdir" : {
+                                 "description" : "Store resulting files to specified directory.",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "enabled" : {
+                                 "default" : "1",
+                                 "description" : "Enable or disable the job.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "exclude" : {
+                                 "description" : "Exclude specified guest systems (assumes --all)",
+                                 "format" : "pve-vmid-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "exclude-path" : {
+                                 "description" : "Exclude certain files/directories (shell globs).",
+                                 "format" : "string-alist",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "id" : {
+                                 "description" : "The job ID.",
+                                 "maxLength" : 50,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "ionice" : {
+                                 "default" : 7,
+                                 "description" : "Set CFQ ionice priority.",
+                                 "maximum" : 8,
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (0- N)"
+                                 "typetext" : "<integer> (0 - 8)"
                               },
-                              "max_restart" : {
-                                 "default" : 1,
-                                 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
+                              "lockwait" : {
+                                 "default" : 180,
+                                 "description" : "Maximal time to wait for the global lock (minutes).",
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (0- N)"
-                              },
-                              "sid" : {
-                                 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
-                                 "format" : "pve-ha-resource-or-vm-id",
-                                 "type" : "string",
-                                 "typetext" : "<type>:<name>"
+                                 "typetext" : "<integer> (0 - N)"
                               },
-                              "state" : {
-                                 "default" : "enabled",
-                                 "description" : "Resource state.",
+                              "mailnotification" : {
+                                 "default" : "always",
+                                 "description" : "Specify when to send an email",
                                  "enum" : [
-                                    "enabled",
-                                    "disabled"
+                                    "always",
+                                    "failure"
                                  ],
                                  "optional" : 1,
                                  "type" : "string"
                               },
-                              "type" : {
-                                 "description" : "Resource type.",
+                              "mailto" : {
+                                 "description" : "Comma-separated list of email addresses that should receive email notifications.",
+                                 "format" : "string-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "maxfiles" : {
+                                 "default" : 1,
+                                 "description" : "Maximal number of backup files per guest system.",
+                                 "minimum" : 1,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (1 - N)"
+                              },
+                              "mode" : {
+                                 "default" : "snapshot",
+                                 "description" : "Backup mode.",
                                  "enum" : [
-                                    "ct",
-                                    "vm"
+                                    "snapshot",
+                                    "suspend",
+                                    "stop"
                                  ],
                                  "optional" : 1,
                                  "type" : "string"
+                              },
+                              "node" : {
+                                 "description" : "Only run if executed on this node.",
+                                 "format" : "pve-node",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "pigz" : {
+                                 "default" : 0,
+                                 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer>"
+                              },
+                              "quiet" : {
+                                 "default" : 0,
+                                 "description" : "Be quiet.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "remove" : {
+                                 "default" : 1,
+                                 "description" : "Remove old backup files if there are more than 'maxfiles' backup files.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "script" : {
+                                 "description" : "Use specified hook script.",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "size" : {
+                                 "default" : 1024,
+                                 "description" : "Unused, will be removed in a future release.",
+                                 "minimum" : 500,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (500 - N)"
+                              },
+                              "starttime" : {
+                                 "description" : "Job Start time.",
+                                 "pattern" : "\\d{1,2}:\\d{1,2}",
+                                 "type" : "string",
+                                 "typetext" : "HH:MM"
+                              },
+                              "stdexcludes" : {
+                                 "default" : 1,
+                                 "description" : "Exclude temporary files and logs.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "stop" : {
+                                 "default" : 0,
+                                 "description" : "Stop runnig backup jobs on this host.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "stopwait" : {
+                                 "default" : 10,
+                                 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
+                                 "minimum" : 0,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (0 - N)"
+                              },
+                              "storage" : {
+                                 "description" : "Store resulting file to this storage.",
+                                 "format" : "pve-storage-id",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "tmpdir" : {
+                                 "description" : "Store temporary files to specified directory.",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "vmid" : {
+                                 "description" : "The ID of the guest system you want to backup.",
+                                 "format" : "pve-vmid-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
-                           },
-                           "type" : "object"
+                           }
                         },
                         "permissions" : {
                            "check" : [
                               "perm",
                               "/",
                               [
-                                 "Sys.Console"
+                                 "Sys.Modify"
                               ]
                            ]
                         },
@@ -2600,984 +2806,3536 @@ var pveapi = [
                         }
                      }
                   },
-                  "leaf" : 0,
-                  "path" : "/cluster/ha/resources",
-                  "text" : "resources"
-               },
-               {
-                  "children" : [
-                     {
-                        "info" : {
-                           "DELETE" : {
-                              "description" : "Delete ha group configuration.",
-                              "method" : "DELETE",
-                              "name" : "delete",
-                              "parameters" : {
-                                 "additionalProperties" : 0,
-                                 "properties" : {
-                                    "group" : {
-                                       "description" : "The HA group identifier.",
-                                       "format" : "pve-configid",
-                                       "type" : "string"
-                                    }
-                                 }
-                              },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Console"
-                                    ]
-                                 ]
-                              },
-                              "protected" : 1,
-                              "returns" : {
-                                 "type" : "null"
-                              }
-                           },
-                           "GET" : {
-                              "description" : "Read ha group configuration.",
-                              "method" : "GET",
-                              "name" : "read",
-                              "parameters" : {
-                                 "additionalProperties" : 0,
-                                 "properties" : {
-                                    "group" : {
-                                       "description" : "The HA group identifier.",
-                                       "format" : "pve-configid",
-                                       "type" : "string"
-                                    }
-                                 }
-                              },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Audit"
-                                    ]
-                                 ]
-                              },
-                              "returns" : {}
-                           },
-                           "PUT" : {
-                              "description" : "Update ha group configuration.",
-                              "method" : "PUT",
-                              "name" : "update",
-                              "parameters" : {
-                                 "additionalProperties" : 0,
-                                 "properties" : {
-                                    "comment" : {
-                                       "description" : "Description.",
-                                       "maxLength" : 4096,
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "delete" : {
-                                       "description" : "A list of settings you want to delete.",
-                                       "format" : "pve-configid-list",
-                                       "maxLength" : 4096,
-                                       "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"
-                                    },
-                                    "group" : {
-                                       "description" : "The HA group identifier.",
-                                       "format" : "pve-configid",
-                                       "type" : "string"
-                                    },
-                                    "nodes" : {
-                                       "description" : "List of cluster node names with optional priority. We use priority '0' as default. The CRM tries to run services on the node with highest priority (also see option 'nofailback').",
-                                       "format" : "pve-ha-group-node-list",
-                                       "optional" : 1,
-                                       "type" : "string",
-                                       "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*"
-                                    },
-                                    "nofailback" : {
-                                       "default" : 0,
-                                       "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
-                                       "optional" : 1,
-                                       "type" : "boolean"
-                                    },
-                                    "restricted" : {
-                                       "default" : 0,
-                                       "description" : "Services on unrestricted groups may run on any cluster members if all group members are offline. But they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with one member.",
-                                       "optional" : 1,
-                                       "type" : "boolean"
-                                    }
-                                 },
-                                 "type" : "object"
-                              },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Console"
-                                    ]
-                                 ]
-                              },
-                              "protected" : 1,
-                              "returns" : {
-                                 "type" : "null"
-                              }
+                  "leaf" : 1,
+                  "path" : "/cluster/backup/{id}",
+                  "text" : "{id}"
+               }
+            ],
+            "info" : {
+               "GET" : {
+                  "description" : "List vzdump backup schedule.",
+                  "method" : "GET",
+                  "name" : "index",
+                  "parameters" : {
+                     "additionalProperties" : 0
+                  },
+                  "permissions" : {
+                     "check" : [
+                        "perm",
+                        "/",
+                        [
+                           "Sys.Audit"
+                        ]
+                     ]
+                  },
+                  "returns" : {
+                     "items" : {
+                        "properties" : {
+                           "id" : {
+                              "type" : "string"
                            }
                         },
-                        "leaf" : 1,
-                        "path" : "/cluster/ha/groups/{group}",
-                        "text" : "{group}"
-                     }
-                  ],
-                  "info" : {
-                     "GET" : {
-                        "description" : "Get HA groups.",
-                        "method" : "GET",
-                        "name" : "index",
-                        "parameters" : {
-                           "additionalProperties" : 0
+                        "type" : "object"
+                     },
+                     "links" : [
+                        {
+                           "href" : "{id}",
+                           "rel" : "child"
+                        }
+                     ],
+                     "type" : "array"
+                  }
+               },
+               "POST" : {
+                  "description" : "Create new vzdump backup job.",
+                  "method" : "POST",
+                  "name" : "create_job",
+                  "parameters" : {
+                     "additionalProperties" : 0,
+                     "properties" : {
+                        "all" : {
+                           "default" : 0,
+                           "description" : "Backup all known guest systems on this host.",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
                         },
-                        "permissions" : {
-                           "check" : [
-                              "perm",
-                              "/",
-                              [
-                                 "Sys.Audit"
-                              ]
-                           ]
+                        "bwlimit" : {
+                           "default" : 0,
+                           "description" : "Limit I/O bandwidth (KBytes per second).",
+                           "minimum" : 0,
+                           "optional" : 1,
+                           "type" : "integer",
+                           "typetext" : "<integer> (0 - N)"
                         },
-                        "returns" : {
-                           "items" : {
-                              "properties" : {
-                                 "group" : {
-                                    "type" : "string"
-                                 }
-                              },
-                              "type" : "object"
-                           },
-                           "links" : [
-                              {
-                                 "href" : "{group}",
-                                 "rel" : "child"
-                              }
+                        "compress" : {
+                           "default" : "0",
+                           "description" : "Compress dump file.",
+                           "enum" : [
+                              "0",
+                              "1",
+                              "gzip",
+                              "lzo"
                            ],
-                           "type" : "array"
-                        }
-                     },
-                     "POST" : {
-                        "description" : "Create a new HA group.",
-                        "method" : "POST",
-                        "name" : "create",
-                        "parameters" : {
-                           "additionalProperties" : 0,
-                           "properties" : {
-                              "comment" : {
-                                 "description" : "Description.",
-                                 "maxLength" : 4096,
-                                 "optional" : 1,
-                                 "type" : "string"
-                              },
-                              "group" : {
-                                 "description" : "The HA group identifier.",
-                                 "format" : "pve-configid",
-                                 "type" : "string"
-                              },
-                              "nodes" : {
-                                 "description" : "List of cluster node names with optional priority. We use priority '0' as default. The CRM tries to run services on the node with highest priority (also see option 'nofailback').",
-                                 "format" : "pve-ha-group-node-list",
-                                 "optional" : 0,
-                                 "type" : "string",
-                                 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*"
-                              },
-                              "nofailback" : {
-                                 "default" : 0,
-                                 "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
-                                 "optional" : 1,
-                                 "type" : "boolean"
-                              },
-                              "restricted" : {
-                                 "default" : 0,
-                                 "description" : "Services on unrestricted groups may run on any cluster members if all group members are offline. But they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with one member.",
-                                 "optional" : 1,
-                                 "type" : "boolean"
-                              },
-                              "type" : {
-                                 "description" : "Group type.",
-                                 "enum" : [
-                                    "group"
-                                 ],
-                                 "optional" : 1,
-                                 "type" : "string"
-                              }
-                           },
-                           "type" : "object"
+                           "optional" : 1,
+                           "type" : "string"
                         },
-                        "permissions" : {
-                           "check" : [
-                              "perm",
-                              "/",
-                              [
-                                 "Sys.Console"
-                              ]
-                           ]
+                        "dow" : {
+                           "default" : "mon,tue,wed,thu,fri,sat,sun",
+                           "description" : "Day of week selection.",
+                           "format" : "pve-day-of-week-list",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
-                        "protected" : 1,
-                        "returns" : {
-                           "type" : "null"
-                        }
-                     }
-                  },
-                  "leaf" : 0,
-                  "path" : "/cluster/ha/groups",
-                  "text" : "groups"
-               },
-               {
-                  "children" : [
-                     {
-                        "info" : {
-                           "GET" : {
-                              "description" : "Get HA manger status.",
-                              "method" : "GET",
-                              "name" : "status",
-                              "parameters" : {
-                                 "additionalProperties" : 0
-                              },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Audit"
-                                    ]
-                                 ]
-                              },
-                              "returns" : {
-                                 "type" : "array"
-                              }
-                           }
+                        "dumpdir" : {
+                           "description" : "Store resulting files to specified directory.",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
-                        "leaf" : 1,
-                        "path" : "/cluster/ha/status/current",
-                        "text" : "current"
-                     },
-                     {
-                        "info" : {
-                           "GET" : {
-                              "description" : "Get full HA manger status, including LRM status.",
-                              "method" : "GET",
-                              "name" : "manager_status",
-                              "parameters" : {
-                                 "additionalProperties" : 0
-                              },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Audit"
-                                    ]
-                                 ]
-                              },
-                              "returns" : {
-                                 "type" : "object"
-                              }
-                           }
+                        "enabled" : {
+                           "default" : "1",
+                           "description" : "Enable or disable the job.",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
                         },
-                        "leaf" : 1,
-                        "path" : "/cluster/ha/status/manager_status",
-                        "text" : "manager_status"
-                     }
-                  ],
-                  "info" : {
-                     "GET" : {
-                        "description" : "Directory index.",
-                        "method" : "GET",
-                        "name" : "index",
-                        "parameters" : {
-                           "additionalProperties" : 0
+                        "exclude" : {
+                           "description" : "Exclude specified guest systems (assumes --all)",
+                           "format" : "pve-vmid-list",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
-                        "permissions" : {
-                           "user" : "all"
+                        "exclude-path" : {
+                           "description" : "Exclude certain files/directories (shell globs).",
+                           "format" : "string-alist",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
-                        "returns" : {
-                           "items" : {
-                              "properties" : {},
-                              "type" : "object"
-                           },
-                           "links" : [
-                              {
-                                 "href" : "{name}",
-                                 "rel" : "child"
-                              }
+                        "ionice" : {
+                           "default" : 7,
+                           "description" : "Set CFQ ionice priority.",
+                           "maximum" : 8,
+                           "minimum" : 0,
+                           "optional" : 1,
+                           "type" : "integer",
+                           "typetext" : "<integer> (0 - 8)"
+                        },
+                        "lockwait" : {
+                           "default" : 180,
+                           "description" : "Maximal time to wait for the global lock (minutes).",
+                           "minimum" : 0,
+                           "optional" : 1,
+                           "type" : "integer",
+                           "typetext" : "<integer> (0 - N)"
+                        },
+                        "mailnotification" : {
+                           "default" : "always",
+                           "description" : "Specify when to send an email",
+                           "enum" : [
+                              "always",
+                              "failure"
                            ],
-                           "type" : "array"
+                           "optional" : 1,
+                           "type" : "string"
+                        },
+                        "mailto" : {
+                           "description" : "Comma-separated list of email addresses that should receive email notifications.",
+                           "format" : "string-list",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "maxfiles" : {
+                           "default" : 1,
+                           "description" : "Maximal number of backup files per guest system.",
+                           "minimum" : 1,
+                           "optional" : 1,
+                           "type" : "integer",
+                           "typetext" : "<integer> (1 - N)"
+                        },
+                        "mode" : {
+                           "default" : "snapshot",
+                           "description" : "Backup mode.",
+                           "enum" : [
+                              "snapshot",
+                              "suspend",
+                              "stop"
+                           ],
+                           "optional" : 1,
+                           "type" : "string"
+                        },
+                        "node" : {
+                           "description" : "Only run if executed on this node.",
+                           "format" : "pve-node",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "pigz" : {
+                           "default" : 0,
+                           "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
+                           "optional" : 1,
+                           "type" : "integer",
+                           "typetext" : "<integer>"
+                        },
+                        "quiet" : {
+                           "default" : 0,
+                           "description" : "Be quiet.",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
+                        },
+                        "remove" : {
+                           "default" : 1,
+                           "description" : "Remove old backup files if there are more than 'maxfiles' backup files.",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
+                        },
+                        "script" : {
+                           "description" : "Use specified hook script.",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "size" : {
+                           "default" : 1024,
+                           "description" : "Unused, will be removed in a future release.",
+                           "minimum" : 500,
+                           "optional" : 1,
+                           "type" : "integer",
+                           "typetext" : "<integer> (500 - N)"
+                        },
+                        "starttime" : {
+                           "description" : "Job Start time.",
+                           "pattern" : "\\d{1,2}:\\d{1,2}",
+                           "type" : "string",
+                           "typetext" : "HH:MM"
+                        },
+                        "stdexcludes" : {
+                           "default" : 1,
+                           "description" : "Exclude temporary files and logs.",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
+                        },
+                        "stop" : {
+                           "default" : 0,
+                           "description" : "Stop runnig backup jobs on this host.",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
+                        },
+                        "stopwait" : {
+                           "default" : 10,
+                           "description" : "Maximal time to wait until a guest system is stopped (minutes).",
+                           "minimum" : 0,
+                           "optional" : 1,
+                           "type" : "integer",
+                           "typetext" : "<integer> (0 - N)"
+                        },
+                        "storage" : {
+                           "description" : "Store resulting file to this storage.",
+                           "format" : "pve-storage-id",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "tmpdir" : {
+                           "description" : "Store temporary files to specified directory.",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "vmid" : {
+                           "description" : "The ID of the guest system you want to backup.",
+                           "format" : "pve-vmid-list",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
                         }
                      }
                   },
-                  "leaf" : 0,
-                  "path" : "/cluster/ha/status",
-                  "text" : "status"
-               }
-            ],
-            "info" : {
-               "GET" : {
-                  "description" : "Directory index.",
-                  "method" : "GET",
-                  "name" : "index",
-                  "parameters" : {
-                     "additionalProperties" : 0
-                  },
                   "permissions" : {
                      "check" : [
                         "perm",
                         "/",
                         [
-                           "Sys.Audit"
+                           "Sys.Modify"
                         ]
-                     ]
+                     ],
+                     "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
                   },
+                  "protected" : 1,
                   "returns" : {
-                     "items" : {
-                        "properties" : {
-                           "id" : {
-                              "type" : "string"
-                           }
-                        },
-                        "type" : "object"
-                     },
-                     "links" : [
-                        {
-                           "href" : "{id}",
-                           "rel" : "child"
-                        }
-                     ],
-                     "type" : "array"
+                     "type" : "null"
                   }
                }
             },
             "leaf" : 0,
-            "path" : "/cluster/ha",
-            "text" : "ha"
-         },
-         {
-            "info" : {
-               "GET" : {
-                  "description" : "Read cluster log",
-                  "method" : "GET",
-                  "name" : "log",
-                  "parameters" : {
-                     "additionalProperties" : 0,
-                     "properties" : {
-                        "max" : {
-                           "description" : "Maximum number of entries.",
-                           "minimum" : 1,
-                           "optional" : 1,
-                           "type" : "integer",
-                           "typetext" : "integer (1- N)"
-                        }
-                     }
-                  },
-                  "permissions" : {
-                     "user" : "all"
-                  },
-                  "returns" : {
-                     "items" : {
-                        "properties" : {},
-                        "type" : "object"
-                     },
-                     "type" : "array"
-                  }
-               }
-            },
-            "leaf" : 1,
-            "path" : "/cluster/log",
-            "text" : "log"
-         },
-         {
-            "info" : {
-               "GET" : {
-                  "description" : "Resources index (cluster wide).",
-                  "method" : "GET",
-                  "name" : "resources",
-                  "parameters" : {
-                     "additionalProperties" : 0,
-                     "properties" : {
-                        "type" : {
-                           "enum" : [
-                              "vm",
-                              "storage",
-                              "node"
-                           ],
-                           "optional" : 1,
-                           "type" : "string"
-                        }
-                     }
-                  },
-                  "permissions" : {
-                     "user" : "all"
-                  },
-                  "returns" : {
-                     "items" : {
-                        "properties" : {},
-                        "type" : "object"
-                     },
-                     "type" : "array"
-                  }
-               }
-            },
-            "leaf" : 1,
-            "path" : "/cluster/resources",
-            "text" : "resources"
+            "path" : "/cluster/backup",
+            "text" : "backup"
          },
          {
-            "info" : {
-               "GET" : {
-                  "description" : "List recent tasks (cluster wide).",
-                  "method" : "GET",
-                  "name" : "tasks",
-                  "parameters" : {
-                     "additionalProperties" : 0
-                  },
-                  "permissions" : {
-                     "user" : "all"
-                  },
-                  "returns" : {
-                     "items" : {
-                        "properties" : {
-                           "upid" : {
-                              "type" : "string"
+            "children" : [
+               {
+                  "children" : [
+                     {
+                        "children" : [
+                           {
+                              "info" : {
+                                 "POST" : {
+                                    "description" : "Request resource migration (online) to another node.",
+                                    "method" : "POST",
+                                    "name" : "migrate",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "sid" : {
+                                             "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+                                             "format" : "pve-ha-resource-or-vm-id",
+                                             "type" : "string",
+                                             "typetext" : "<type>:<name>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/",
+                                          [
+                                             "Sys.Console"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "returns" : {
+                                       "type" : "null"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/cluster/ha/resources/{sid}/migrate",
+                              "text" : "migrate"
+                           },
+                           {
+                              "info" : {
+                                 "POST" : {
+                                    "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.",
+                                    "method" : "POST",
+                                    "name" : "relocate",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "sid" : {
+                                             "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+                                             "format" : "pve-ha-resource-or-vm-id",
+                                             "type" : "string",
+                                             "typetext" : "<type>:<name>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/",
+                                          [
+                                             "Sys.Console"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "returns" : {
+                                       "type" : "null"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/cluster/ha/resources/{sid}/relocate",
+                              "text" : "relocate"
+                           }
+                        ],
+                        "info" : {
+                           "DELETE" : {
+                              "description" : "Delete resource configuration.",
+                              "method" : "DELETE",
+                              "name" : "delete",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "sid" : {
+                                       "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+                                       "format" : "pve-ha-resource-or-vm-id",
+                                       "type" : "string",
+                                       "typetext" : "<type>:<name>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Console"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           },
+                           "GET" : {
+                              "description" : "Read resource configuration.",
+                              "method" : "GET",
+                              "name" : "read",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "sid" : {
+                                       "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+                                       "format" : "pve-ha-resource-or-vm-id",
+                                       "type" : "string",
+                                       "typetext" : "<type>:<name>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Audit"
+                                    ]
+                                 ]
+                              },
+                              "returns" : {}
+                           },
+                           "PUT" : {
+                              "description" : "Update resource configuration.",
+                              "method" : "PUT",
+                              "name" : "update",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "comment" : {
+                                       "description" : "Description.",
+                                       "maxLength" : 4096,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "delete" : {
+                                       "description" : "A list of settings you want to delete.",
+                                       "format" : "pve-configid-list",
+                                       "maxLength" : 4096,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "digest" : {
+                                       "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                       "maxLength" : 40,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "group" : {
+                                       "description" : "The HA group identifier.",
+                                       "format" : "pve-configid",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "max_relocate" : {
+                                       "default" : 1,
+                                       "description" : "Maximal number of service relocate tries when a service failes to start.",
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (0 - N)"
+                                    },
+                                    "max_restart" : {
+                                       "default" : 1,
+                                       "description" : "Maximal number of tries to restart the service on a node after its start failed.",
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (0 - N)"
+                                    },
+                                    "sid" : {
+                                       "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+                                       "format" : "pve-ha-resource-or-vm-id",
+                                       "type" : "string",
+                                       "typetext" : "<type>:<name>"
+                                    },
+                                    "state" : {
+                                       "default" : "started",
+                                       "description" : "Requested resource state.",
+                                       "enum" : [
+                                          "started",
+                                          "stopped",
+                                          "enabled",
+                                          "disabled",
+                                          "ignored"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "verbose_description" : "Requested resource state. The CRM reads this state and acts accordingly.\nPlease note that `enabled` is just an alias for `started`.\n\n`started`;;\n\nThe CRM tries to start the resource. Service state is\nset to `started` after successful start. On node failures, or when start\nfails, it tries to recover the resource.  If everything fails, service\nstate it set to `error`.\n\n`stopped`;;\n\nThe CRM tries to keep the resource in `stopped` state, but it\nstill tries to relocate the resources on node failures.\n\n`disabled`;;\n\nThe CRM tries to put the resource in `stopped` state, but does not try\nto relocate the resources on node failures. The main purpose of this\nstate is error recovery, because it is the only way to move a resource out\nof the `error` state.\n\n`ignored`;;\n\nThe resource gets removed from the manager status and so the CRM and the LRM do\nnot touch the resource anymore. All {pve} API calls affecting this resource\nwill be executed, directly bypassing the HA stack. CRM commands will be thrown\naway while there source is in this state. The resource will not get relocated\non node failures.\n\n"
+                                    }
+                                 },
+                                 "type" : "object"
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Console"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
                            }
                         },
-                        "type" : "object"
-                     },
-                     "type" : "array"
-                  }
-               }
-            },
-            "leaf" : 1,
-            "path" : "/cluster/tasks",
-            "text" : "tasks"
-         },
-         {
-            "info" : {
-               "GET" : {
-                  "description" : "Get datacenter options.",
-                  "method" : "GET",
-                  "name" : "get_options",
-                  "parameters" : {
-                     "additionalProperties" : 0
-                  },
-                  "permissions" : {
-                     "check" : [
-                        "perm",
-                        "/",
-                        [
-                           "Sys.Audit"
-                        ]
-                     ]
-                  },
-                  "returns" : {
-                     "properties" : {},
-                     "type" : "object"
-                  }
-               },
-               "PUT" : {
-                  "description" : "Set datacenter options.",
-                  "method" : "PUT",
-                  "name" : "set_options",
-                  "parameters" : {
-                     "additionalProperties" : 0,
-                     "properties" : {
-                        "console" : {
-                           "description" : "Select the default Console viewer. You can either use the builtin java applet (VNC), an external virt-viewer comtatible application (SPICE), or an HTML5 based viewer (noVNC).",
-                           "enum" : [
-                              "applet",
-                              "vv",
-                              "html5"
-                           ],
-                           "optional" : 1,
-                           "type" : "string"
-                        },
-                        "delete" : {
-                           "description" : "A list of settings you want to delete.",
-                           "format" : "pve-configid-list",
-                           "optional" : 1,
-                           "type" : "string"
-                        },
-                        "email_from" : {
-                           "description" : "Specify email address to send notification from (default is root@$hostname)",
-                           "format" : "email-opt",
-                           "optional" : 1,
-                           "type" : "string"
-                        },
-                        "fencing" : {
-                           "default" : "watchdog",
-                           "description" : "Set the fencing mode of the HA cluster. Hardware mode needs a valid configuration of fence devices in /etc/pve/ha/fence.cfg. With both all two modes are used.\n\nWARNING: 'hardware' and 'both' are EXPERIMENTAL & WIP",
-                           "enum" : [
-                              "watchdog",
-                              "hardware",
-                              "both"
-                           ],
-                           "optional" : 1,
-                           "type" : "string"
-                        },
-                        "http_proxy" : {
-                           "description" : "Specify external http proxy which is used for downloads (example: 'http://username:password@host:port/')",
-                           "optional" : 1,
-                           "pattern" : "http://.*",
-                           "type" : "string"
+                        "leaf" : 0,
+                        "path" : "/cluster/ha/resources/{sid}",
+                        "text" : "{sid}"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "description" : "List HA resources.",
+                        "method" : "GET",
+                        "name" : "index",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "type" : {
+                                 "description" : "Only list resources of specific type",
+                                 "enum" : [
+                                    "ct",
+                                    "vm"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string"
+                              }
+                           }
                         },
-                        "keyboard" : {
-                           "description" : "Default keybord layout for vnc server.",
-                           "enum" : [
-                              "de",
-                              "de-ch",
-                              "da",
-                              "en-gb",
-                              "en-us",
-                              "es",
-                              "fi",
-                              "fr",
-                              "fr-be",
-                              "fr-ca",
-                              "fr-ch",
-                              "hu",
-                              "is",
-                              "it",
-                              "ja",
-                              "lt",
-                              "mk",
-                              "nl",
-                              "no",
-                              "pl",
-                              "pt",
-                              "pt-br",
-                              "sv",
-                              "sl",
-                              "tr"
-                           ],
-                           "optional" : 1,
-                           "type" : "string"
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Audit"
+                              ]
+                           ]
                         },
-                        "language" : {
-                           "description" : "Default GUI language.",
-                           "enum" : [
-                              "en",
-                              "de"
+                        "returns" : {
+                           "items" : {
+                              "properties" : {
+                                 "sid" : {
+                                    "type" : "string"
+                                 }
+                              },
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{sid}",
+                                 "rel" : "child"
+                              }
                            ],
-                           "optional" : 1,
-                           "type" : "string"
-                        },
-                        "mac_prefix" : {
-                           "description" : "Prefix for autogenerated MAC addresses.",
-                           "optional" : 1,
-                           "pattern" : "(?^i:[a-f0-9]{2}(?::[a-f0-9]{2}){0,2}:?)",
-                           "type" : "string"
-                        },
-                        "max_workers" : {
-                           "description" : "Defines how many workers (per node) are maximal started  on actions like 'stopall VMs' or task from the ha-manager.",
-                           "minimum" : 1,
-                           "optional" : 1,
-                           "type" : "integer",
-                           "typetext" : "integer (1- N)"
-                        },
-                        "migration_unsecure" : {
-                           "description" : "Migration is secure using SSH tunnel by default. For secure private networks you can disable it to speed up migration.",
-                           "optional" : 1,
-                           "type" : "boolean"
+                           "type" : "array"
                         }
-                     }
-                  },
-                  "permissions" : {
-                     "check" : [
-                        "perm",
-                        "/",
-                        [
-                           "Sys.Modify"
-                        ]
-                     ]
-                  },
-                  "protected" : 1,
-                  "returns" : {
-                     "type" : "null"
-                  }
-               }
-            },
-            "leaf" : 1,
-            "path" : "/cluster/options",
-            "text" : "options"
-         },
-         {
-            "info" : {
-               "GET" : {
-                  "description" : "Get cluster status informations.",
-                  "method" : "GET",
-                  "name" : "get_status",
-                  "parameters" : {
-                     "additionalProperties" : 0
-                  },
-                  "permissions" : {
-                     "check" : [
-                        "perm",
-                        "/",
-                        [
-                           "Sys.Audit"
-                        ]
-                     ]
-                  },
-                  "protected" : 1,
-                  "returns" : {
-                     "items" : {
-                        "properties" : {
-                           "type" : {
-                              "type" : "string"
-                           }
-                        },
-                        "type" : "object"
                      },
-                     "type" : "array"
-                  }
-               }
-            },
-            "leaf" : 1,
-            "path" : "/cluster/status",
-            "text" : "status"
-         },
-         {
-            "info" : {
-               "GET" : {
-                  "description" : "Get next free VMID. If you pass an VMID it will raise an error if the ID is already used.",
-                  "method" : "GET",
-                  "name" : "nextid",
-                  "parameters" : {
-                     "additionalProperties" : 0,
-                     "properties" : {
-                        "vmid" : {
-                           "description" : "The (unique) ID of the VM.",
-                           "format" : "pve-vmid",
-                           "minimum" : 1,
-                           "optional" : 1,
-                           "type" : "integer",
-                           "typetext" : "integer (1- N)"
+                     "POST" : {
+                        "description" : "Create a new HA resource.",
+                        "method" : "POST",
+                        "name" : "create",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "comment" : {
+                                 "description" : "Description.",
+                                 "maxLength" : 4096,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "group" : {
+                                 "description" : "The HA group identifier.",
+                                 "format" : "pve-configid",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "max_relocate" : {
+                                 "default" : 1,
+                                 "description" : "Maximal number of service relocate tries when a service failes to start.",
+                                 "minimum" : 0,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (0 - N)"
+                              },
+                              "max_restart" : {
+                                 "default" : 1,
+                                 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
+                                 "minimum" : 0,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (0 - N)"
+                              },
+                              "sid" : {
+                                 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
+                                 "format" : "pve-ha-resource-or-vm-id",
+                                 "type" : "string",
+                                 "typetext" : "<type>:<name>"
+                              },
+                              "state" : {
+                                 "default" : "started",
+                                 "description" : "Requested resource state.",
+                                 "enum" : [
+                                    "started",
+                                    "stopped",
+                                    "enabled",
+                                    "disabled",
+                                    "ignored"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "verbose_description" : "Requested resource state. The CRM reads this state and acts accordingly.\nPlease note that `enabled` is just an alias for `started`.\n\n`started`;;\n\nThe CRM tries to start the resource. Service state is\nset to `started` after successful start. On node failures, or when start\nfails, it tries to recover the resource.  If everything fails, service\nstate it set to `error`.\n\n`stopped`;;\n\nThe CRM tries to keep the resource in `stopped` state, but it\nstill tries to relocate the resources on node failures.\n\n`disabled`;;\n\nThe CRM tries to put the resource in `stopped` state, but does not try\nto relocate the resources on node failures. The main purpose of this\nstate is error recovery, because it is the only way to move a resource out\nof the `error` state.\n\n`ignored`;;\n\nThe resource gets removed from the manager status and so the CRM and the LRM do\nnot touch the resource anymore. All {pve} API calls affecting this resource\nwill be executed, directly bypassing the HA stack. CRM commands will be thrown\naway while there source is in this state. The resource will not get relocated\non node failures.\n\n"
+                              },
+                              "type" : {
+                                 "description" : "Resource type.",
+                                 "enum" : [
+                                    "ct",
+                                    "vm"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string"
+                              }
+                           },
+                           "type" : "object"
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Console"
+                              ]
+                           ]
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "type" : "null"
                         }
                      }
                   },
-                  "permissions" : {
-                     "user" : "all"
-                  },
-                  "returns" : {
-                     "description" : "The next free VMID.",
-                     "type" : "integer"
-                  }
-               }
-            },
-            "leaf" : 1,
-            "path" : "/cluster/nextid",
-            "text" : "nextid"
-         }
-      ],
-      "info" : {
-         "GET" : {
-            "description" : "Cluster index.",
-            "method" : "GET",
-            "name" : "index",
-            "parameters" : {
-               "additionalProperties" : 0
-            },
-            "permissions" : {
-               "user" : "all"
-            },
-            "returns" : {
-               "items" : {
-                  "properties" : {},
-                  "type" : "object"
+                  "leaf" : 0,
+                  "path" : "/cluster/ha/resources",
+                  "text" : "resources"
                },
-               "links" : [
-                  {
-                     "href" : "{name}",
-                     "rel" : "child"
-                  }
-               ],
-               "type" : "array"
-            }
-         }
-      },
-      "leaf" : 0,
-      "path" : "/cluster",
-      "text" : "cluster"
-   },
-   {
-      "children" : [
-         {
-            "children" : [
                {
                   "children" : [
                      {
-                        "children" : [
-                           {
-                              "children" : [
+                        "info" : {
+                           "DELETE" : {
+                              "description" : "Delete ha group configuration.",
+                              "method" : "DELETE",
+                              "name" : "delete",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "group" : {
+                                       "description" : "The HA group identifier.",
+                                       "format" : "pve-configid",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Console"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           },
+                           "GET" : {
+                              "description" : "Read ha group configuration.",
+                              "method" : "GET",
+                              "name" : "read",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "group" : {
+                                       "description" : "The HA group identifier.",
+                                       "format" : "pve-configid",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Audit"
+                                    ]
+                                 ]
+                              },
+                              "returns" : {}
+                           },
+                           "PUT" : {
+                              "description" : "Update ha group configuration.",
+                              "method" : "PUT",
+                              "name" : "update",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "comment" : {
+                                       "description" : "Description.",
+                                       "maxLength" : 4096,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "delete" : {
+                                       "description" : "A list of settings you want to delete.",
+                                       "format" : "pve-configid-list",
+                                       "maxLength" : 4096,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "digest" : {
+                                       "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                       "maxLength" : 40,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "group" : {
+                                       "description" : "The HA group identifier.",
+                                       "format" : "pve-configid",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "nodes" : {
+                                       "description" : "List of cluster node names with optional priority.",
+                                       "format" : "pve-ha-group-node-list",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
+                                       "verbose_description" : "List of cluster node members, where a priority can be given to each node. A resource bound to a group will run on the available nodes with the highest priority. If there are more nodes in the highest priority class, the services will get distributed to those nodes. The priorities have a relative meaning only."
+                                    },
+                                    "nofailback" : {
+                                       "default" : 0,
+                                       "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "restricted" : {
+                                       "default" : 0,
+                                       "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>",
+                                       "verbose_description" : "Resources bound to restricted groups may only run on nodes defined by the group. The resource will be placed in the stopped state if no group node member is online. Resources on unrestricted groups may run on any cluster node if all group members are offline, but they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with only one member."
+                                    }
+                                 },
+                                 "type" : "object"
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Console"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/cluster/ha/groups/{group}",
+                        "text" : "{group}"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "description" : "Get HA groups.",
+                        "method" : "GET",
+                        "name" : "index",
+                        "parameters" : {
+                           "additionalProperties" : 0
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Audit"
+                              ]
+                           ]
+                        },
+                        "returns" : {
+                           "items" : {
+                              "properties" : {
+                                 "group" : {
+                                    "type" : "string"
+                                 }
+                              },
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{group}",
+                                 "rel" : "child"
+                              }
+                           ],
+                           "type" : "array"
+                        }
+                     },
+                     "POST" : {
+                        "description" : "Create a new HA group.",
+                        "method" : "POST",
+                        "name" : "create",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "comment" : {
+                                 "description" : "Description.",
+                                 "maxLength" : 4096,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "group" : {
+                                 "description" : "The HA group identifier.",
+                                 "format" : "pve-configid",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "nodes" : {
+                                 "description" : "List of cluster node names with optional priority.",
+                                 "format" : "pve-ha-group-node-list",
+                                 "optional" : 0,
+                                 "type" : "string",
+                                 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
+                                 "verbose_description" : "List of cluster node members, where a priority can be given to each node. A resource bound to a group will run on the available nodes with the highest priority. If there are more nodes in the highest priority class, the services will get distributed to those nodes. The priorities have a relative meaning only."
+                              },
+                              "nofailback" : {
+                                 "default" : 0,
+                                 "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "restricted" : {
+                                 "default" : 0,
+                                 "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>",
+                                 "verbose_description" : "Resources bound to restricted groups may only run on nodes defined by the group. The resource will be placed in the stopped state if no group node member is online. Resources on unrestricted groups may run on any cluster node if all group members are offline, but they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with only one member."
+                              },
+                              "type" : {
+                                 "description" : "Group type.",
+                                 "enum" : [
+                                    "group"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string"
+                              }
+                           },
+                           "type" : "object"
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Console"
+                              ]
+                           ]
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "type" : "null"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/cluster/ha/groups",
+                  "text" : "groups"
+               },
+               {
+                  "children" : [
+                     {
+                        "info" : {
+                           "GET" : {
+                              "description" : "Get HA manger status.",
+                              "method" : "GET",
+                              "name" : "status",
+                              "parameters" : {
+                                 "additionalProperties" : 0
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Audit"
+                                    ]
+                                 ]
+                              },
+                              "returns" : {
+                                 "type" : "array"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/cluster/ha/status/current",
+                        "text" : "current"
+                     },
+                     {
+                        "info" : {
+                           "GET" : {
+                              "description" : "Get full HA manger status, including LRM status.",
+                              "method" : "GET",
+                              "name" : "manager_status",
+                              "parameters" : {
+                                 "additionalProperties" : 0
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Audit"
+                                    ]
+                                 ]
+                              },
+                              "returns" : {
+                                 "type" : "object"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/cluster/ha/status/manager_status",
+                        "text" : "manager_status"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "description" : "Directory index.",
+                        "method" : "GET",
+                        "name" : "index",
+                        "parameters" : {
+                           "additionalProperties" : 0
+                        },
+                        "permissions" : {
+                           "user" : "all"
+                        },
+                        "returns" : {
+                           "items" : {
+                              "properties" : {},
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{name}",
+                                 "rel" : "child"
+                              }
+                           ],
+                           "type" : "array"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/cluster/ha/status",
+                  "text" : "status"
+               }
+            ],
+            "info" : {
+               "GET" : {
+                  "description" : "Directory index.",
+                  "method" : "GET",
+                  "name" : "index",
+                  "parameters" : {
+                     "additionalProperties" : 0
+                  },
+                  "permissions" : {
+                     "check" : [
+                        "perm",
+                        "/",
+                        [
+                           "Sys.Audit"
+                        ]
+                     ]
+                  },
+                  "returns" : {
+                     "items" : {
+                        "properties" : {
+                           "id" : {
+                              "type" : "string"
+                           }
+                        },
+                        "type" : "object"
+                     },
+                     "links" : [
+                        {
+                           "href" : "{id}",
+                           "rel" : "child"
+                        }
+                     ],
+                     "type" : "array"
+                  }
+               }
+            },
+            "leaf" : 0,
+            "path" : "/cluster/ha",
+            "text" : "ha"
+         },
+         {
+            "children" : [
+               {
+                  "children" : [
+                     {
+                        "info" : {
+                           "DELETE" : {
+                              "description" : "Deactivate existing ACME account at CA.",
+                              "method" : "DELETE",
+                              "name" : "deactivate_account",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "name" : {
+                                       "default" : "default",
+                                       "description" : "ACME account config file name.",
+                                       "format" : "pve-configid",
+                                       "format_description" : "name",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<name>"
+                                    }
+                                 }
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "string"
+                              }
+                           },
+                           "GET" : {
+                              "description" : "Return existing ACME account information.",
+                              "method" : "GET",
+                              "name" : "get_account",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "name" : {
+                                       "default" : "default",
+                                       "description" : "ACME account config file name.",
+                                       "format" : "pve-configid",
+                                       "format_description" : "name",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<name>"
+                                    }
+                                 }
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "account" : {
+                                       "optional" : 1,
+                                       "type" : "object"
+                                    },
+                                    "directory" : {
+                                       "description" : "URL of ACME CA directory endpoint.",
+                                       "optional" : 1,
+                                       "pattern" : "^https?://.*",
+                                       "type" : "string"
+                                    },
+                                    "location" : {
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "tos" : {
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "type" : "object"
+                              }
+                           },
+                           "PUT" : {
+                              "description" : "Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.",
+                              "method" : "PUT",
+                              "name" : "update_account",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "contact" : {
+                                       "description" : "Contact email addresses.",
+                                       "format" : "email-list",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "name" : {
+                                       "default" : "default",
+                                       "description" : "ACME account config file name.",
+                                       "format" : "pve-configid",
+                                       "format_description" : "name",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<name>"
+                                    }
+                                 }
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "string"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/cluster/acme/account/{name}",
+                        "text" : "{name}"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "description" : "ACMEAccount index.",
+                        "method" : "GET",
+                        "name" : "account_index",
+                        "parameters" : {
+                           "additionalProperties" : 0
+                        },
+                        "permissions" : {
+                           "user" : "all"
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "items" : {
+                              "properties" : {},
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{name}",
+                                 "rel" : "child"
+                              }
+                           ],
+                           "type" : "array"
+                        }
+                     },
+                     "POST" : {
+                        "description" : "Register a new ACME account with CA.",
+                        "method" : "POST",
+                        "name" : "register_account",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "contact" : {
+                                 "description" : "Contact email addresses.",
+                                 "format" : "email-list",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "directory" : {
+                                 "default" : "https://acme-v02.api.letsencrypt.org/directory",
+                                 "description" : "URL of ACME CA directory endpoint.",
+                                 "optional" : 1,
+                                 "pattern" : "^https?://.*",
+                                 "type" : "string"
+                              },
+                              "name" : {
+                                 "default" : "default",
+                                 "description" : "ACME account config file name.",
+                                 "format" : "pve-configid",
+                                 "format_description" : "name",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<name>"
+                              },
+                              "tos_url" : {
+                                 "description" : "URL of CA TermsOfService - setting this indicates agreement.",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           }
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "type" : "string"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/cluster/acme/account",
+                  "text" : "account"
+               },
+               {
+                  "info" : {
+                     "GET" : {
+                        "description" : "Retrieve ACME TermsOfService URL from CA.",
+                        "method" : "GET",
+                        "name" : "get_tos",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "directory" : {
+                                 "default" : "https://acme-v02.api.letsencrypt.org/directory",
+                                 "description" : "URL of ACME CA directory endpoint.",
+                                 "optional" : 1,
+                                 "pattern" : "^https?://.*",
+                                 "type" : "string"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "user" : "all"
+                        },
+                        "returns" : {
+                           "description" : "ACME TermsOfService URL.",
+                           "type" : "string"
+                        }
+                     }
+                  },
+                  "leaf" : 1,
+                  "path" : "/cluster/acme/tos",
+                  "text" : "tos"
+               },
+               {
+                  "info" : {
+                     "GET" : {
+                        "description" : "Get named known ACME directory endpoints.",
+                        "method" : "GET",
+                        "name" : "get_directories",
+                        "parameters" : {
+                           "additionalProperties" : 0
+                        },
+                        "permissions" : {
+                           "user" : "all"
+                        },
+                        "returns" : {
+                           "items" : {
+                              "additionalProperties" : 0,
+                              "properties" : {
+                                 "name" : {
+                                    "type" : "string"
+                                 },
+                                 "url" : {
+                                    "description" : "URL of ACME CA directory endpoint.",
+                                    "pattern" : "^https?://.*",
+                                    "type" : "string"
+                                 }
+                              },
+                              "type" : "object"
+                           },
+                           "type" : "array"
+                        }
+                     }
+                  },
+                  "leaf" : 1,
+                  "path" : "/cluster/acme/directories",
+                  "text" : "directories"
+               }
+            ],
+            "info" : {
+               "GET" : {
+                  "description" : "ACMEAccount index.",
+                  "method" : "GET",
+                  "name" : "index",
+                  "parameters" : {
+                     "additionalProperties" : 0
+                  },
+                  "permissions" : {
+                     "user" : "all"
+                  },
+                  "returns" : {
+                     "items" : {
+                        "properties" : {},
+                        "type" : "object"
+                     },
+                     "links" : [
+                        {
+                           "href" : "{name}",
+                           "rel" : "child"
+                        }
+                     ],
+                     "type" : "array"
+                  }
+               }
+            },
+            "leaf" : 0,
+            "path" : "/cluster/acme",
+            "text" : "acme"
+         },
+         {
+            "info" : {
+               "GET" : {
+                  "description" : "Read cluster log",
+                  "method" : "GET",
+                  "name" : "log",
+                  "parameters" : {
+                     "additionalProperties" : 0,
+                     "properties" : {
+                        "max" : {
+                           "description" : "Maximum number of entries.",
+                           "minimum" : 1,
+                           "optional" : 1,
+                           "type" : "integer",
+                           "typetext" : "<integer> (1 - N)"
+                        }
+                     }
+                  },
+                  "permissions" : {
+                     "user" : "all"
+                  },
+                  "returns" : {
+                     "items" : {
+                        "properties" : {},
+                        "type" : "object"
+                     },
+                     "type" : "array"
+                  }
+               }
+            },
+            "leaf" : 1,
+            "path" : "/cluster/log",
+            "text" : "log"
+         },
+         {
+            "info" : {
+               "GET" : {
+                  "description" : "Resources index (cluster wide).",
+                  "method" : "GET",
+                  "name" : "resources",
+                  "parameters" : {
+                     "additionalProperties" : 0,
+                     "properties" : {
+                        "type" : {
+                           "enum" : [
+                              "vm",
+                              "storage",
+                              "node"
+                           ],
+                           "optional" : 1,
+                           "type" : "string"
+                        }
+                     }
+                  },
+                  "permissions" : {
+                     "user" : "all"
+                  },
+                  "returns" : {
+                     "items" : {
+                        "properties" : {},
+                        "type" : "object"
+                     },
+                     "type" : "array"
+                  }
+               }
+            },
+            "leaf" : 1,
+            "path" : "/cluster/resources",
+            "text" : "resources"
+         },
+         {
+            "info" : {
+               "GET" : {
+                  "description" : "List recent tasks (cluster wide).",
+                  "method" : "GET",
+                  "name" : "tasks",
+                  "parameters" : {
+                     "additionalProperties" : 0
+                  },
+                  "permissions" : {
+                     "user" : "all"
+                  },
+                  "returns" : {
+                     "items" : {
+                        "properties" : {
+                           "upid" : {
+                              "type" : "string"
+                           }
+                        },
+                        "type" : "object"
+                     },
+                     "type" : "array"
+                  }
+               }
+            },
+            "leaf" : 1,
+            "path" : "/cluster/tasks",
+            "text" : "tasks"
+         },
+         {
+            "info" : {
+               "GET" : {
+                  "description" : "Get datacenter options.",
+                  "method" : "GET",
+                  "name" : "get_options",
+                  "parameters" : {
+                     "additionalProperties" : 0
+                  },
+                  "permissions" : {
+                     "check" : [
+                        "perm",
+                        "/",
+                        [
+                           "Sys.Audit"
+                        ]
+                     ]
+                  },
+                  "returns" : {
+                     "properties" : {},
+                     "type" : "object"
+                  }
+               },
+               "PUT" : {
+                  "description" : "Set datacenter options.",
+                  "method" : "PUT",
+                  "name" : "set_options",
+                  "parameters" : {
+                     "additionalProperties" : 0,
+                     "properties" : {
+                        "bwlimit" : {
+                           "description" : "Set bandwidth/io limits various operations.",
+                           "format" : {
+                              "clone" : {
+                                 "description" : "bandwidth limit in MiB/s for cloning disks",
+                                 "format_description" : "LIMIT",
+                                 "minimum" : "0",
+                                 "optional" : 1,
+                                 "type" : "number"
+                              },
+                              "default" : {
+                                 "description" : "default bandwidth limit in MiB/s",
+                                 "format_description" : "LIMIT",
+                                 "minimum" : "0",
+                                 "optional" : 1,
+                                 "type" : "number"
+                              },
+                              "migration" : {
+                                 "description" : "bandwidth limit in MiB/s for migrating guests",
+                                 "format_description" : "LIMIT",
+                                 "minimum" : "0",
+                                 "optional" : 1,
+                                 "type" : "number"
+                              },
+                              "move" : {
+                                 "description" : "bandwidth limit in MiB/s for moving disks",
+                                 "format_description" : "LIMIT",
+                                 "minimum" : "0",
+                                 "optional" : 1,
+                                 "type" : "number"
+                              },
+                              "restore" : {
+                                 "description" : "bandwidth limit in MiB/s for restoring guests from backups",
+                                 "format_description" : "LIMIT",
+                                 "minimum" : "0",
+                                 "optional" : 1,
+                                 "type" : "number"
+                              }
+                           },
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
+                        },
+                        "console" : {
+                           "description" : "Select the default Console viewer. You can either use the builtin java applet (VNC; deprecated and maps to html5), an external virt-viewer comtatible application (SPICE), an HTML5 based vnc viewer (noVNC), or an HTML5 based console client (xtermjs). If the selected viewer is not available (e.g. SPICE not activated for the VM), the fallback is noVNC.",
+                           "enum" : [
+                              "applet",
+                              "vv",
+                              "html5",
+                              "xtermjs"
+                           ],
+                           "optional" : 1,
+                           "type" : "string"
+                        },
+                        "delete" : {
+                           "description" : "A list of settings you want to delete.",
+                           "format" : "pve-configid-list",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "email_from" : {
+                           "description" : "Specify email address to send notification from (default is root@$hostname)",
+                           "format" : "email-opt",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "fencing" : {
+                           "default" : "watchdog",
+                           "description" : "Set the fencing mode of the HA cluster. Hardware mode needs a valid configuration of fence devices in /etc/pve/ha/fence.cfg. With both all two modes are used.\n\nWARNING: 'hardware' and 'both' are EXPERIMENTAL & WIP",
+                           "enum" : [
+                              "watchdog",
+                              "hardware",
+                              "both"
+                           ],
+                           "optional" : 1,
+                           "type" : "string"
+                        },
+                        "http_proxy" : {
+                           "description" : "Specify external http proxy which is used for downloads (example: 'http://username:password@host:port/')",
+                           "optional" : 1,
+                           "pattern" : "http://.*",
+                           "type" : "string"
+                        },
+                        "keyboard" : {
+                           "description" : "Default keybord layout for vnc server.",
+                           "enum" : [
+                              "de",
+                              "de-ch",
+                              "da",
+                              "en-gb",
+                              "en-us",
+                              "es",
+                              "fi",
+                              "fr",
+                              "fr-be",
+                              "fr-ca",
+                              "fr-ch",
+                              "hu",
+                              "is",
+                              "it",
+                              "ja",
+                              "lt",
+                              "mk",
+                              "nl",
+                              "no",
+                              "pl",
+                              "pt",
+                              "pt-br",
+                              "sv",
+                              "sl",
+                              "tr"
+                           ],
+                           "optional" : 1,
+                           "type" : "string"
+                        },
+                        "language" : {
+                           "description" : "Default GUI language.",
+                           "enum" : [
+                              "en",
+                              "de"
+                           ],
+                           "optional" : 1,
+                           "type" : "string"
+                        },
+                        "mac_prefix" : {
+                           "description" : "Prefix for autogenerated MAC addresses.",
+                           "optional" : 1,
+                           "pattern" : "(?^i:[a-f0-9]{2}(?::[a-f0-9]{2}){0,2}:?)",
+                           "type" : "string"
+                        },
+                        "max_workers" : {
+                           "description" : "Defines how many workers (per node) are maximal started  on actions like 'stopall VMs' or task from the ha-manager.",
+                           "minimum" : 1,
+                           "optional" : 1,
+                           "type" : "integer",
+                           "typetext" : "<integer> (1 - N)"
+                        },
+                        "migration" : {
+                           "description" : "For cluster wide migration settings.",
+                           "format" : {
+                              "network" : {
+                                 "description" : "CIDR of the (sub) network that is used for migration.",
+                                 "format" : "CIDR",
+                                 "format_description" : "CIDR",
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "type" : {
+                                 "default" : "secure",
+                                 "default_key" : 1,
+                                 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
+                                 "enum" : [
+                                    "secure",
+                                    "insecure"
+                                 ],
+                                 "type" : "string"
+                              }
+                           },
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "[type=]<secure|insecure> [,network=<CIDR>]"
+                        },
+                        "migration_unsecure" : {
+                           "description" : "Migration is secure using SSH tunnel by default. For secure private networks you can disable it to speed up migration. Deprecated, use the 'migration' property instead!",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
+                        }
+                     }
+                  },
+                  "permissions" : {
+                     "check" : [
+                        "perm",
+                        "/",
+                        [
+                           "Sys.Modify"
+                        ]
+                     ]
+                  },
+                  "protected" : 1,
+                  "returns" : {
+                     "type" : "null"
+                  }
+               }
+            },
+            "leaf" : 1,
+            "path" : "/cluster/options",
+            "text" : "options"
+         },
+         {
+            "info" : {
+               "GET" : {
+                  "description" : "Get cluster status informations.",
+                  "method" : "GET",
+                  "name" : "get_status",
+                  "parameters" : {
+                     "additionalProperties" : 0
+                  },
+                  "permissions" : {
+                     "check" : [
+                        "perm",
+                        "/",
+                        [
+                           "Sys.Audit"
+                        ]
+                     ]
+                  },
+                  "protected" : 1,
+                  "returns" : {
+                     "items" : {
+                        "properties" : {
+                           "type" : {
+                              "type" : "string"
+                           }
+                        },
+                        "type" : "object"
+                     },
+                     "type" : "array"
+                  }
+               }
+            },
+            "leaf" : 1,
+            "path" : "/cluster/status",
+            "text" : "status"
+         },
+         {
+            "info" : {
+               "GET" : {
+                  "description" : "Get next free VMID. If you pass an VMID it will raise an error if the ID is already used.",
+                  "method" : "GET",
+                  "name" : "nextid",
+                  "parameters" : {
+                     "additionalProperties" : 0,
+                     "properties" : {
+                        "vmid" : {
+                           "description" : "The (unique) ID of the VM.",
+                           "format" : "pve-vmid",
+                           "minimum" : 1,
+                           "optional" : 1,
+                           "type" : "integer",
+                           "typetext" : "<integer> (1 - N)"
+                        }
+                     }
+                  },
+                  "permissions" : {
+                     "user" : "all"
+                  },
+                  "returns" : {
+                     "description" : "The next free VMID.",
+                     "type" : "integer"
+                  }
+               }
+            },
+            "leaf" : 1,
+            "path" : "/cluster/nextid",
+            "text" : "nextid"
+         }
+      ],
+      "info" : {
+         "GET" : {
+            "description" : "Cluster index.",
+            "method" : "GET",
+            "name" : "index",
+            "parameters" : {
+               "additionalProperties" : 0
+            },
+            "permissions" : {
+               "user" : "all"
+            },
+            "returns" : {
+               "items" : {
+                  "properties" : {},
+                  "type" : "object"
+               },
+               "links" : [
+                  {
+                     "href" : "{name}",
+                     "rel" : "child"
+                  }
+               ],
+               "type" : "array"
+            }
+         }
+      },
+      "leaf" : 0,
+      "path" : "/cluster",
+      "text" : "cluster"
+   },
+   {
+      "children" : [
+         {
+            "children" : [
+               {
+                  "children" : [
+                     {
+                        "children" : [
+                           {
+                              "children" : [
+                                 {
+                                    "children" : [
+                                       {
+                                          "info" : {
+                                             "DELETE" : {
+                                                "description" : "Delete rule.",
+                                                "method" : "DELETE",
+                                                "name" : "delete_rule",
+                                                "parameters" : {
+                                                   "additionalProperties" : 0,
+                                                   "properties" : {
+                                                      "digest" : {
+                                                         "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                                         "maxLength" : 40,
+                                                         "optional" : 1,
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "node" : {
+                                                         "description" : "The cluster node name.",
+                                                         "format" : "pve-node",
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "pos" : {
+                                                         "description" : "Update rule at position <pos>.",
+                                                         "minimum" : 0,
+                                                         "optional" : 1,
+                                                         "type" : "integer",
+                                                         "typetext" : "<integer> (0 - N)"
+                                                      },
+                                                      "vmid" : {
+                                                         "description" : "The (unique) ID of the VM.",
+                                                         "format" : "pve-vmid",
+                                                         "minimum" : 1,
+                                                         "type" : "integer",
+                                                         "typetext" : "<integer> (1 - N)"
+                                                      }
+                                                   }
+                                                },
+                                                "permissions" : {
+                                                   "check" : [
+                                                      "perm",
+                                                      "/vms/{vmid}",
+                                                      [
+                                                         "VM.Config.Network"
+                                                      ]
+                                                   ]
+                                                },
+                                                "protected" : 1,
+                                                "proxyto" : null,
+                                                "returns" : {
+                                                   "type" : "null"
+                                                }
+                                             },
+                                             "GET" : {
+                                                "description" : "Get single rule data.",
+                                                "method" : "GET",
+                                                "name" : "get_rule",
+                                                "parameters" : {
+                                                   "additionalProperties" : 0,
+                                                   "properties" : {
+                                                      "node" : {
+                                                         "description" : "The cluster node name.",
+                                                         "format" : "pve-node",
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "pos" : {
+                                                         "description" : "Update rule at position <pos>.",
+                                                         "minimum" : 0,
+                                                         "optional" : 1,
+                                                         "type" : "integer",
+                                                         "typetext" : "<integer> (0 - N)"
+                                                      },
+                                                      "vmid" : {
+                                                         "description" : "The (unique) ID of the VM.",
+                                                         "format" : "pve-vmid",
+                                                         "minimum" : 1,
+                                                         "type" : "integer",
+                                                         "typetext" : "<integer> (1 - N)"
+                                                      }
+                                                   }
+                                                },
+                                                "permissions" : {
+                                                   "check" : [
+                                                      "perm",
+                                                      "/vms/{vmid}",
+                                                      [
+                                                         "VM.Audit"
+                                                      ]
+                                                   ]
+                                                },
+                                                "proxyto" : null,
+                                                "returns" : {
+                                                   "properties" : {
+                                                      "pos" : {
+                                                         "type" : "integer"
+                                                      }
+                                                   },
+                                                   "type" : "object"
+                                                }
+                                             },
+                                             "PUT" : {
+                                                "description" : "Modify rule data.",
+                                                "method" : "PUT",
+                                                "name" : "update_rule",
+                                                "parameters" : {
+                                                   "additionalProperties" : 0,
+                                                   "properties" : {
+                                                      "action" : {
+                                                         "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+                                                         "maxLength" : 20,
+                                                         "minLength" : 2,
+                                                         "optional" : 1,
+                                                         "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                                         "type" : "string"
+                                                      },
+                                                      "comment" : {
+                                                         "description" : "Descriptive comment.",
+                                                         "optional" : 1,
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "delete" : {
+                                                         "description" : "A list of settings you want to delete.",
+                                                         "format" : "pve-configid-list",
+                                                         "optional" : 1,
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "dest" : {
+                                                         "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+                                                         "format" : "pve-fw-addr-spec",
+                                                         "optional" : 1,
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "digest" : {
+                                                         "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                                         "maxLength" : 40,
+                                                         "optional" : 1,
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "dport" : {
+                                                         "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+                                                         "format" : "pve-fw-dport-spec",
+                                                         "optional" : 1,
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "enable" : {
+                                                         "description" : "Flag to enable/disable a rule.",
+                                                         "minimum" : 0,
+                                                         "optional" : 1,
+                                                         "type" : "integer",
+                                                         "typetext" : "<integer> (0 - N)"
+                                                      },
+                                                      "iface" : {
+                                                         "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+                                                         "format" : "pve-iface",
+                                                         "maxLength" : 20,
+                                                         "minLength" : 2,
+                                                         "optional" : 1,
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "macro" : {
+                                                         "description" : "Use predefined standard macro.",
+                                                         "maxLength" : 128,
+                                                         "optional" : 1,
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "moveto" : {
+                                                         "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
+                                                         "minimum" : 0,
+                                                         "optional" : 1,
+                                                         "type" : "integer",
+                                                         "typetext" : "<integer> (0 - N)"
+                                                      },
+                                                      "node" : {
+                                                         "description" : "The cluster node name.",
+                                                         "format" : "pve-node",
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "pos" : {
+                                                         "description" : "Update rule at position <pos>.",
+                                                         "minimum" : 0,
+                                                         "optional" : 1,
+                                                         "type" : "integer",
+                                                         "typetext" : "<integer> (0 - N)"
+                                                      },
+                                                      "proto" : {
+                                                         "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+                                                         "format" : "pve-fw-protocol-spec",
+                                                         "optional" : 1,
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "source" : {
+                                                         "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+                                                         "format" : "pve-fw-addr-spec",
+                                                         "optional" : 1,
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "sport" : {
+                                                         "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+                                                         "format" : "pve-fw-sport-spec",
+                                                         "optional" : 1,
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "type" : {
+                                                         "description" : "Rule type.",
+                                                         "enum" : [
+                                                            "in",
+                                                            "out",
+                                                            "group"
+                                                         ],
+                                                         "optional" : 1,
+                                                         "type" : "string"
+                                                      },
+                                                      "vmid" : {
+                                                         "description" : "The (unique) ID of the VM.",
+                                                         "format" : "pve-vmid",
+                                                         "minimum" : 1,
+                                                         "type" : "integer",
+                                                         "typetext" : "<integer> (1 - N)"
+                                                      }
+                                                   }
+                                                },
+                                                "permissions" : {
+                                                   "check" : [
+                                                      "perm",
+                                                      "/vms/{vmid}",
+                                                      [
+                                                         "VM.Config.Network"
+                                                      ]
+                                                   ]
+                                                },
+                                                "protected" : 1,
+                                                "proxyto" : null,
+                                                "returns" : {
+                                                   "type" : "null"
+                                                }
+                                             }
+                                          },
+                                          "leaf" : 1,
+                                          "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}",
+                                          "text" : "{pos}"
+                                       }
+                                    ],
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "List rules.",
+                                          "method" : "GET",
+                                          "name" : "get_rules",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Audit"
+                                                ]
+                                             ]
+                                          },
+                                          "proxyto" : null,
+                                          "returns" : {
+                                             "items" : {
+                                                "properties" : {
+                                                   "pos" : {
+                                                      "type" : "integer"
+                                                   }
+                                                },
+                                                "type" : "object"
+                                             },
+                                             "links" : [
+                                                {
+                                                   "href" : "{pos}",
+                                                   "rel" : "child"
+                                                }
+                                             ],
+                                             "type" : "array"
+                                          }
+                                       },
+                                       "POST" : {
+                                          "description" : "Create new rule.",
+                                          "method" : "POST",
+                                          "name" : "create_rule",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "action" : {
+                                                   "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+                                                   "maxLength" : 20,
+                                                   "minLength" : 2,
+                                                   "optional" : 0,
+                                                   "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                                   "type" : "string"
+                                                },
+                                                "comment" : {
+                                                   "description" : "Descriptive comment.",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "dest" : {
+                                                   "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+                                                   "format" : "pve-fw-addr-spec",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "digest" : {
+                                                   "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                                   "maxLength" : 40,
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "dport" : {
+                                                   "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+                                                   "format" : "pve-fw-dport-spec",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "enable" : {
+                                                   "description" : "Flag to enable/disable a rule.",
+                                                   "minimum" : 0,
+                                                   "optional" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (0 - N)"
+                                                },
+                                                "iface" : {
+                                                   "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+                                                   "format" : "pve-iface",
+                                                   "maxLength" : 20,
+                                                   "minLength" : 2,
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "macro" : {
+                                                   "description" : "Use predefined standard macro.",
+                                                   "maxLength" : 128,
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "pos" : {
+                                                   "description" : "Update rule at position <pos>.",
+                                                   "minimum" : 0,
+                                                   "optional" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (0 - N)"
+                                                },
+                                                "proto" : {
+                                                   "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+                                                   "format" : "pve-fw-protocol-spec",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "source" : {
+                                                   "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+                                                   "format" : "pve-fw-addr-spec",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "sport" : {
+                                                   "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+                                                   "format" : "pve-fw-sport-spec",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "type" : {
+                                                   "description" : "Rule type.",
+                                                   "enum" : [
+                                                      "in",
+                                                      "out",
+                                                      "group"
+                                                   ],
+                                                   "optional" : 0,
+                                                   "type" : "string"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Config.Network"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : null,
+                                          "returns" : {
+                                             "type" : "null"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 0,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules",
+                                    "text" : "rules"
+                                 },
+                                 {
+                                    "children" : [
+                                       {
+                                          "info" : {
+                                             "DELETE" : {
+                                                "description" : "Remove IP or Network alias.",
+                                                "method" : "DELETE",
+                                                "name" : "remove_alias",
+                                                "parameters" : {
+                                                   "additionalProperties" : 0,
+                                                   "properties" : {
+                                                      "digest" : {
+                                                         "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                                         "maxLength" : 40,
+                                                         "optional" : 1,
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "name" : {
+                                                         "description" : "Alias name.",
+                                                         "maxLength" : 64,
+                                                         "minLength" : 2,
+                                                         "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                                         "type" : "string"
+                                                      },
+                                                      "node" : {
+                                                         "description" : "The cluster node name.",
+                                                         "format" : "pve-node",
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "vmid" : {
+                                                         "description" : "The (unique) ID of the VM.",
+                                                         "format" : "pve-vmid",
+                                                         "minimum" : 1,
+                                                         "type" : "integer",
+                                                         "typetext" : "<integer> (1 - N)"
+                                                      }
+                                                   }
+                                                },
+                                                "permissions" : {
+                                                   "check" : [
+                                                      "perm",
+                                                      "/vms/{vmid}",
+                                                      [
+                                                         "VM.Config.Network"
+                                                      ]
+                                                   ]
+                                                },
+                                                "protected" : 1,
+                                                "returns" : {
+                                                   "type" : "null"
+                                                }
+                                             },
+                                             "GET" : {
+                                                "description" : "Read alias.",
+                                                "method" : "GET",
+                                                "name" : "read_alias",
+                                                "parameters" : {
+                                                   "additionalProperties" : 0,
+                                                   "properties" : {
+                                                      "name" : {
+                                                         "description" : "Alias name.",
+                                                         "maxLength" : 64,
+                                                         "minLength" : 2,
+                                                         "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                                         "type" : "string"
+                                                      },
+                                                      "node" : {
+                                                         "description" : "The cluster node name.",
+                                                         "format" : "pve-node",
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "vmid" : {
+                                                         "description" : "The (unique) ID of the VM.",
+                                                         "format" : "pve-vmid",
+                                                         "minimum" : 1,
+                                                         "type" : "integer",
+                                                         "typetext" : "<integer> (1 - N)"
+                                                      }
+                                                   }
+                                                },
+                                                "permissions" : {
+                                                   "check" : [
+                                                      "perm",
+                                                      "/vms/{vmid}",
+                                                      [
+                                                         "VM.Audit"
+                                                      ]
+                                                   ]
+                                                },
+                                                "returns" : {
+                                                   "type" : "object"
+                                                }
+                                             },
+                                             "PUT" : {
+                                                "description" : "Update IP or Network alias.",
+                                                "method" : "PUT",
+                                                "name" : "update_alias",
+                                                "parameters" : {
+                                                   "additionalProperties" : 0,
+                                                   "properties" : {
+                                                      "cidr" : {
+                                                         "description" : "Network/IP specification in CIDR format.",
+                                                         "format" : "IPorCIDR",
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "comment" : {
+                                                         "optional" : 1,
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "digest" : {
+                                                         "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                                         "maxLength" : 40,
+                                                         "optional" : 1,
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "name" : {
+                                                         "description" : "Alias name.",
+                                                         "maxLength" : 64,
+                                                         "minLength" : 2,
+                                                         "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                                         "type" : "string"
+                                                      },
+                                                      "node" : {
+                                                         "description" : "The cluster node name.",
+                                                         "format" : "pve-node",
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "rename" : {
+                                                         "description" : "Rename an existing alias.",
+                                                         "maxLength" : 64,
+                                                         "minLength" : 2,
+                                                         "optional" : 1,
+                                                         "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                                         "type" : "string"
+                                                      },
+                                                      "vmid" : {
+                                                         "description" : "The (unique) ID of the VM.",
+                                                         "format" : "pve-vmid",
+                                                         "minimum" : 1,
+                                                         "type" : "integer",
+                                                         "typetext" : "<integer> (1 - N)"
+                                                      }
+                                                   }
+                                                },
+                                                "permissions" : {
+                                                   "check" : [
+                                                      "perm",
+                                                      "/vms/{vmid}",
+                                                      [
+                                                         "VM.Config.Network"
+                                                      ]
+                                                   ]
+                                                },
+                                                "protected" : 1,
+                                                "returns" : {
+                                                   "type" : "null"
+                                                }
+                                             }
+                                          },
+                                          "leaf" : 1,
+                                          "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}",
+                                          "text" : "{name}"
+                                       }
+                                    ],
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "List aliases",
+                                          "method" : "GET",
+                                          "name" : "get_aliases",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Audit"
+                                                ]
+                                             ]
+                                          },
+                                          "returns" : {
+                                             "items" : {
+                                                "properties" : {
+                                                   "cidr" : {
+                                                      "type" : "string"
+                                                   },
+                                                   "comment" : {
+                                                      "optional" : 1,
+                                                      "type" : "string"
+                                                   },
+                                                   "digest" : {
+                                                      "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                                      "maxLength" : 40,
+                                                      "optional" : 0,
+                                                      "type" : "string"
+                                                   },
+                                                   "name" : {
+                                                      "type" : "string"
+                                                   }
+                                                },
+                                                "type" : "object"
+                                             },
+                                             "links" : [
+                                                {
+                                                   "href" : "{name}",
+                                                   "rel" : "child"
+                                                }
+                                             ],
+                                             "type" : "array"
+                                          }
+                                       },
+                                       "POST" : {
+                                          "description" : "Create IP or Network Alias.",
+                                          "method" : "POST",
+                                          "name" : "create_alias",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "cidr" : {
+                                                   "description" : "Network/IP specification in CIDR format.",
+                                                   "format" : "IPorCIDR",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "comment" : {
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "name" : {
+                                                   "description" : "Alias name.",
+                                                   "maxLength" : 64,
+                                                   "minLength" : 2,
+                                                   "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                                   "type" : "string"
+                                                },
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Config.Network"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "returns" : {
+                                             "type" : "null"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 0,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases",
+                                    "text" : "aliases"
+                                 },
+                                 {
+                                    "children" : [
+                                       {
+                                          "children" : [
+                                             {
+                                                "info" : {
+                                                   "DELETE" : {
+                                                      "description" : "Remove IP or Network from IPSet.",
+                                                      "method" : "DELETE",
+                                                      "name" : "remove_ip",
+                                                      "parameters" : {
+                                                         "additionalProperties" : 0,
+                                                         "properties" : {
+                                                            "cidr" : {
+                                                               "description" : "Network/IP specification in CIDR format.",
+                                                               "format" : "IPorCIDRorAlias",
+                                                               "type" : "string",
+                                                               "typetext" : "<string>"
+                                                            },
+                                                            "digest" : {
+                                                               "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                                               "maxLength" : 40,
+                                                               "optional" : 1,
+                                                               "type" : "string",
+                                                               "typetext" : "<string>"
+                                                            },
+                                                            "name" : {
+                                                               "description" : "IP set name.",
+                                                               "maxLength" : 64,
+                                                               "minLength" : 2,
+                                                               "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                                               "type" : "string"
+                                                            },
+                                                            "node" : {
+                                                               "description" : "The cluster node name.",
+                                                               "format" : "pve-node",
+                                                               "type" : "string",
+                                                               "typetext" : "<string>"
+                                                            },
+                                                            "vmid" : {
+                                                               "description" : "The (unique) ID of the VM.",
+                                                               "format" : "pve-vmid",
+                                                               "minimum" : 1,
+                                                               "type" : "integer",
+                                                               "typetext" : "<integer> (1 - N)"
+                                                            }
+                                                         }
+                                                      },
+                                                      "permissions" : {
+                                                         "check" : [
+                                                            "perm",
+                                                            "/vms/{vmid}",
+                                                            [
+                                                               "VM.Config.Network"
+                                                            ]
+                                                         ]
+                                                      },
+                                                      "protected" : 1,
+                                                      "returns" : {
+                                                         "type" : "null"
+                                                      }
+                                                   },
+                                                   "GET" : {
+                                                      "description" : "Read IP or Network settings from IPSet.",
+                                                      "method" : "GET",
+                                                      "name" : "read_ip",
+                                                      "parameters" : {
+                                                         "additionalProperties" : 0,
+                                                         "properties" : {
+                                                            "cidr" : {
+                                                               "description" : "Network/IP specification in CIDR format.",
+                                                               "format" : "IPorCIDRorAlias",
+                                                               "type" : "string",
+                                                               "typetext" : "<string>"
+                                                            },
+                                                            "name" : {
+                                                               "description" : "IP set name.",
+                                                               "maxLength" : 64,
+                                                               "minLength" : 2,
+                                                               "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                                               "type" : "string"
+                                                            },
+                                                            "node" : {
+                                                               "description" : "The cluster node name.",
+                                                               "format" : "pve-node",
+                                                               "type" : "string",
+                                                               "typetext" : "<string>"
+                                                            },
+                                                            "vmid" : {
+                                                               "description" : "The (unique) ID of the VM.",
+                                                               "format" : "pve-vmid",
+                                                               "minimum" : 1,
+                                                               "type" : "integer",
+                                                               "typetext" : "<integer> (1 - N)"
+                                                            }
+                                                         }
+                                                      },
+                                                      "permissions" : {
+                                                         "check" : [
+                                                            "perm",
+                                                            "/vms/{vmid}",
+                                                            [
+                                                               "VM.Audit"
+                                                            ]
+                                                         ]
+                                                      },
+                                                      "protected" : 1,
+                                                      "returns" : {
+                                                         "type" : "object"
+                                                      }
+                                                   },
+                                                   "PUT" : {
+                                                      "description" : "Update IP or Network settings",
+                                                      "method" : "PUT",
+                                                      "name" : "update_ip",
+                                                      "parameters" : {
+                                                         "additionalProperties" : 0,
+                                                         "properties" : {
+                                                            "cidr" : {
+                                                               "description" : "Network/IP specification in CIDR format.",
+                                                               "format" : "IPorCIDRorAlias",
+                                                               "type" : "string",
+                                                               "typetext" : "<string>"
+                                                            },
+                                                            "comment" : {
+                                                               "optional" : 1,
+                                                               "type" : "string",
+                                                               "typetext" : "<string>"
+                                                            },
+                                                            "digest" : {
+                                                               "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                                               "maxLength" : 40,
+                                                               "optional" : 1,
+                                                               "type" : "string",
+                                                               "typetext" : "<string>"
+                                                            },
+                                                            "name" : {
+                                                               "description" : "IP set name.",
+                                                               "maxLength" : 64,
+                                                               "minLength" : 2,
+                                                               "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                                               "type" : "string"
+                                                            },
+                                                            "node" : {
+                                                               "description" : "The cluster node name.",
+                                                               "format" : "pve-node",
+                                                               "type" : "string",
+                                                               "typetext" : "<string>"
+                                                            },
+                                                            "nomatch" : {
+                                                               "optional" : 1,
+                                                               "type" : "boolean",
+                                                               "typetext" : "<boolean>"
+                                                            },
+                                                            "vmid" : {
+                                                               "description" : "The (unique) ID of the VM.",
+                                                               "format" : "pve-vmid",
+                                                               "minimum" : 1,
+                                                               "type" : "integer",
+                                                               "typetext" : "<integer> (1 - N)"
+                                                            }
+                                                         }
+                                                      },
+                                                      "permissions" : {
+                                                         "check" : [
+                                                            "perm",
+                                                            "/vms/{vmid}",
+                                                            [
+                                                               "VM.Config.Network"
+                                                            ]
+                                                         ]
+                                                      },
+                                                      "protected" : 1,
+                                                      "returns" : {
+                                                         "type" : "null"
+                                                      }
+                                                   }
+                                                },
+                                                "leaf" : 1,
+                                                "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}",
+                                                "text" : "{cidr}"
+                                             }
+                                          ],
+                                          "info" : {
+                                             "DELETE" : {
+                                                "description" : "Delete IPSet",
+                                                "method" : "DELETE",
+                                                "name" : "delete_ipset",
+                                                "parameters" : {
+                                                   "additionalProperties" : 0,
+                                                   "properties" : {
+                                                      "name" : {
+                                                         "description" : "IP set name.",
+                                                         "maxLength" : 64,
+                                                         "minLength" : 2,
+                                                         "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                                         "type" : "string"
+                                                      },
+                                                      "node" : {
+                                                         "description" : "The cluster node name.",
+                                                         "format" : "pve-node",
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "vmid" : {
+                                                         "description" : "The (unique) ID of the VM.",
+                                                         "format" : "pve-vmid",
+                                                         "minimum" : 1,
+                                                         "type" : "integer",
+                                                         "typetext" : "<integer> (1 - N)"
+                                                      }
+                                                   }
+                                                },
+                                                "permissions" : {
+                                                   "check" : [
+                                                      "perm",
+                                                      "/vms/{vmid}",
+                                                      [
+                                                         "VM.Config.Network"
+                                                      ]
+                                                   ]
+                                                },
+                                                "protected" : 1,
+                                                "returns" : {
+                                                   "type" : "null"
+                                                }
+                                             },
+                                             "GET" : {
+                                                "description" : "List IPSet content",
+                                                "method" : "GET",
+                                                "name" : "get_ipset",
+                                                "parameters" : {
+                                                   "additionalProperties" : 0,
+                                                   "properties" : {
+                                                      "name" : {
+                                                         "description" : "IP set name.",
+                                                         "maxLength" : 64,
+                                                         "minLength" : 2,
+                                                         "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                                         "type" : "string"
+                                                      },
+                                                      "node" : {
+                                                         "description" : "The cluster node name.",
+                                                         "format" : "pve-node",
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "vmid" : {
+                                                         "description" : "The (unique) ID of the VM.",
+                                                         "format" : "pve-vmid",
+                                                         "minimum" : 1,
+                                                         "type" : "integer",
+                                                         "typetext" : "<integer> (1 - N)"
+                                                      }
+                                                   }
+                                                },
+                                                "permissions" : {
+                                                   "check" : [
+                                                      "perm",
+                                                      "/vms/{vmid}",
+                                                      [
+                                                         "VM.Audit"
+                                                      ]
+                                                   ]
+                                                },
+                                                "returns" : {
+                                                   "items" : {
+                                                      "properties" : {
+                                                         "cidr" : {
+                                                            "type" : "string"
+                                                         },
+                                                         "comment" : {
+                                                            "optional" : 1,
+                                                            "type" : "string"
+                                                         },
+                                                         "digest" : {
+                                                            "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                                            "maxLength" : 40,
+                                                            "optional" : 0,
+                                                            "type" : "string"
+                                                         },
+                                                         "nomatch" : {
+                                                            "optional" : 1,
+                                                            "type" : "boolean"
+                                                         }
+                                                      },
+                                                      "type" : "object"
+                                                   },
+                                                   "links" : [
+                                                      {
+                                                         "href" : "{cidr}",
+                                                         "rel" : "child"
+                                                      }
+                                                   ],
+                                                   "type" : "array"
+                                                }
+                                             },
+                                             "POST" : {
+                                                "description" : "Add IP or Network to IPSet.",
+                                                "method" : "POST",
+                                                "name" : "create_ip",
+                                                "parameters" : {
+                                                   "additionalProperties" : 0,
+                                                   "properties" : {
+                                                      "cidr" : {
+                                                         "description" : "Network/IP specification in CIDR format.",
+                                                         "format" : "IPorCIDRorAlias",
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "comment" : {
+                                                         "optional" : 1,
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "name" : {
+                                                         "description" : "IP set name.",
+                                                         "maxLength" : 64,
+                                                         "minLength" : 2,
+                                                         "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                                         "type" : "string"
+                                                      },
+                                                      "node" : {
+                                                         "description" : "The cluster node name.",
+                                                         "format" : "pve-node",
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "nomatch" : {
+                                                         "optional" : 1,
+                                                         "type" : "boolean",
+                                                         "typetext" : "<boolean>"
+                                                      },
+                                                      "vmid" : {
+                                                         "description" : "The (unique) ID of the VM.",
+                                                         "format" : "pve-vmid",
+                                                         "minimum" : 1,
+                                                         "type" : "integer",
+                                                         "typetext" : "<integer> (1 - N)"
+                                                      }
+                                                   }
+                                                },
+                                                "permissions" : {
+                                                   "check" : [
+                                                      "perm",
+                                                      "/vms/{vmid}",
+                                                      [
+                                                         "VM.Config.Network"
+                                                      ]
+                                                   ]
+                                                },
+                                                "protected" : 1,
+                                                "returns" : {
+                                                   "type" : "null"
+                                                }
+                                             }
+                                          },
+                                          "leaf" : 0,
+                                          "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}",
+                                          "text" : "{name}"
+                                       }
+                                    ],
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "List IPSets",
+                                          "method" : "GET",
+                                          "name" : "ipset_index",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Audit"
+                                                ]
+                                             ]
+                                          },
+                                          "returns" : {
+                                             "items" : {
+                                                "properties" : {
+                                                   "comment" : {
+                                                      "optional" : 1,
+                                                      "type" : "string"
+                                                   },
+                                                   "digest" : {
+                                                      "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                                      "maxLength" : 40,
+                                                      "optional" : 0,
+                                                      "type" : "string"
+                                                   },
+                                                   "name" : {
+                                                      "description" : "IP set name.",
+                                                      "maxLength" : 64,
+                                                      "minLength" : 2,
+                                                      "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                                      "type" : "string"
+                                                   }
+                                                },
+                                                "type" : "object"
+                                             },
+                                             "links" : [
+                                                {
+                                                   "href" : "{name}",
+                                                   "rel" : "child"
+                                                }
+                                             ],
+                                             "type" : "array"
+                                          }
+                                       },
+                                       "POST" : {
+                                          "description" : "Create new IPSet",
+                                          "method" : "POST",
+                                          "name" : "create_ipset",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "comment" : {
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "digest" : {
+                                                   "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                                   "maxLength" : 40,
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "name" : {
+                                                   "description" : "IP set name.",
+                                                   "maxLength" : 64,
+                                                   "minLength" : 2,
+                                                   "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                                   "type" : "string"
+                                                },
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "rename" : {
+                                                   "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
+                                                   "maxLength" : 64,
+                                                   "minLength" : 2,
+                                                   "optional" : 1,
+                                                   "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                                   "type" : "string"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Config.Network"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "returns" : {
+                                             "type" : "null"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 0,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset",
+                                    "text" : "ipset"
+                                 },
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "Get VM firewall options.",
+                                          "method" : "GET",
+                                          "name" : "get_options",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Audit"
+                                                ]
+                                             ]
+                                          },
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "properties" : {
+                                                "dhcp" : {
+                                                   "description" : "Enable DHCP.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "enable" : {
+                                                   "description" : "Enable/disable firewall rules.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "ipfilter" : {
+                                                   "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "log_level_in" : {
+                                                   "description" : "Log level for incoming traffic.",
+                                                   "enum" : [
+                                                      "emerg",
+                                                      "alert",
+                                                      "crit",
+                                                      "err",
+                                                      "warning",
+                                                      "notice",
+                                                      "info",
+                                                      "debug",
+                                                      "nolog"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "log_level_out" : {
+                                                   "description" : "Log level for outgoing traffic.",
+                                                   "enum" : [
+                                                      "emerg",
+                                                      "alert",
+                                                      "crit",
+                                                      "err",
+                                                      "warning",
+                                                      "notice",
+                                                      "info",
+                                                      "debug",
+                                                      "nolog"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "macfilter" : {
+                                                   "description" : "Enable/disable MAC address filter.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "ndp" : {
+                                                   "description" : "Enable NDP.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "policy_in" : {
+                                                   "description" : "Input policy.",
+                                                   "enum" : [
+                                                      "ACCEPT",
+                                                      "REJECT",
+                                                      "DROP"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "policy_out" : {
+                                                   "description" : "Output policy.",
+                                                   "enum" : [
+                                                      "ACCEPT",
+                                                      "REJECT",
+                                                      "DROP"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "radv" : {
+                                                   "description" : "Allow sending Router Advertisement.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                }
+                                             },
+                                             "type" : "object"
+                                          }
+                                       },
+                                       "PUT" : {
+                                          "description" : "Set Firewall options.",
+                                          "method" : "PUT",
+                                          "name" : "set_options",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "delete" : {
+                                                   "description" : "A list of settings you want to delete.",
+                                                   "format" : "pve-configid-list",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "dhcp" : {
+                                                   "description" : "Enable DHCP.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
+                                                "digest" : {
+                                                   "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                                   "maxLength" : 40,
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "enable" : {
+                                                   "description" : "Enable/disable firewall rules.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
+                                                "ipfilter" : {
+                                                   "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
+                                                "log_level_in" : {
+                                                   "description" : "Log level for incoming traffic.",
+                                                   "enum" : [
+                                                      "emerg",
+                                                      "alert",
+                                                      "crit",
+                                                      "err",
+                                                      "warning",
+                                                      "notice",
+                                                      "info",
+                                                      "debug",
+                                                      "nolog"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "log_level_out" : {
+                                                   "description" : "Log level for outgoing traffic.",
+                                                   "enum" : [
+                                                      "emerg",
+                                                      "alert",
+                                                      "crit",
+                                                      "err",
+                                                      "warning",
+                                                      "notice",
+                                                      "info",
+                                                      "debug",
+                                                      "nolog"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "macfilter" : {
+                                                   "description" : "Enable/disable MAC address filter.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
+                                                "ndp" : {
+                                                   "description" : "Enable NDP.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "policy_in" : {
+                                                   "description" : "Input policy.",
+                                                   "enum" : [
+                                                      "ACCEPT",
+                                                      "REJECT",
+                                                      "DROP"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "policy_out" : {
+                                                   "description" : "Output policy.",
+                                                   "enum" : [
+                                                      "ACCEPT",
+                                                      "REJECT",
+                                                      "DROP"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "radv" : {
+                                                   "description" : "Allow sending Router Advertisement.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Config.Network"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "type" : "null"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/firewall/options",
+                                    "text" : "options"
+                                 },
                                  {
-                                    "children" : [
-                                       {
-                                          "info" : {
-                                             "DELETE" : {
-                                                "description" : "Delete rule.",
-                                                "method" : "DELETE",
-                                                "name" : "delete_rule",
-                                                "parameters" : {
-                                                   "additionalProperties" : 0,
-                                                   "properties" : {
-                                                      "digest" : {
-                                                         "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                                                         "maxLength" : 40,
-                                                         "optional" : 1,
-                                                         "type" : "string"
-                                                      },
-                                                      "node" : {
-                                                         "description" : "The cluster node name.",
-                                                         "format" : "pve-node",
-                                                         "type" : "string"
-                                                      },
-                                                      "pos" : {
-                                                         "description" : "Update rule at position <pos>.",
-                                                         "minimum" : 0,
-                                                         "optional" : 1,
-                                                         "type" : "integer",
-                                                         "typetext" : "integer (0- N)"
-                                                      },
-                                                      "vmid" : {
-                                                         "description" : "The (unique) ID of the VM.",
-                                                         "format" : "pve-vmid",
-                                                         "minimum" : 1,
-                                                         "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
-                                                      }
-                                                   }
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "Read firewall log",
+                                          "method" : "GET",
+                                          "name" : "log",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "limit" : {
+                                                   "minimum" : 0,
+                                                   "optional" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (0 - N)"
                                                 },
-                                                "permissions" : {
-                                                   "check" : [
-                                                      "perm",
-                                                      "/vms/{vmid}",
-                                                      [
-                                                         "VM.Config.Network"
-                                                      ]
-                                                   ]
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "protected" : 1,
-                                                "proxyto" : null,
-                                                "returns" : {
-                                                   "type" : "null"
+                                                "start" : {
+                                                   "minimum" : 0,
+                                                   "optional" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (0 - N)"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Console"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "items" : {
+                                                "properties" : {
+                                                   "n" : {
+                                                      "description" : "Line number",
+                                                      "type" : "integer"
+                                                   },
+                                                   "t" : {
+                                                      "description" : "Line text",
+                                                      "type" : "string"
+                                                   }
+                                                },
+                                                "type" : "object"
                                              },
-                                             "GET" : {
-                                                "description" : "Get single rule data.",
-                                                "method" : "GET",
-                                                "name" : "get_rule",
-                                                "parameters" : {
-                                                   "additionalProperties" : 0,
-                                                   "properties" : {
-                                                      "node" : {
-                                                         "description" : "The cluster node name.",
-                                                         "format" : "pve-node",
-                                                         "type" : "string"
-                                                      },
-                                                      "pos" : {
-                                                         "description" : "Update rule at position <pos>.",
-                                                         "minimum" : 0,
-                                                         "optional" : 1,
-                                                         "type" : "integer",
-                                                         "typetext" : "integer (0- N)"
-                                                      },
-                                                      "vmid" : {
-                                                         "description" : "The (unique) ID of the VM.",
-                                                         "format" : "pve-vmid",
-                                                         "minimum" : 1,
-                                                         "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
-                                                      }
+                                             "type" : "array"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/firewall/log",
+                                    "text" : "log"
+                                 },
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
+                                          "method" : "GET",
+                                          "name" : "refs",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "type" : {
+                                                   "description" : "Only list references of specified type.",
+                                                   "enum" : [
+                                                      "alias",
+                                                      "ipset"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Audit"
+                                                ]
+                                             ]
+                                          },
+                                          "returns" : {
+                                             "items" : {
+                                                "properties" : {
+                                                   "comment" : {
+                                                      "optional" : 1,
+                                                      "type" : "string"
+                                                   },
+                                                   "name" : {
+                                                      "type" : "string"
+                                                   },
+                                                   "type" : {
+                                                      "enum" : [
+                                                         "alias",
+                                                         "ipset"
+                                                      ],
+                                                      "type" : "string"
                                                    }
                                                 },
-                                                "permissions" : {
-                                                   "check" : [
-                                                      "perm",
-                                                      "/vms/{vmid}",
-                                                      [
-                                                         "VM.Audit"
-                                                      ]
-                                                   ]
-                                                },
-                                                "proxyto" : null,
-                                                "returns" : {
-                                                   "properties" : {
-                                                      "pos" : {
-                                                         "type" : "integer"
-                                                      }
-                                                   },
-                                                   "type" : "object"
-                                                }
+                                                "type" : "object"
                                              },
-                                             "PUT" : {
-                                                "description" : "Modify rule data.",
-                                                "method" : "PUT",
-                                                "name" : "update_rule",
-                                                "parameters" : {
-                                                   "additionalProperties" : 0,
-                                                   "properties" : {
-                                                      "action" : {
-                                                         "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
-                                                         "maxLength" : 20,
-                                                         "minLength" : 2,
-                                                         "optional" : 1,
-                                                         "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                                         "type" : "string"
-                                                      },
-                                                      "comment" : {
-                                                         "optional" : 1,
-                                                         "type" : "string"
-                                                      },
-                                                      "delete" : {
-                                                         "description" : "A list of settings you want to delete.",
-                                                         "format" : "pve-configid-list",
-                                                         "optional" : 1,
-                                                         "type" : "string"
-                                                      },
-                                                      "dest" : {
-                                                         "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
-                                                         "format" : "pve-fw-addr-spec",
-                                                         "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"
-                                                      },
-                                                      "dport" : {
-                                                         "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
-                                                         "format" : "pve-fw-dport-spec",
-                                                         "optional" : 1,
-                                                         "type" : "string"
-                                                      },
-                                                      "enable" : {
-                                                         "minimum" : 0,
-                                                         "optional" : 1,
-                                                         "type" : "integer",
-                                                         "typetext" : "integer (0- N)"
-                                                      },
-                                                      "iface" : {
-                                                         "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
-                                                         "format" : "pve-iface",
-                                                         "maxLength" : 20,
-                                                         "minLength" : 2,
-                                                         "optional" : 1,
-                                                         "type" : "string"
-                                                      },
-                                                      "macro" : {
-                                                         "maxLength" : 128,
-                                                         "optional" : 1,
-                                                         "type" : "string"
-                                                      },
-                                                      "moveto" : {
-                                                         "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
-                                                         "minimum" : 0,
-                                                         "optional" : 1,
-                                                         "type" : "integer",
-                                                         "typetext" : "integer (0- N)"
-                                                      },
-                                                      "node" : {
-                                                         "description" : "The cluster node name.",
-                                                         "format" : "pve-node",
-                                                         "type" : "string"
-                                                      },
-                                                      "pos" : {
-                                                         "description" : "Update rule at position <pos>.",
-                                                         "minimum" : 0,
-                                                         "optional" : 1,
-                                                         "type" : "integer",
-                                                         "typetext" : "integer (0- N)"
-                                                      },
-                                                      "proto" : {
-                                                         "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
-                                                         "format" : "pve-fw-protocol-spec",
-                                                         "optional" : 1,
-                                                         "type" : "string"
-                                                      },
-                                                      "source" : {
-                                                         "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
-                                                         "format" : "pve-fw-addr-spec",
-                                                         "optional" : 1,
-                                                         "type" : "string"
-                                                      },
-                                                      "sport" : {
-                                                         "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
-                                                         "format" : "pve-fw-sport-spec",
-                                                         "optional" : 1,
-                                                         "type" : "string"
-                                                      },
-                                                      "type" : {
-                                                         "enum" : [
-                                                            "in",
-                                                            "out",
-                                                            "group"
-                                                         ],
-                                                         "optional" : 1,
-                                                         "type" : "string"
-                                                      },
-                                                      "vmid" : {
-                                                         "description" : "The (unique) ID of the VM.",
-                                                         "format" : "pve-vmid",
-                                                         "minimum" : 1,
-                                                         "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
-                                                      }
-                                                   }
+                                             "type" : "array"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/firewall/refs",
+                                    "text" : "refs"
+                                 }
+                              ],
+                              "info" : {
+                                 "GET" : {
+                                    "description" : "Directory index.",
+                                    "method" : "GET",
+                                    "name" : "index",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "vmid" : {
+                                             "description" : "The (unique) ID of the VM.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "user" : "all"
+                                    },
+                                    "returns" : {
+                                       "items" : {
+                                          "properties" : {},
+                                          "type" : "object"
+                                       },
+                                       "links" : [
+                                          {
+                                             "href" : "{name}",
+                                             "rel" : "child"
+                                          }
+                                       ],
+                                       "type" : "array"
+                                    }
+                                 }
+                              },
+                              "leaf" : 0,
+                              "path" : "/nodes/{node}/qemu/{vmid}/firewall",
+                              "text" : "firewall"
+                           },
+                           {
+                              "children" : [
+                                 {
+                                    "info" : {
+                                       "POST" : {
+                                          "description" : "Execute fsfreeze-freeze.",
+                                          "method" : "POST",
+                                          "name" : "fsfreeze-freeze",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "permissions" : {
-                                                   "check" : [
-                                                      "perm",
-                                                      "/vms/{vmid}",
-                                                      [
-                                                         "VM.Config.Network"
-                                                      ]
-                                                   ]
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-freeze",
+                                    "text" : "fsfreeze-freeze"
+                                 },
+                                 {
+                                    "info" : {
+                                       "POST" : {
+                                          "description" : "Execute fsfreeze-status.",
+                                          "method" : "POST",
+                                          "name" : "fsfreeze-status",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "protected" : 1,
-                                                "proxyto" : null,
-                                                "returns" : {
-                                                   "type" : "null"
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
-                                          "leaf" : 1,
-                                          "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}",
-                                          "text" : "{pos}"
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
+                                          }
                                        }
-                                    ],
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-status",
+                                    "text" : "fsfreeze-status"
+                                 },
+                                 {
                                     "info" : {
-                                       "GET" : {
-                                          "description" : "List rules.",
-                                          "method" : "GET",
-                                          "name" : "get_rules",
+                                       "POST" : {
+                                          "description" : "Execute fsfreeze-thaw.",
+                                          "method" : "POST",
+                                          "name" : "fsfreeze-thaw",
                                           "parameters" : {
                                              "additionalProperties" : 0,
                                              "properties" : {
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -3586,130 +6344,223 @@ var pveapi = [
                                                 "perm",
                                                 "/vms/{vmid}",
                                                 [
-                                                   "VM.Audit"
+                                                   "VM.Monitor"
                                                 ]
                                              ]
                                           },
-                                          "proxyto" : null,
+                                          "protected" : 1,
+                                          "proxyto" : "node",
                                           "returns" : {
-                                             "items" : {
-                                                "properties" : {
-                                                   "pos" : {
-                                                      "type" : "integer"
-                                                   }
-                                                },
-                                                "type" : "object"
-                                             },
-                                             "links" : [
-                                                {
-                                                   "href" : "{pos}",
-                                                   "rel" : "child"
-                                                }
-                                             ],
-                                             "type" : "array"
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
                                           }
-                                       },
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-thaw",
+                                    "text" : "fsfreeze-thaw"
+                                 },
+                                 {
+                                    "info" : {
                                        "POST" : {
-                                          "description" : "Create new rule.",
+                                          "description" : "Execute fstrim.",
                                           "method" : "POST",
-                                          "name" : "create_rule",
+                                          "name" : "fstrim",
                                           "parameters" : {
                                              "additionalProperties" : 0,
                                              "properties" : {
-                                                "action" : {
-                                                   "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
-                                                   "maxLength" : 20,
-                                                   "minLength" : 2,
-                                                   "optional" : 0,
-                                                   "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                                   "type" : "string"
-                                                },
-                                                "comment" : {
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "dest" : {
-                                                   "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
-                                                   "format" : "pve-fw-addr-spec",
-                                                   "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"
-                                                },
-                                                "dport" : {
-                                                   "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
-                                                   "format" : "pve-fw-dport-spec",
-                                                   "optional" : 1,
-                                                   "type" : "string"
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "enable" : {
-                                                   "minimum" : 0,
-                                                   "optional" : 1,
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (0- N)"
-                                                },
-                                                "iface" : {
-                                                   "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
-                                                   "format" : "pve-iface",
-                                                   "maxLength" : 20,
-                                                   "minLength" : 2,
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "macro" : {
-                                                   "maxLength" : 128,
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/fstrim",
+                                    "text" : "fstrim"
+                                 },
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "Execute get-fsinfo.",
+                                          "method" : "GET",
+                                          "name" : "get-fsinfo",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "pos" : {
-                                                   "description" : "Update rule at position <pos>.",
-                                                   "minimum" : 0,
-                                                   "optional" : 1,
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (0- N)"
-                                                },
-                                                "proto" : {
-                                                   "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
-                                                   "format" : "pve-fw-protocol-spec",
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "source" : {
-                                                   "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
-                                                   "format" : "pve-fw-addr-spec",
-                                                   "optional" : 1,
-                                                   "type" : "string"
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/get-fsinfo",
+                                    "text" : "get-fsinfo"
+                                 },
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "Execute get-host-name.",
+                                          "method" : "GET",
+                                          "name" : "get-host-name",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "sport" : {
-                                                   "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
-                                                   "format" : "pve-fw-sport-spec",
-                                                   "optional" : 1,
-                                                   "type" : "string"
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/get-host-name",
+                                    "text" : "get-host-name"
+                                 },
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "Execute get-memory-block-info.",
+                                          "method" : "GET",
+                                          "name" : "get-memory-block-info",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "type" : {
-                                                   "enum" : [
-                                                      "in",
-                                                      "out",
-                                                      "group"
-                                                   ],
-                                                   "optional" : 0,
-                                                   "type" : "string"
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-block-info",
+                                    "text" : "get-memory-block-info"
+                                 },
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "Execute get-memory-blocks.",
+                                          "method" : "GET",
+                                          "name" : "get-memory-blocks",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -3718,204 +6569,43 @@ var pveapi = [
                                                 "perm",
                                                 "/vms/{vmid}",
                                                 [
-                                                   "VM.Config.Network"
+                                                   "VM.Monitor"
                                                 ]
                                              ]
                                           },
                                           "protected" : 1,
-                                          "proxyto" : null,
+                                          "proxyto" : "node",
                                           "returns" : {
-                                             "type" : "null"
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
                                           }
                                        }
                                     },
-                                    "leaf" : 0,
-                                    "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules",
-                                    "text" : "rules"
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-blocks",
+                                    "text" : "get-memory-blocks"
                                  },
                                  {
-                                    "children" : [
-                                       {
-                                          "info" : {
-                                             "DELETE" : {
-                                                "description" : "Remove IP or Network alias.",
-                                                "method" : "DELETE",
-                                                "name" : "remove_alias",
-                                                "parameters" : {
-                                                   "additionalProperties" : 0,
-                                                   "properties" : {
-                                                      "digest" : {
-                                                         "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                                                         "maxLength" : 40,
-                                                         "optional" : 1,
-                                                         "type" : "string"
-                                                      },
-                                                      "name" : {
-                                                         "description" : "Alias name.",
-                                                         "maxLength" : 64,
-                                                         "minLength" : 2,
-                                                         "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                                         "type" : "string"
-                                                      },
-                                                      "node" : {
-                                                         "description" : "The cluster node name.",
-                                                         "format" : "pve-node",
-                                                         "type" : "string"
-                                                      },
-                                                      "vmid" : {
-                                                         "description" : "The (unique) ID of the VM.",
-                                                         "format" : "pve-vmid",
-                                                         "minimum" : 1,
-                                                         "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
-                                                      }
-                                                   }
-                                                },
-                                                "permissions" : {
-                                                   "check" : [
-                                                      "perm",
-                                                      "/vms/{vmid}",
-                                                      [
-                                                         "VM.Config.Network"
-                                                      ]
-                                                   ]
-                                                },
-                                                "protected" : 1,
-                                                "returns" : {
-                                                   "type" : "null"
-                                                }
-                                             },
-                                             "GET" : {
-                                                "description" : "Read alias.",
-                                                "method" : "GET",
-                                                "name" : "read_alias",
-                                                "parameters" : {
-                                                   "additionalProperties" : 0,
-                                                   "properties" : {
-                                                      "name" : {
-                                                         "description" : "Alias name.",
-                                                         "maxLength" : 64,
-                                                         "minLength" : 2,
-                                                         "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                                         "type" : "string"
-                                                      },
-                                                      "node" : {
-                                                         "description" : "The cluster node name.",
-                                                         "format" : "pve-node",
-                                                         "type" : "string"
-                                                      },
-                                                      "vmid" : {
-                                                         "description" : "The (unique) ID of the VM.",
-                                                         "format" : "pve-vmid",
-                                                         "minimum" : 1,
-                                                         "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
-                                                      }
-                                                   }
-                                                },
-                                                "permissions" : {
-                                                   "check" : [
-                                                      "perm",
-                                                      "/vms/{vmid}",
-                                                      [
-                                                         "VM.Audit"
-                                                      ]
-                                                   ]
-                                                },
-                                                "returns" : {
-                                                   "type" : "object"
-                                                }
-                                             },
-                                             "PUT" : {
-                                                "description" : "Update IP or Network alias.",
-                                                "method" : "PUT",
-                                                "name" : "update_alias",
-                                                "parameters" : {
-                                                   "additionalProperties" : 0,
-                                                   "properties" : {
-                                                      "cidr" : {
-                                                         "description" : "Network/IP specification in CIDR format.",
-                                                         "format" : "IPorCIDR",
-                                                         "type" : "string"
-                                                      },
-                                                      "comment" : {
-                                                         "optional" : 1,
-                                                         "type" : "string"
-                                                      },
-                                                      "digest" : {
-                                                         "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                                                         "maxLength" : 40,
-                                                         "optional" : 1,
-                                                         "type" : "string"
-                                                      },
-                                                      "name" : {
-                                                         "description" : "Alias name.",
-                                                         "maxLength" : 64,
-                                                         "minLength" : 2,
-                                                         "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                                         "type" : "string"
-                                                      },
-                                                      "node" : {
-                                                         "description" : "The cluster node name.",
-                                                         "format" : "pve-node",
-                                                         "type" : "string"
-                                                      },
-                                                      "rename" : {
-                                                         "description" : "Rename an existing alias.",
-                                                         "maxLength" : 64,
-                                                         "minLength" : 2,
-                                                         "optional" : 1,
-                                                         "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                                         "type" : "string"
-                                                      },
-                                                      "vmid" : {
-                                                         "description" : "The (unique) ID of the VM.",
-                                                         "format" : "pve-vmid",
-                                                         "minimum" : 1,
-                                                         "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
-                                                      }
-                                                   }
-                                                },
-                                                "permissions" : {
-                                                   "check" : [
-                                                      "perm",
-                                                      "/vms/{vmid}",
-                                                      [
-                                                         "VM.Config.Network"
-                                                      ]
-                                                   ]
-                                                },
-                                                "protected" : 1,
-                                                "returns" : {
-                                                   "type" : "null"
-                                                }
-                                             }
-                                          },
-                                          "leaf" : 1,
-                                          "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}",
-                                          "text" : "{name}"
-                                       }
-                                    ],
                                     "info" : {
                                        "GET" : {
-                                          "description" : "List aliases",
+                                          "description" : "Execute get-osinfo.",
                                           "method" : "GET",
-                                          "name" : "get_aliases",
+                                          "name" : "get-osinfo",
                                           "parameters" : {
                                              "additionalProperties" : 0,
                                              "properties" : {
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -3924,75 +6614,43 @@ var pveapi = [
                                                 "perm",
                                                 "/vms/{vmid}",
                                                 [
-                                                   "VM.Audit"
+                                                   "VM.Monitor"
                                                 ]
                                              ]
                                           },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
                                           "returns" : {
-                                             "items" : {
-                                                "properties" : {
-                                                   "cidr" : {
-                                                      "type" : "string"
-                                                   },
-                                                   "comment" : {
-                                                      "optional" : 1,
-                                                      "type" : "string"
-                                                   },
-                                                   "digest" : {
-                                                      "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                                                      "maxLength" : 40,
-                                                      "optional" : 0,
-                                                      "type" : "string"
-                                                   },
-                                                   "name" : {
-                                                      "type" : "string"
-                                                   }
-                                                },
-                                                "type" : "object"
-                                             },
-                                             "links" : [
-                                                {
-                                                   "href" : "{name}",
-                                                   "rel" : "child"
-                                                }
-                                             ],
-                                             "type" : "array"
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
                                           }
-                                       },
-                                       "POST" : {
-                                          "description" : "Create IP or Network Alias.",
-                                          "method" : "POST",
-                                          "name" : "create_alias",
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/get-osinfo",
+                                    "text" : "get-osinfo"
+                                 },
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "Execute get-time.",
+                                          "method" : "GET",
+                                          "name" : "get-time",
                                           "parameters" : {
                                              "additionalProperties" : 0,
                                              "properties" : {
-                                                "cidr" : {
-                                                   "description" : "Network/IP specification in CIDR format.",
-                                                   "format" : "IPorCIDR",
-                                                   "type" : "string"
-                                                },
-                                                "comment" : {
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "name" : {
-                                                   "description" : "Alias name.",
-                                                   "maxLength" : 64,
-                                                   "minLength" : 2,
-                                                   "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                                   "type" : "string"
-                                                },
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -4001,385 +6659,178 @@ var pveapi = [
                                                 "perm",
                                                 "/vms/{vmid}",
                                                 [
-                                                   "VM.Config.Network"
+                                                   "VM.Monitor"
                                                 ]
                                              ]
                                           },
                                           "protected" : 1,
+                                          "proxyto" : "node",
                                           "returns" : {
-                                             "type" : "null"
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
                                           }
                                        }
                                     },
-                                    "leaf" : 0,
-                                    "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases",
-                                    "text" : "aliases"
-                                 },
-                                 {
-                                    "children" : [
-                                       {
-                                          "children" : [
-                                             {
-                                                "info" : {
-                                                   "DELETE" : {
-                                                      "description" : "Remove IP or Network from IPSet.",
-                                                      "method" : "DELETE",
-                                                      "name" : "remove_ip",
-                                                      "parameters" : {
-                                                         "additionalProperties" : 0,
-                                                         "properties" : {
-                                                            "cidr" : {
-                                                               "description" : "Network/IP specification in CIDR format.",
-                                                               "format" : "IPorCIDRorAlias",
-                                                               "type" : "string"
-                                                            },
-                                                            "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"
-                                                            },
-                                                            "name" : {
-                                                               "description" : "IP set name.",
-                                                               "maxLength" : 64,
-                                                               "minLength" : 2,
-                                                               "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                                               "type" : "string"
-                                                            },
-                                                            "node" : {
-                                                               "description" : "The cluster node name.",
-                                                               "format" : "pve-node",
-                                                               "type" : "string"
-                                                            },
-                                                            "vmid" : {
-                                                               "description" : "The (unique) ID of the VM.",
-                                                               "format" : "pve-vmid",
-                                                               "minimum" : 1,
-                                                               "type" : "integer",
-                                                               "typetext" : "integer (1- N)"
-                                                            }
-                                                         }
-                                                      },
-                                                      "permissions" : {
-                                                         "check" : [
-                                                            "perm",
-                                                            "/vms/{vmid}",
-                                                            [
-                                                               "VM.Config.Network"
-                                                            ]
-                                                         ]
-                                                      },
-                                                      "protected" : 1,
-                                                      "returns" : {
-                                                         "type" : "null"
-                                                      }
-                                                   },
-                                                   "GET" : {
-                                                      "description" : "Read IP or Network settings from IPSet.",
-                                                      "method" : "GET",
-                                                      "name" : "read_ip",
-                                                      "parameters" : {
-                                                         "additionalProperties" : 0,
-                                                         "properties" : {
-                                                            "cidr" : {
-                                                               "description" : "Network/IP specification in CIDR format.",
-                                                               "format" : "IPorCIDRorAlias",
-                                                               "type" : "string"
-                                                            },
-                                                            "name" : {
-                                                               "description" : "IP set name.",
-                                                               "maxLength" : 64,
-                                                               "minLength" : 2,
-                                                               "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                                               "type" : "string"
-                                                            },
-                                                            "node" : {
-                                                               "description" : "The cluster node name.",
-                                                               "format" : "pve-node",
-                                                               "type" : "string"
-                                                            },
-                                                            "vmid" : {
-                                                               "description" : "The (unique) ID of the VM.",
-                                                               "format" : "pve-vmid",
-                                                               "minimum" : 1,
-                                                               "type" : "integer",
-                                                               "typetext" : "integer (1- N)"
-                                                            }
-                                                         }
-                                                      },
-                                                      "permissions" : {
-                                                         "check" : [
-                                                            "perm",
-                                                            "/vms/{vmid}",
-                                                            [
-                                                               "VM.Audit"
-                                                            ]
-                                                         ]
-                                                      },
-                                                      "protected" : 1,
-                                                      "returns" : {
-                                                         "type" : "object"
-                                                      }
-                                                   },
-                                                   "PUT" : {
-                                                      "description" : "Update IP or Network settings",
-                                                      "method" : "PUT",
-                                                      "name" : "update_ip",
-                                                      "parameters" : {
-                                                         "additionalProperties" : 0,
-                                                         "properties" : {
-                                                            "cidr" : {
-                                                               "description" : "Network/IP specification in CIDR format.",
-                                                               "format" : "IPorCIDRorAlias",
-                                                               "type" : "string"
-                                                            },
-                                                            "comment" : {
-                                                               "optional" : 1,
-                                                               "type" : "string"
-                                                            },
-                                                            "digest" : {
-                                                               "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                                                               "maxLength" : 40,
-                                                               "optional" : 1,
-                                                               "type" : "string"
-                                                            },
-                                                            "name" : {
-                                                               "description" : "IP set name.",
-                                                               "maxLength" : 64,
-                                                               "minLength" : 2,
-                                                               "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                                               "type" : "string"
-                                                            },
-                                                            "node" : {
-                                                               "description" : "The cluster node name.",
-                                                               "format" : "pve-node",
-                                                               "type" : "string"
-                                                            },
-                                                            "nomatch" : {
-                                                               "optional" : 1,
-                                                               "type" : "boolean"
-                                                            },
-                                                            "vmid" : {
-                                                               "description" : "The (unique) ID of the VM.",
-                                                               "format" : "pve-vmid",
-                                                               "minimum" : 1,
-                                                               "type" : "integer",
-                                                               "typetext" : "integer (1- N)"
-                                                            }
-                                                         }
-                                                      },
-                                                      "permissions" : {
-                                                         "check" : [
-                                                            "perm",
-                                                            "/vms/{vmid}",
-                                                            [
-                                                               "VM.Config.Network"
-                                                            ]
-                                                         ]
-                                                      },
-                                                      "protected" : 1,
-                                                      "returns" : {
-                                                         "type" : "null"
-                                                      }
-                                                   }
-                                                },
-                                                "leaf" : 1,
-                                                "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}",
-                                                "text" : "{cidr}"
-                                             }
-                                          ],
-                                          "info" : {
-                                             "DELETE" : {
-                                                "description" : "Delete IPSet",
-                                                "method" : "DELETE",
-                                                "name" : "delete_ipset",
-                                                "parameters" : {
-                                                   "additionalProperties" : 0,
-                                                   "properties" : {
-                                                      "name" : {
-                                                         "description" : "IP set name.",
-                                                         "maxLength" : 64,
-                                                         "minLength" : 2,
-                                                         "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                                         "type" : "string"
-                                                      },
-                                                      "node" : {
-                                                         "description" : "The cluster node name.",
-                                                         "format" : "pve-node",
-                                                         "type" : "string"
-                                                      },
-                                                      "vmid" : {
-                                                         "description" : "The (unique) ID of the VM.",
-                                                         "format" : "pve-vmid",
-                                                         "minimum" : 1,
-                                                         "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
-                                                      }
-                                                   }
-                                                },
-                                                "permissions" : {
-                                                   "check" : [
-                                                      "perm",
-                                                      "/vms/{vmid}",
-                                                      [
-                                                         "VM.Config.Network"
-                                                      ]
-                                                   ]
-                                                },
-                                                "protected" : 1,
-                                                "returns" : {
-                                                   "type" : "null"
-                                                }
-                                             },
-                                             "GET" : {
-                                                "description" : "List IPSet content",
-                                                "method" : "GET",
-                                                "name" : "get_ipset",
-                                                "parameters" : {
-                                                   "additionalProperties" : 0,
-                                                   "properties" : {
-                                                      "name" : {
-                                                         "description" : "IP set name.",
-                                                         "maxLength" : 64,
-                                                         "minLength" : 2,
-                                                         "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                                         "type" : "string"
-                                                      },
-                                                      "node" : {
-                                                         "description" : "The cluster node name.",
-                                                         "format" : "pve-node",
-                                                         "type" : "string"
-                                                      },
-                                                      "vmid" : {
-                                                         "description" : "The (unique) ID of the VM.",
-                                                         "format" : "pve-vmid",
-                                                         "minimum" : 1,
-                                                         "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
-                                                      }
-                                                   }
-                                                },
-                                                "permissions" : {
-                                                   "check" : [
-                                                      "perm",
-                                                      "/vms/{vmid}",
-                                                      [
-                                                         "VM.Audit"
-                                                      ]
-                                                   ]
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/get-time",
+                                    "text" : "get-time"
+                                 },
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "Execute get-timezone.",
+                                          "method" : "GET",
+                                          "name" : "get-timezone",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "returns" : {
-                                                   "items" : {
-                                                      "properties" : {
-                                                         "cidr" : {
-                                                            "type" : "string"
-                                                         },
-                                                         "comment" : {
-                                                            "optional" : 1,
-                                                            "type" : "string"
-                                                         },
-                                                         "digest" : {
-                                                            "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                                                            "maxLength" : 40,
-                                                            "optional" : 0,
-                                                            "type" : "string"
-                                                         },
-                                                         "nomatch" : {
-                                                            "optional" : 1,
-                                                            "type" : "boolean"
-                                                         }
-                                                      },
-                                                      "type" : "object"
-                                                   },
-                                                   "links" : [
-                                                      {
-                                                         "href" : "{cidr}",
-                                                         "rel" : "child"
-                                                      }
-                                                   ],
-                                                   "type" : "array"
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
-                                             },
-                                             "POST" : {
-                                                "description" : "Add IP or Network to IPSet.",
-                                                "method" : "POST",
-                                                "name" : "create_ip",
-                                                "parameters" : {
-                                                   "additionalProperties" : 0,
-                                                   "properties" : {
-                                                      "cidr" : {
-                                                         "description" : "Network/IP specification in CIDR format.",
-                                                         "format" : "IPorCIDRorAlias",
-                                                         "type" : "string"
-                                                      },
-                                                      "comment" : {
-                                                         "optional" : 1,
-                                                         "type" : "string"
-                                                      },
-                                                      "name" : {
-                                                         "description" : "IP set name.",
-                                                         "maxLength" : 64,
-                                                         "minLength" : 2,
-                                                         "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                                         "type" : "string"
-                                                      },
-                                                      "node" : {
-                                                         "description" : "The cluster node name.",
-                                                         "format" : "pve-node",
-                                                         "type" : "string"
-                                                      },
-                                                      "nomatch" : {
-                                                         "optional" : 1,
-                                                         "type" : "boolean"
-                                                      },
-                                                      "vmid" : {
-                                                         "description" : "The (unique) ID of the VM.",
-                                                         "format" : "pve-vmid",
-                                                         "minimum" : 1,
-                                                         "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
-                                                      }
-                                                   }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/get-timezone",
+                                    "text" : "get-timezone"
+                                 },
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "Execute get-users.",
+                                          "method" : "GET",
+                                          "name" : "get-users",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "permissions" : {
-                                                   "check" : [
-                                                      "perm",
-                                                      "/vms/{vmid}",
-                                                      [
-                                                         "VM.Config.Network"
-                                                      ]
-                                                   ]
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/get-users",
+                                    "text" : "get-users"
+                                 },
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "Execute get-vcpus.",
+                                          "method" : "GET",
+                                          "name" : "get-vcpus",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "protected" : 1,
-                                                "returns" : {
-                                                   "type" : "null"
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
-                                          "leaf" : 0,
-                                          "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}",
-                                          "text" : "{name}"
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
+                                          }
                                        }
-                                    ],
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/get-vcpus",
+                                    "text" : "get-vcpus"
+                                 },
+                                 {
                                     "info" : {
                                        "GET" : {
-                                          "description" : "List IPSets",
+                                          "description" : "Execute info.",
                                           "method" : "GET",
-                                          "name" : "ipset_index",
+                                          "name" : "info",
                                           "parameters" : {
                                              "additionalProperties" : 0,
                                              "properties" : {
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -4388,85 +6839,88 @@ var pveapi = [
                                                 "perm",
                                                 "/vms/{vmid}",
                                                 [
-                                                   "VM.Audit"
+                                                   "VM.Monitor"
                                                 ]
                                              ]
                                           },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
                                           "returns" : {
-                                             "items" : {
-                                                "properties" : {
-                                                   "comment" : {
-                                                      "optional" : 1,
-                                                      "type" : "string"
-                                                   },
-                                                   "digest" : {
-                                                      "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                                                      "maxLength" : 40,
-                                                      "optional" : 0,
-                                                      "type" : "string"
-                                                   },
-                                                   "name" : {
-                                                      "description" : "IP set name.",
-                                                      "maxLength" : 64,
-                                                      "minLength" : 2,
-                                                      "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                                      "type" : "string"
-                                                   }
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/info",
+                                    "text" : "info"
+                                 },
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "Execute network-get-interfaces.",
+                                          "method" : "GET",
+                                          "name" : "network-get-interfaces",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "type" : "object"
-                                             },
-                                             "links" : [
-                                                {
-                                                   "href" : "{name}",
-                                                   "rel" : "child"
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
-                                             ],
-                                             "type" : "array"
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
                                           }
-                                       },
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/network-get-interfaces",
+                                    "text" : "network-get-interfaces"
+                                 },
+                                 {
+                                    "info" : {
                                        "POST" : {
-                                          "description" : "Create new IPSet",
+                                          "description" : "Execute ping.",
                                           "method" : "POST",
-                                          "name" : "create_ipset",
+                                          "name" : "ping",
                                           "parameters" : {
                                              "additionalProperties" : 0,
                                              "properties" : {
-                                                "comment" : {
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "digest" : {
-                                                   "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
-                                                   "maxLength" : 40,
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "name" : {
-                                                   "description" : "IP set name.",
-                                                   "maxLength" : 64,
-                                                   "minLength" : 2,
-                                                   "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                                   "type" : "string"
-                                                },
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
-                                                },
-                                                "rename" : {
-                                                   "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
-                                                   "maxLength" : 64,
-                                                   "minLength" : 2,
-                                                   "optional" : 1,
-                                                   "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -4475,40 +6929,43 @@ var pveapi = [
                                                 "perm",
                                                 "/vms/{vmid}",
                                                 [
-                                                   "VM.Config.Network"
+                                                   "VM.Monitor"
                                                 ]
                                              ]
                                           },
                                           "protected" : 1,
+                                          "proxyto" : "node",
                                           "returns" : {
-                                             "type" : "null"
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
                                           }
                                        }
                                     },
-                                    "leaf" : 0,
-                                    "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset",
-                                    "text" : "ipset"
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/ping",
+                                    "text" : "ping"
                                  },
                                  {
                                     "info" : {
-                                       "GET" : {
-                                          "description" : "Get VM firewall options.",
-                                          "method" : "GET",
-                                          "name" : "get_options",
+                                       "POST" : {
+                                          "description" : "Execute shutdown.",
+                                          "method" : "POST",
+                                          "name" : "shutdown",
                                           "parameters" : {
                                              "additionalProperties" : 0,
                                              "properties" : {
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -4517,211 +6974,43 @@ var pveapi = [
                                                 "perm",
                                                 "/vms/{vmid}",
                                                 [
-                                                   "VM.Audit"
+                                                   "VM.Monitor"
                                                 ]
                                              ]
                                           },
+                                          "protected" : 1,
                                           "proxyto" : "node",
                                           "returns" : {
-                                             "properties" : {
-                                                "dhcp" : {
-                                                   "description" : "Enable DHCP.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                },
-                                                "enable" : {
-                                                   "description" : "Enable/disable firewall rules.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                },
-                                                "ipfilter" : {
-                                                   "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                },
-                                                "log_level_in" : {
-                                                   "description" : "Log level for incoming traffic.",
-                                                   "enum" : [
-                                                      "emerg",
-                                                      "alert",
-                                                      "crit",
-                                                      "err",
-                                                      "warning",
-                                                      "notice",
-                                                      "info",
-                                                      "debug",
-                                                      "nolog"
-                                                   ],
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "log_level_out" : {
-                                                   "description" : "Log level for outgoing traffic.",
-                                                   "enum" : [
-                                                      "emerg",
-                                                      "alert",
-                                                      "crit",
-                                                      "err",
-                                                      "warning",
-                                                      "notice",
-                                                      "info",
-                                                      "debug",
-                                                      "nolog"
-                                                   ],
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "macfilter" : {
-                                                   "description" : "Enable/disable MAC address filter.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                },
-                                                "ndp" : {
-                                                   "description" : "Enable NDP.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                },
-                                                "policy_in" : {
-                                                   "description" : "Input policy.",
-                                                   "enum" : [
-                                                      "ACCEPT",
-                                                      "REJECT",
-                                                      "DROP"
-                                                   ],
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "policy_out" : {
-                                                   "description" : "Output policy.",
-                                                   "enum" : [
-                                                      "ACCEPT",
-                                                      "REJECT",
-                                                      "DROP"
-                                                   ],
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "radv" : {
-                                                   "description" : "Allow sending Router Advertisement.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                }
-                                             },
+                                             "description" : "Returns an object with a single `result` property.",
                                              "type" : "object"
                                           }
-                                       },
-                                       "PUT" : {
-                                          "description" : "Set Firewall options.",
-                                          "method" : "PUT",
-                                          "name" : "set_options",
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/shutdown",
+                                    "text" : "shutdown"
+                                 },
+                                 {
+                                    "info" : {
+                                       "POST" : {
+                                          "description" : "Execute suspend-disk.",
+                                          "method" : "POST",
+                                          "name" : "suspend-disk",
                                           "parameters" : {
                                              "additionalProperties" : 0,
-                                             "properties" : {
-                                                "delete" : {
-                                                   "description" : "A list of settings you want to delete.",
-                                                   "format" : "pve-configid-list",
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "dhcp" : {
-                                                   "description" : "Enable DHCP.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                },
-                                                "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"
-                                                },
-                                                "enable" : {
-                                                   "description" : "Enable/disable firewall rules.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                },
-                                                "ipfilter" : {
-                                                   "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                },
-                                                "log_level_in" : {
-                                                   "description" : "Log level for incoming traffic.",
-                                                   "enum" : [
-                                                      "emerg",
-                                                      "alert",
-                                                      "crit",
-                                                      "err",
-                                                      "warning",
-                                                      "notice",
-                                                      "info",
-                                                      "debug",
-                                                      "nolog"
-                                                   ],
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "log_level_out" : {
-                                                   "description" : "Log level for outgoing traffic.",
-                                                   "enum" : [
-                                                      "emerg",
-                                                      "alert",
-                                                      "crit",
-                                                      "err",
-                                                      "warning",
-                                                      "notice",
-                                                      "info",
-                                                      "debug",
-                                                      "nolog"
-                                                   ],
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "macfilter" : {
-                                                   "description" : "Enable/disable MAC address filter.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                },
-                                                "ndp" : {
-                                                   "description" : "Enable NDP.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                },
-                                                "node" : {
-                                                   "description" : "The cluster node name.",
-                                                   "format" : "pve-node",
-                                                   "type" : "string"
-                                                },
-                                                "policy_in" : {
-                                                   "description" : "Input policy.",
-                                                   "enum" : [
-                                                      "ACCEPT",
-                                                      "REJECT",
-                                                      "DROP"
-                                                   ],
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "policy_out" : {
-                                                   "description" : "Output policy.",
-                                                   "enum" : [
-                                                      "ACCEPT",
-                                                      "REJECT",
-                                                      "DROP"
-                                                   ],
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "radv" : {
-                                                   "description" : "Allow sending Router Advertisement.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -4730,53 +7019,43 @@ var pveapi = [
                                                 "perm",
                                                 "/vms/{vmid}",
                                                 [
-                                                   "VM.Config.Network"
+                                                   "VM.Monitor"
                                                 ]
                                              ]
                                           },
                                           "protected" : 1,
                                           "proxyto" : "node",
                                           "returns" : {
-                                             "type" : "null"
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
                                           }
                                        }
                                     },
                                     "leaf" : 1,
-                                    "path" : "/nodes/{node}/qemu/{vmid}/firewall/options",
-                                    "text" : "options"
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-disk",
+                                    "text" : "suspend-disk"
                                  },
                                  {
                                     "info" : {
-                                       "GET" : {
-                                          "description" : "Read firewall log",
-                                          "method" : "GET",
-                                          "name" : "log",
+                                       "POST" : {
+                                          "description" : "Execute suspend-hybrid.",
+                                          "method" : "POST",
+                                          "name" : "suspend-hybrid",
                                           "parameters" : {
                                              "additionalProperties" : 0,
                                              "properties" : {
-                                                "limit" : {
-                                                   "minimum" : 0,
-                                                   "optional" : 1,
-                                                   "type" : "integer",
-                                                   "typetext" : "integer (0- N)"
-                                                },
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
-                                                },
-                                                "start" : {
-                                                   "minimum" : 0,
-                                                   "optional" : 1,
-                                                   "type" : "integer",
-                                                   "typetext" : "integer (0- N)"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -4785,63 +7064,43 @@ var pveapi = [
                                                 "perm",
                                                 "/vms/{vmid}",
                                                 [
-                                                   "VM.Console"
+                                                   "VM.Monitor"
                                                 ]
                                              ]
                                           },
                                           "protected" : 1,
                                           "proxyto" : "node",
                                           "returns" : {
-                                             "items" : {
-                                                "properties" : {
-                                                   "n" : {
-                                                      "description" : "Line number",
-                                                      "type" : "integer"
-                                                   },
-                                                   "t" : {
-                                                      "description" : "Line text",
-                                                      "type" : "string"
-                                                   }
-                                                },
-                                                "type" : "object"
-                                             },
-                                             "type" : "array"
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
                                           }
                                        }
                                     },
                                     "leaf" : 1,
-                                    "path" : "/nodes/{node}/qemu/{vmid}/firewall/log",
-                                    "text" : "log"
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-hybrid",
+                                    "text" : "suspend-hybrid"
                                  },
                                  {
                                     "info" : {
-                                       "GET" : {
-                                          "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
-                                          "method" : "GET",
-                                          "name" : "refs",
+                                       "POST" : {
+                                          "description" : "Execute suspend-ram.",
+                                          "method" : "POST",
+                                          "name" : "suspend-ram",
                                           "parameters" : {
                                              "additionalProperties" : 0,
                                              "properties" : {
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
-                                                },
-                                                "type" : {
-                                                   "description" : "Only list references of specified type.",
-                                                   "enum" : [
-                                                      "alias",
-                                                      "ipset"
-                                                   ],
-                                                   "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -4850,65 +7109,52 @@ var pveapi = [
                                                 "perm",
                                                 "/vms/{vmid}",
                                                 [
-                                                   "VM.Audit"
+                                                   "VM.Monitor"
                                                 ]
                                              ]
                                           },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
                                           "returns" : {
-                                             "items" : {
-                                                "properties" : {
-                                                   "comment" : {
-                                                      "optional" : 1,
-                                                      "type" : "string"
-                                                   },
-                                                   "name" : {
-                                                      "type" : "string"
-                                                   },
-                                                   "type" : {
-                                                      "enum" : [
-                                                         "alias",
-                                                         "ipset"
-                                                      ],
-                                                      "type" : "string"
-                                                   }
-                                                },
-                                                "type" : "object"
-                                             },
-                                             "type" : "array"
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
                                           }
                                        }
                                     },
                                     "leaf" : 1,
-                                    "path" : "/nodes/{node}/qemu/{vmid}/firewall/refs",
-                                    "text" : "refs"
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-ram",
+                                    "text" : "suspend-ram"
                                  }
                               ],
                               "info" : {
                                  "GET" : {
-                                    "description" : "Directory index.",
+                                    "description" : "Qemu Agent command index.",
                                     "method" : "GET",
                                     "name" : "index",
                                     "parameters" : {
-                                       "additionalProperties" : 0,
+                                       "additionalProperties" : 1,
                                        "properties" : {
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
                                     "permissions" : {
                                        "user" : "all"
                                     },
+                                    "proxyto" : "node",
                                     "returns" : {
+                                       "description" : "Returns the list of Qemu Agent commands",
                                        "items" : {
                                           "properties" : {},
                                           "type" : "object"
@@ -4921,11 +7167,75 @@ var pveapi = [
                                        ],
                                        "type" : "array"
                                     }
+                                 },
+                                 "POST" : {
+                                    "description" : "Execute Qemu Guest Agent commands.",
+                                    "method" : "POST",
+                                    "name" : "agent",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "command" : {
+                                             "description" : "The QGA command.",
+                                             "enum" : [
+                                                "fsfreeze-freeze",
+                                                "fsfreeze-status",
+                                                "fsfreeze-thaw",
+                                                "fstrim",
+                                                "get-fsinfo",
+                                                "get-host-name",
+                                                "get-memory-block-info",
+                                                "get-memory-blocks",
+                                                "get-osinfo",
+                                                "get-time",
+                                                "get-timezone",
+                                                "get-users",
+                                                "get-vcpus",
+                                                "info",
+                                                "network-get-interfaces",
+                                                "ping",
+                                                "shutdown",
+                                                "suspend-disk",
+                                                "suspend-hybrid",
+                                                "suspend-ram"
+                                             ],
+                                             "type" : "string"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "vmid" : {
+                                             "description" : "The (unique) ID of the VM.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/vms/{vmid}",
+                                          [
+                                             "VM.Monitor"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "description" : "Returns an object with a single `result` property.",
+                                       "type" : "object"
+                                    }
                                  }
                               },
                               "leaf" : 0,
-                              "path" : "/nodes/{node}/qemu/{vmid}/firewall",
-                              "text" : "firewall"
+                              "path" : "/nodes/{node}/qemu/{vmid}/agent",
+                              "text" : "agent"
                            },
                            {
                               "info" : {
@@ -4948,12 +7258,14 @@ var pveapi = [
                                           "ds" : {
                                              "description" : "The list of datasources you want to display.",
                                              "format" : "pve-configid-list",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "timeframe" : {
                                              "description" : "Specify the time frame you are interested in.",
@@ -4971,7 +7283,7 @@ var pveapi = [
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -5020,7 +7332,8 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "timeframe" : {
                                              "description" : "Specify the time frame you are interested in.",
@@ -5038,7 +7351,7 @@ var pveapi = [
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -5078,19 +7391,21 @@ var pveapi = [
                                              "default" : 0,
                                              "description" : "Get current values (instead of pending values).",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -5125,25 +7440,29 @@ var pveapi = [
                                              "default" : 1,
                                              "description" : "Enable/disable ACPI.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "agent" : {
                                              "default" : 0,
                                              "description" : "Enable/disable Qemu GuestAgent.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "args" : {
                                              "description" : "Arbitrary arguments passed to kvm.",
                                              "optional" : 1,
                                              "type" : "string",
+                                             "typetext" : "<string>",
                                              "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
                                           },
                                           "autostart" : {
                                              "default" : 0,
                                              "description" : "Automatic restart after crash (currently ignored).",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "background_delay" : {
                                              "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
@@ -5151,14 +7470,14 @@ var pveapi = [
                                              "minimum" : 1,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1-30)"
+                                             "typetext" : "<integer> (1 - 30)"
                                           },
                                           "balloon" : {
                                              "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (0- N)"
+                                             "typetext" : "<integer> (0 - N)"
                                           },
                                           "bios" : {
                                              "default" : "seabios",
@@ -5186,10 +7505,31 @@ var pveapi = [
                                           },
                                           "cdrom" : {
                                              "description" : "This is an alias for option -ide2",
-                                             "format" : "pve-qm-drive",
+                                             "format" : "pve-qm-ide",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<volume>"
+                                          },
+                                          "cipassword" : {
+                                             "description" : "cloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "citype" : {
+                                             "description" : "Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.",
+                                             "enum" : [
+                                                "configdrive2",
+                                                "nocloud"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "ciuser" : {
+                                             "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "volume"
+                                             "typetext" : "<string>"
                                           },
                                           "cores" : {
                                              "default" : 1,
@@ -5197,7 +7537,7 @@ var pveapi = [
                                              "minimum" : 1,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           },
                                           "cpu" : {
                                              "description" : "Emulated CPU type.",
@@ -5210,17 +7550,26 @@ var pveapi = [
                                                       "486",
                                                       "athlon",
                                                       "Broadwell",
+                                                      "Broadwell-IBRS",
                                                       "Broadwell-noTSX",
+                                                      "Broadwell-noTSX-IBRS",
                                                       "Conroe",
                                                       "core2duo",
                                                       "coreduo",
+                                                      "EPYC",
+                                                      "EPYC-IBPB",
                                                       "Haswell",
+                                                      "Haswell-IBRS",
                                                       "Haswell-noTSX",
+                                                      "Haswell-noTSX-IBRS",
                                                       "host",
                                                       "IvyBridge",
+                                                      "IvyBridge-IBRS",
                                                       "kvm32",
                                                       "kvm64",
+                                                      "max",
                                                       "Nehalem",
+                                                      "Nehalem-IBRS",
                                                       "Opteron_G1",
                                                       "Opteron_G2",
                                                       "Opteron_G3",
@@ -5234,9 +7583,21 @@ var pveapi = [
                                                       "qemu32",
                                                       "qemu64",
                                                       "SandyBridge",
-                                                      "Westmere"
+                                                      "SandyBridge-IBRS",
+                                                      "Skylake-Client",
+                                                      "Skylake-Client-IBRS",
+                                                      "Skylake-Server",
+                                                      "Skylake-Server-IBRS",
+                                                      "Westmere",
+                                                      "Westmere-IBRS"
                                                    ],
-                                                   "format_description" : "cputype",
+                                                   "type" : "string"
+                                                },
+                                                "flags" : {
+                                                   "description" : "List of additional CPU flags separated by ';'. Use '+FLAG' to enable, '-FLAG' to disable a flag. Currently supported flags: 'pcid', 'spec-ctrl'.",
+                                                   "format_description" : "+FLAG[;-FLAG...]",
+                                                   "optional" : 1,
+                                                   "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl))(;(?^:[+-](pcid|spec-ctrl)))*)",
                                                    "type" : "string"
                                                 },
                                                 "hidden" : {
@@ -5248,7 +7609,7 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[cputype=]<cputype> [,hidden=<1|0>]"
+                                             "typetext" : "[cputype=]<enum> [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>]"
                                           },
                                           "cpulimit" : {
                                              "default" : 0,
@@ -5257,53 +7618,58 @@ var pveapi = [
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "number",
-                                             "typetext" : "number (0-128)",
+                                             "typetext" : "<number> (0 - 128)",
                                              "verbose_description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit."
                                           },
                                           "cpuunits" : {
-                                             "default" : 1000,
+                                             "default" : 1024,
                                              "description" : "CPU weight for a VM.",
-                                             "maximum" : 500000,
-                                             "minimum" : 0,
+                                             "maximum" : 262144,
+                                             "minimum" : 2,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (0-500000)",
-                                             "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0."
+                                             "typetext" : "<integer> (2 - 262144)",
+                                             "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs."
                                           },
                                           "delete" : {
                                              "description" : "A list of settings you want to delete.",
                                              "format" : "pve-configid-list",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "description" : {
                                              "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file.",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "digest" : {
                                              "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
                                              "maxLength" : 40,
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "force" : {
                                              "description" : "Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.",
                                              "optional" : 1,
                                              "requires" : "delete",
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "freeze" : {
                                              "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "hostpci[n]" : {
                                              "description" : "Map host PCI devices into guest.",
                                              "format" : "pve-qm-hostpci",
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,pcie=<1|0>] [,rombar=<1|0>] [,x-vga=<1|0>]",
+                                             "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,x-vga=<1|0>]",
                                              "verbose_description" : "Map host PCI devices into guest.\n\nNOTE: This option allows direct access to host hardware. So it is no longer \npossible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
                                           },
                                           "hotplug" : {
@@ -5311,7 +7677,8 @@ var pveapi = [
                                              "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Value '1' is an alias for the default 'network,disk,usb'.",
                                              "format" : "pve-hotplug-features",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "hugepages" : {
                                              "description" : "Enable/disable hugepages memory.",
@@ -5341,23 +7708,50 @@ var pveapi = [
                                                    "type" : "boolean"
                                                 },
                                                 "bps" : {
-                                                   "description" : "Maximum r/w speed speed in bytes per second.",
+                                                   "description" : "Maximum r/w speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "bps_max_length" : {
+                                                   "description" : "Maximum length of I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "bps_rd" : {
-                                                   "description" : "Maximum read speed speed in bytes per second.",
+                                                   "description" : "Maximum read speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "bps_rd_length" : {
+                                                   "alias" : "bps_rd_max_length"
+                                                },
+                                                "bps_rd_max_length" : {
+                                                   "description" : "Maximum length of read I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "bps_wr" : {
-                                                   "description" : "Maximum write speed speed in bytes per second.",
+                                                   "description" : "Maximum write speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "bps_wr_length" : {
+                                                   "alias" : "bps_wr_max_length"
+                                                },
+                                                "bps_wr_max_length" : {
+                                                   "description" : "Maximum length of write I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "cache" : {
                                                    "description" : "The drive's cache mode",
                                                    "enum" : [
@@ -5407,7 +7801,6 @@ var pveapi = [
                                                       "vmdk",
                                                       "cloop"
                                                    ],
-                                                   "format_description" : "image format",
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
@@ -5417,73 +7810,100 @@ var pveapi = [
                                                    "type" : "integer"
                                                 },
                                                 "iops" : {
-                                                   "description" : "Maximum r/w I/O speed in operations per second.",
+                                                   "description" : "Maximum r/w I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
                                                 "iops_max" : {
-                                                   "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_max_length" : {
+                                                   "description" : "Maximum length of I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "iops_rd" : {
-                                                   "description" : "Maximum read I/O speed in operations per second.",
+                                                   "description" : "Maximum read I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_rd_length" : {
+                                                   "alias" : "iops_rd_max_length"
+                                                },
                                                 "iops_rd_max" : {
-                                                   "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled read I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_rd_max_length" : {
+                                                   "description" : "Maximum length of read I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "iops_wr" : {
-                                                   "description" : "Maximum write I/O speed in operations per second.",
+                                                   "description" : "Maximum write I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_wr_length" : {
+                                                   "alias" : "iops_wr_max_length"
+                                                },
                                                 "iops_wr_max" : {
-                                                   "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled write I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_wr_max_length" : {
+                                                   "description" : "Maximum length of write I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "mbps" : {
-                                                   "description" : "Maximum r/w speed speed in megabytes per second.",
+                                                   "description" : "Maximum r/w speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_max" : {
-                                                   "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled r/w pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_rd" : {
-                                                   "description" : "Maximum read speed speed in megabytes per second.",
+                                                   "description" : "Maximum read speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_rd_max" : {
-                                                   "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled read pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_wr" : {
-                                                   "description" : "Maximum write speed speed in megabytes per second.",
+                                                   "description" : "Maximum write speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_wr_max" : {
-                                                   "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled write pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
@@ -5506,6 +7926,12 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "replicate" : {
+                                                   "default" : 1,
+                                                   "description" : "Whether the drive should considered for replication jobs.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "rerror" : {
                                                    "description" : "Read error action.",
                                                    "enum" : [
@@ -5529,6 +7955,13 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "shared" : {
+                                                   "default" : 0,
+                                                   "description" : "Mark this locally-managed volume as available on all nodes",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+                                                },
                                                 "size" : {
                                                    "description" : "Disk size. This is purely informational and has no effect.",
                                                    "format" : "disk-size",
@@ -5537,7 +7970,7 @@ var pveapi = [
                                                    "type" : "string"
                                                 },
                                                 "snapshot" : {
-                                                   "description" : "Whether the drive should be included when making snapshots.",
+                                                   "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
@@ -5568,11 +8001,18 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_rd=<bps>] [,bps_wr=<bps>] [,cache=<none|writethrough|writeback|unsafe|directsync>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<image format>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enospc|ignore|report|stop>]"
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+                                          },
+                                          "ipconfig[n]" : {
+                                             "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit gateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using dhcp on IPv4.\n",
+                                             "format" : "pve-qm-ipconfig",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
                                           },
                                           "keyboard" : {
-                                             "default" : "en-us",
-                                             "description" : "Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.conf' configuration file.",
+                                             "default" : null,
+                                             "description" : "Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.cfg' configuration file.It should not be necessary to set it.",
                                              "enum" : [
                                                 "de",
                                                 "de-ch",
@@ -5607,12 +8047,14 @@ var pveapi = [
                                              "default" : 1,
                                              "description" : "Enable/disable KVM hardware virtualization.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "localtime" : {
                                              "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "lock" : {
                                              "description" : "Lock/unlock the VM.",
@@ -5638,7 +8080,7 @@ var pveapi = [
                                              "minimum" : 16,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (16- N)"
+                                             "typetext" : "<integer> (16 - N)"
                                           },
                                           "migrate_downtime" : {
                                              "default" : 0.1,
@@ -5646,7 +8088,7 @@ var pveapi = [
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "number",
-                                             "typetext" : "number (0- N)"
+                                             "typetext" : "<number> (0 - N)"
                                           },
                                           "migrate_speed" : {
                                              "default" : 0,
@@ -5654,13 +8096,21 @@ var pveapi = [
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (0- N)"
+                                             "typetext" : "<integer> (0 - N)"
                                           },
                                           "name" : {
                                              "description" : "Set a name for the VM. Only used on the configuration web interface.",
                                              "format" : "dns-name",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "nameserver" : {
+                                             "description" : "cloud-init: Sets DNS server IP address for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
+                                             "format" : "address-list",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "net[n]" : {
                                              "description" : "Specify network devices.",
@@ -5734,7 +8184,6 @@ var pveapi = [
                                                       "e1000-82544gc",
                                                       "e1000-82545em"
                                                    ],
-                                                   "format_description" : "model",
                                                    "type" : "string"
                                                 },
                                                 "ne2k_isa" : {
@@ -5791,18 +8240,20 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[model=]<model> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
+                                             "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "numa" : {
                                              "default" : 0,
                                              "description" : "Enable/disable NUMA.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "numa[n]" : {
                                              "description" : "NUMA topology.",
@@ -5844,7 +8295,8 @@ var pveapi = [
                                              "default" : 0,
                                              "description" : "Specifies whether a VM will be started during system bootup.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "ostype" : {
                                              "description" : "Specify guest operating system.",
@@ -5857,13 +8309,14 @@ var pveapi = [
                                                 "wvista",
                                                 "win7",
                                                 "win8",
+                                                "win10",
                                                 "l24",
                                                 "l26",
                                                 "solaris"
                                              ],
                                              "optional" : 1,
                                              "type" : "string",
-                                             "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6/3.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
+                                             "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6/3.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
                                           },
                                           "parallel[n]" : {
                                              "description" : "Map host parallel devices (n is 0 to 2).",
@@ -5876,19 +8329,22 @@ var pveapi = [
                                              "default" : 0,
                                              "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "reboot" : {
                                              "default" : 1,
                                              "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "revert" : {
                                              "description" : "Revert a pending change.",
                                              "format" : "pve-configid-list",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "sata[n]" : {
                                              "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
@@ -5908,20 +8364,47 @@ var pveapi = [
                                                    "type" : "boolean"
                                                 },
                                                 "bps" : {
-                                                   "description" : "Maximum r/w speed speed in bytes per second.",
+                                                   "description" : "Maximum r/w speed in bytes per second.",
+                                                   "format_description" : "bps",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "bps_max_length" : {
+                                                   "description" : "Maximum length of I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "bps_rd" : {
+                                                   "description" : "Maximum read speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
-                                                "bps_rd" : {
-                                                   "description" : "Maximum read speed speed in bytes per second.",
+                                                "bps_rd_length" : {
+                                                   "alias" : "bps_rd_max_length"
+                                                },
+                                                "bps_rd_max_length" : {
+                                                   "description" : "Maximum length of read I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "bps_wr" : {
+                                                   "description" : "Maximum write speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
-                                                "bps_wr" : {
-                                                   "description" : "Maximum write speed speed in bytes per second.",
-                                                   "format_description" : "bps",
+                                                "bps_wr_length" : {
+                                                   "alias" : "bps_wr_max_length"
+                                                },
+                                                "bps_wr_max_length" : {
+                                                   "description" : "Maximum length of write I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
@@ -5974,7 +8457,6 @@ var pveapi = [
                                                       "vmdk",
                                                       "cloop"
                                                    ],
-                                                   "format_description" : "image format",
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
@@ -5984,73 +8466,100 @@ var pveapi = [
                                                    "type" : "integer"
                                                 },
                                                 "iops" : {
-                                                   "description" : "Maximum r/w I/O speed in operations per second.",
+                                                   "description" : "Maximum r/w I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
                                                 "iops_max" : {
-                                                   "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_max_length" : {
+                                                   "description" : "Maximum length of I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "iops_rd" : {
-                                                   "description" : "Maximum read I/O speed in operations per second.",
+                                                   "description" : "Maximum read I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_rd_length" : {
+                                                   "alias" : "iops_rd_max_length"
+                                                },
                                                 "iops_rd_max" : {
-                                                   "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled read I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_rd_max_length" : {
+                                                   "description" : "Maximum length of read I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "iops_wr" : {
-                                                   "description" : "Maximum write I/O speed in operations per second.",
+                                                   "description" : "Maximum write I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_wr_length" : {
+                                                   "alias" : "iops_wr_max_length"
+                                                },
                                                 "iops_wr_max" : {
-                                                   "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled write I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_wr_max_length" : {
+                                                   "description" : "Maximum length of write I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "mbps" : {
-                                                   "description" : "Maximum r/w speed speed in megabytes per second.",
+                                                   "description" : "Maximum r/w speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_max" : {
-                                                   "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled r/w pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_rd" : {
-                                                   "description" : "Maximum read speed speed in megabytes per second.",
+                                                   "description" : "Maximum read speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_rd_max" : {
-                                                   "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled read pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_wr" : {
-                                                   "description" : "Maximum write speed speed in megabytes per second.",
+                                                   "description" : "Maximum write speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_wr_max" : {
-                                                   "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled write pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
@@ -6065,6 +8574,12 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "replicate" : {
+                                                   "default" : 1,
+                                                   "description" : "Whether the drive should considered for replication jobs.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "rerror" : {
                                                    "description" : "Read error action.",
                                                    "enum" : [
@@ -6088,6 +8603,13 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "shared" : {
+                                                   "default" : 0,
+                                                   "description" : "Mark this locally-managed volume as available on all nodes",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+                                                },
                                                 "size" : {
                                                    "description" : "Disk size. This is purely informational and has no effect.",
                                                    "format" : "disk-size",
@@ -6096,7 +8618,7 @@ var pveapi = [
                                                    "type" : "string"
                                                 },
                                                 "snapshot" : {
-                                                   "description" : "Whether the drive should be included when making snapshots.",
+                                                   "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
@@ -6127,7 +8649,7 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_rd=<bps>] [,bps_wr=<bps>] [,cache=<none|writethrough|writeback|unsafe|directsync>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<image format>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enospc|ignore|report|stop>]"
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
                                           },
                                           "scsi[n]" : {
                                              "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
@@ -6147,23 +8669,50 @@ var pveapi = [
                                                    "type" : "boolean"
                                                 },
                                                 "bps" : {
-                                                   "description" : "Maximum r/w speed speed in bytes per second.",
+                                                   "description" : "Maximum r/w speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "bps_max_length" : {
+                                                   "description" : "Maximum length of I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "bps_rd" : {
-                                                   "description" : "Maximum read speed speed in bytes per second.",
+                                                   "description" : "Maximum read speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "bps_rd_length" : {
+                                                   "alias" : "bps_rd_max_length"
+                                                },
+                                                "bps_rd_max_length" : {
+                                                   "description" : "Maximum length of read I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "bps_wr" : {
-                                                   "description" : "Maximum write speed speed in bytes per second.",
+                                                   "description" : "Maximum write speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "bps_wr_length" : {
+                                                   "alias" : "bps_wr_max_length"
+                                                },
+                                                "bps_wr_max_length" : {
+                                                   "description" : "Maximum length of write I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "cache" : {
                                                    "description" : "The drive's cache mode",
                                                    "enum" : [
@@ -6213,7 +8762,6 @@ var pveapi = [
                                                       "vmdk",
                                                       "cloop"
                                                    ],
-                                                   "format_description" : "image format",
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
@@ -6223,78 +8771,105 @@ var pveapi = [
                                                    "type" : "integer"
                                                 },
                                                 "iops" : {
-                                                   "description" : "Maximum r/w I/O speed in operations per second.",
+                                                   "description" : "Maximum r/w I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
                                                 "iops_max" : {
-                                                   "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_max_length" : {
+                                                   "description" : "Maximum length of I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "iops_rd" : {
-                                                   "description" : "Maximum read I/O speed in operations per second.",
+                                                   "description" : "Maximum read I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_rd_length" : {
+                                                   "alias" : "iops_rd_max_length"
+                                                },
                                                 "iops_rd_max" : {
-                                                   "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled read I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_rd_max_length" : {
+                                                   "description" : "Maximum length of read I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "iops_wr" : {
-                                                   "description" : "Maximum write I/O speed in operations per second.",
+                                                   "description" : "Maximum write I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_wr_length" : {
+                                                   "alias" : "iops_wr_max_length"
+                                                },
                                                 "iops_wr_max" : {
-                                                   "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled write I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_wr_max_length" : {
+                                                   "description" : "Maximum length of write I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "iothread" : {
                                                    "description" : "Whether to use iothreads for this drive",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
                                                 "mbps" : {
-                                                   "description" : "Maximum r/w speed speed in megabytes per second.",
+                                                   "description" : "Maximum r/w speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_max" : {
-                                                   "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled r/w pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_rd" : {
-                                                   "description" : "Maximum read speed speed in megabytes per second.",
+                                                   "description" : "Maximum read speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_rd_max" : {
-                                                   "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled read pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_wr" : {
-                                                   "description" : "Maximum write speed speed in megabytes per second.",
+                                                   "description" : "Maximum write speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_wr_max" : {
-                                                   "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled write pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
@@ -6315,6 +8890,28 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "replicate" : {
+                                                   "default" : 1,
+                                                   "description" : "Whether the drive should considered for replication jobs.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "rerror" : {
+                                                   "description" : "Read error action.",
+                                                   "enum" : [
+                                                      "ignore",
+                                                      "report",
+                                                      "stop"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "scsiblock" : {
+                                                   "default" : 0,
+                                                   "description" : "whether to use scsi-block for full passthrough of host block device\n\nWARNING: can lead to I/O errors in combination with low memory or high memory fragmentation on host",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "secs" : {
                                                    "description" : "Force the drive's physical geometry to have a specific sector count.",
                                                    "optional" : 1,
@@ -6328,6 +8925,13 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "shared" : {
+                                                   "default" : 0,
+                                                   "description" : "Mark this locally-managed volume as available on all nodes",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+                                                },
                                                 "size" : {
                                                    "description" : "Disk size. This is purely informational and has no effect.",
                                                    "format" : "disk-size",
@@ -6336,7 +8940,7 @@ var pveapi = [
                                                    "type" : "string"
                                                 },
                                                 "snapshot" : {
-                                                   "description" : "Whether the drive should be included when making snapshots.",
+                                                   "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
@@ -6367,7 +8971,7 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_rd=<bps>] [,bps_wr=<bps>] [,cache=<none|writethrough|writeback|unsafe|directsync>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<image format>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enospc|ignore|report|stop>]"
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
                                           },
                                           "scsihw" : {
                                              "default" : "lsi",
@@ -6383,6 +8987,12 @@ var pveapi = [
                                              "optional" : 1,
                                              "type" : "string"
                                           },
+                                          "searchdomain" : {
+                                             "description" : "cloud-init: Sets DNS search domains for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
                                           "serial[n]" : {
                                              "description" : "Create a serial device inside the VM (n is 0 to 3)",
                                              "optional" : 1,
@@ -6392,17 +9002,18 @@ var pveapi = [
                                           },
                                           "shares" : {
                                              "default" : 1000,
-                                             "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning",
+                                             "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning. Auto-ballooning is done by pvestatd.",
                                              "maximum" : 50000,
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (0-50000)"
+                                             "typetext" : "<integer> (0 - 50000)"
                                           },
                                           "skiplock" : {
                                              "description" : "Ignore locks - only root is allowed to use this option.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "smbios1" : {
                                              "description" : "Specify SMBIOS type 1 fields.",
@@ -6418,7 +9029,7 @@ var pveapi = [
                                              "minimum" : 1,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           },
                                           "sockets" : {
                                              "default" : 1,
@@ -6426,7 +9037,14 @@ var pveapi = [
                                              "minimum" : 1,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
+                                          },
+                                          "sshkeys" : {
+                                             "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
+                                             "format" : "urlencoded",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "startdate" : {
                                              "default" : "now",
@@ -6448,25 +9066,29 @@ var pveapi = [
                                              "description" : "Enable/disable the USB tablet device.",
                                              "optional" : 1,
                                              "type" : "boolean",
+                                             "typetext" : "<boolean>",
                                              "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (-vga=qxl)."
                                           },
                                           "tdf" : {
                                              "default" : 0,
                                              "description" : "Enable/disable time drift fix.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "template" : {
                                              "default" : 0,
                                              "description" : "Enable/disable Template.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "unused[n]" : {
                                              "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
                                              "format" : "pve-volume-id",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "usb[n]" : {
                                              "description" : "Configure an USB device (n is 0 to 4).",
@@ -6495,7 +9117,7 @@ var pveapi = [
                                              "minimum" : 1,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           },
                                           "vga" : {
                                              "description" : "Select the VGA type.",
@@ -6534,23 +9156,50 @@ var pveapi = [
                                                    "type" : "boolean"
                                                 },
                                                 "bps" : {
-                                                   "description" : "Maximum r/w speed speed in bytes per second.",
+                                                   "description" : "Maximum r/w speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "bps_max_length" : {
+                                                   "description" : "Maximum length of I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "bps_rd" : {
-                                                   "description" : "Maximum read speed speed in bytes per second.",
+                                                   "description" : "Maximum read speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "bps_rd_length" : {
+                                                   "alias" : "bps_rd_max_length"
+                                                },
+                                                "bps_rd_max_length" : {
+                                                   "description" : "Maximum length of read I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "bps_wr" : {
-                                                   "description" : "Maximum write speed speed in bytes per second.",
+                                                   "description" : "Maximum write speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "bps_wr_length" : {
+                                                   "alias" : "bps_wr_max_length"
+                                                },
+                                                "bps_wr_max_length" : {
+                                                   "description" : "Maximum length of write I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "cache" : {
                                                    "description" : "The drive's cache mode",
                                                    "enum" : [
@@ -6600,7 +9249,6 @@ var pveapi = [
                                                       "vmdk",
                                                       "cloop"
                                                    ],
-                                                   "format_description" : "image format",
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
@@ -6610,78 +9258,105 @@ var pveapi = [
                                                    "type" : "integer"
                                                 },
                                                 "iops" : {
-                                                   "description" : "Maximum r/w I/O speed in operations per second.",
+                                                   "description" : "Maximum r/w I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
                                                 "iops_max" : {
-                                                   "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_max_length" : {
+                                                   "description" : "Maximum length of I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "iops_rd" : {
-                                                   "description" : "Maximum read I/O speed in operations per second.",
+                                                   "description" : "Maximum read I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_rd_length" : {
+                                                   "alias" : "iops_rd_max_length"
+                                                },
                                                 "iops_rd_max" : {
-                                                   "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled read I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_rd_max_length" : {
+                                                   "description" : "Maximum length of read I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "iops_wr" : {
-                                                   "description" : "Maximum write I/O speed in operations per second.",
+                                                   "description" : "Maximum write I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_wr_length" : {
+                                                   "alias" : "iops_wr_max_length"
+                                                },
                                                 "iops_wr_max" : {
-                                                   "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled write I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_wr_max_length" : {
+                                                   "description" : "Maximum length of write I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "iothread" : {
                                                    "description" : "Whether to use iothreads for this drive",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
                                                 "mbps" : {
-                                                   "description" : "Maximum r/w speed speed in megabytes per second.",
+                                                   "description" : "Maximum r/w speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_max" : {
-                                                   "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled r/w pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_rd" : {
-                                                   "description" : "Maximum read speed speed in megabytes per second.",
+                                                   "description" : "Maximum read speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_rd_max" : {
-                                                   "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled read pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_wr" : {
-                                                   "description" : "Maximum write speed speed in megabytes per second.",
+                                                   "description" : "Maximum write speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_wr_max" : {
-                                                   "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled write pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
@@ -6696,6 +9371,12 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "replicate" : {
+                                                   "default" : 1,
+                                                   "description" : "Whether the drive should considered for replication jobs.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "rerror" : {
                                                    "description" : "Read error action.",
                                                    "enum" : [
@@ -6719,6 +9400,13 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "shared" : {
+                                                   "default" : 0,
+                                                   "description" : "Mark this locally-managed volume as available on all nodes",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+                                                },
                                                 "size" : {
                                                    "description" : "Disk size. This is purely informational and has no effect.",
                                                    "format" : "disk-size",
@@ -6727,7 +9415,7 @@ var pveapi = [
                                                    "type" : "string"
                                                 },
                                                 "snapshot" : {
-                                                   "description" : "Whether the drive should be included when making snapshots.",
+                                                   "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
@@ -6758,21 +9446,28 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_rd=<bps>] [,bps_wr=<bps>] [,cache=<none|writethrough|writeback|unsafe|directsync>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<image format>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enospc|ignore|report|stop>]"
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
+                                          },
+                                          "vmstatestorage" : {
+                                             "description" : "Default storage for VM state volumes/files.",
+                                             "format" : "pve-storage-id",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "watchdog" : {
                                              "description" : "Create a virtual hardware watchdog device.",
                                              "format" : "pve-qm-watchdog",
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[[model=]<i6300esb|ib700>] [,action=<reset|shutdown|poweroff|pause|debug|none>]",
+                                             "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
                                              "verbose_description" : "Create a virtual hardware watchdog device. Once enabled (by a guest action), the watchdog must be periodically polled by an agent inside the guest or else the watchdog will reset the guest (or execute the respective action specified)"
                                           }
                                        }
@@ -6812,32 +9507,36 @@ var pveapi = [
                                              "default" : 1,
                                              "description" : "Enable/disable ACPI.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "agent" : {
                                              "default" : 0,
                                              "description" : "Enable/disable Qemu GuestAgent.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "args" : {
                                              "description" : "Arbitrary arguments passed to kvm.",
                                              "optional" : 1,
                                              "type" : "string",
+                                             "typetext" : "<string>",
                                              "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
                                           },
                                           "autostart" : {
                                              "default" : 0,
                                              "description" : "Automatic restart after crash (currently ignored).",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "balloon" : {
                                              "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (0- N)"
+                                             "typetext" : "<integer> (0 - N)"
                                           },
                                           "bios" : {
                                              "default" : "seabios",
@@ -6865,10 +9564,31 @@ var pveapi = [
                                           },
                                           "cdrom" : {
                                              "description" : "This is an alias for option -ide2",
-                                             "format" : "pve-qm-drive",
+                                             "format" : "pve-qm-ide",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<volume>"
+                                          },
+                                          "cipassword" : {
+                                             "description" : "cloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "citype" : {
+                                             "description" : "Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.",
+                                             "enum" : [
+                                                "configdrive2",
+                                                "nocloud"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "ciuser" : {
+                                             "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "volume"
+                                             "typetext" : "<string>"
                                           },
                                           "cores" : {
                                              "default" : 1,
@@ -6876,7 +9596,7 @@ var pveapi = [
                                              "minimum" : 1,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           },
                                           "cpu" : {
                                              "description" : "Emulated CPU type.",
@@ -6889,17 +9609,26 @@ var pveapi = [
                                                       "486",
                                                       "athlon",
                                                       "Broadwell",
+                                                      "Broadwell-IBRS",
                                                       "Broadwell-noTSX",
+                                                      "Broadwell-noTSX-IBRS",
                                                       "Conroe",
                                                       "core2duo",
                                                       "coreduo",
+                                                      "EPYC",
+                                                      "EPYC-IBPB",
                                                       "Haswell",
+                                                      "Haswell-IBRS",
                                                       "Haswell-noTSX",
+                                                      "Haswell-noTSX-IBRS",
                                                       "host",
                                                       "IvyBridge",
+                                                      "IvyBridge-IBRS",
                                                       "kvm32",
                                                       "kvm64",
+                                                      "max",
                                                       "Nehalem",
+                                                      "Nehalem-IBRS",
                                                       "Opteron_G1",
                                                       "Opteron_G2",
                                                       "Opteron_G3",
@@ -6913,9 +9642,21 @@ var pveapi = [
                                                       "qemu32",
                                                       "qemu64",
                                                       "SandyBridge",
-                                                      "Westmere"
+                                                      "SandyBridge-IBRS",
+                                                      "Skylake-Client",
+                                                      "Skylake-Client-IBRS",
+                                                      "Skylake-Server",
+                                                      "Skylake-Server-IBRS",
+                                                      "Westmere",
+                                                      "Westmere-IBRS"
                                                    ],
-                                                   "format_description" : "cputype",
+                                                   "type" : "string"
+                                                },
+                                                "flags" : {
+                                                   "description" : "List of additional CPU flags separated by ';'. Use '+FLAG' to enable, '-FLAG' to disable a flag. Currently supported flags: 'pcid', 'spec-ctrl'.",
+                                                   "format_description" : "+FLAG[;-FLAG...]",
+                                                   "optional" : 1,
+                                                   "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl))(;(?^:[+-](pcid|spec-ctrl)))*)",
                                                    "type" : "string"
                                                 },
                                                 "hidden" : {
@@ -6927,7 +9668,7 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[cputype=]<cputype> [,hidden=<1|0>]"
+                                             "typetext" : "[cputype=]<enum> [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>]"
                                           },
                                           "cpulimit" : {
                                              "default" : 0,
@@ -6936,53 +9677,58 @@ var pveapi = [
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "number",
-                                             "typetext" : "number (0-128)",
+                                             "typetext" : "<number> (0 - 128)",
                                              "verbose_description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit."
                                           },
                                           "cpuunits" : {
-                                             "default" : 1000,
+                                             "default" : 1024,
                                              "description" : "CPU weight for a VM.",
-                                             "maximum" : 500000,
-                                             "minimum" : 0,
+                                             "maximum" : 262144,
+                                             "minimum" : 2,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (0-500000)",
-                                             "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0."
+                                             "typetext" : "<integer> (2 - 262144)",
+                                             "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs."
                                           },
                                           "delete" : {
                                              "description" : "A list of settings you want to delete.",
                                              "format" : "pve-configid-list",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "description" : {
                                              "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file.",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "digest" : {
                                              "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
                                              "maxLength" : 40,
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "force" : {
                                              "description" : "Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.",
                                              "optional" : 1,
                                              "requires" : "delete",
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "freeze" : {
                                              "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "hostpci[n]" : {
                                              "description" : "Map host PCI devices into guest.",
                                              "format" : "pve-qm-hostpci",
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,pcie=<1|0>] [,rombar=<1|0>] [,x-vga=<1|0>]",
+                                             "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,x-vga=<1|0>]",
                                              "verbose_description" : "Map host PCI devices into guest.\n\nNOTE: This option allows direct access to host hardware. So it is no longer \npossible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
                                           },
                                           "hotplug" : {
@@ -6990,7 +9736,8 @@ var pveapi = [
                                              "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Value '1' is an alias for the default 'network,disk,usb'.",
                                              "format" : "pve-hotplug-features",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "hugepages" : {
                                              "description" : "Enable/disable hugepages memory.",
@@ -7020,23 +9767,50 @@ var pveapi = [
                                                    "type" : "boolean"
                                                 },
                                                 "bps" : {
-                                                   "description" : "Maximum r/w speed speed in bytes per second.",
+                                                   "description" : "Maximum r/w speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "bps_max_length" : {
+                                                   "description" : "Maximum length of I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "bps_rd" : {
-                                                   "description" : "Maximum read speed speed in bytes per second.",
+                                                   "description" : "Maximum read speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "bps_rd_length" : {
+                                                   "alias" : "bps_rd_max_length"
+                                                },
+                                                "bps_rd_max_length" : {
+                                                   "description" : "Maximum length of read I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "bps_wr" : {
-                                                   "description" : "Maximum write speed speed in bytes per second.",
+                                                   "description" : "Maximum write speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "bps_wr_length" : {
+                                                   "alias" : "bps_wr_max_length"
+                                                },
+                                                "bps_wr_max_length" : {
+                                                   "description" : "Maximum length of write I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "cache" : {
                                                    "description" : "The drive's cache mode",
                                                    "enum" : [
@@ -7086,7 +9860,6 @@ var pveapi = [
                                                       "vmdk",
                                                       "cloop"
                                                    ],
-                                                   "format_description" : "image format",
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
@@ -7096,73 +9869,100 @@ var pveapi = [
                                                    "type" : "integer"
                                                 },
                                                 "iops" : {
-                                                   "description" : "Maximum r/w I/O speed in operations per second.",
+                                                   "description" : "Maximum r/w I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
                                                 "iops_max" : {
-                                                   "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_max_length" : {
+                                                   "description" : "Maximum length of I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "iops_rd" : {
-                                                   "description" : "Maximum read I/O speed in operations per second.",
+                                                   "description" : "Maximum read I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_rd_length" : {
+                                                   "alias" : "iops_rd_max_length"
+                                                },
                                                 "iops_rd_max" : {
-                                                   "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled read I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_rd_max_length" : {
+                                                   "description" : "Maximum length of read I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "iops_wr" : {
-                                                   "description" : "Maximum write I/O speed in operations per second.",
+                                                   "description" : "Maximum write I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_wr_length" : {
+                                                   "alias" : "iops_wr_max_length"
+                                                },
                                                 "iops_wr_max" : {
-                                                   "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled write I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_wr_max_length" : {
+                                                   "description" : "Maximum length of write I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "mbps" : {
-                                                   "description" : "Maximum r/w speed speed in megabytes per second.",
+                                                   "description" : "Maximum r/w speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_max" : {
-                                                   "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled r/w pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_rd" : {
-                                                   "description" : "Maximum read speed speed in megabytes per second.",
+                                                   "description" : "Maximum read speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_rd_max" : {
-                                                   "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled read pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_wr" : {
-                                                   "description" : "Maximum write speed speed in megabytes per second.",
+                                                   "description" : "Maximum write speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_wr_max" : {
-                                                   "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled write pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
@@ -7185,6 +9985,12 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "replicate" : {
+                                                   "default" : 1,
+                                                   "description" : "Whether the drive should considered for replication jobs.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "rerror" : {
                                                    "description" : "Read error action.",
                                                    "enum" : [
@@ -7208,6 +10014,13 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "shared" : {
+                                                   "default" : 0,
+                                                   "description" : "Mark this locally-managed volume as available on all nodes",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+                                                },
                                                 "size" : {
                                                    "description" : "Disk size. This is purely informational and has no effect.",
                                                    "format" : "disk-size",
@@ -7216,7 +10029,7 @@ var pveapi = [
                                                    "type" : "string"
                                                 },
                                                 "snapshot" : {
-                                                   "description" : "Whether the drive should be included when making snapshots.",
+                                                   "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
@@ -7247,11 +10060,18 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_rd=<bps>] [,bps_wr=<bps>] [,cache=<none|writethrough|writeback|unsafe|directsync>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<image format>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enospc|ignore|report|stop>]"
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+                                          },
+                                          "ipconfig[n]" : {
+                                             "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit gateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using dhcp on IPv4.\n",
+                                             "format" : "pve-qm-ipconfig",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
                                           },
                                           "keyboard" : {
-                                             "default" : "en-us",
-                                             "description" : "Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.conf' configuration file.",
+                                             "default" : null,
+                                             "description" : "Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.cfg' configuration file.It should not be necessary to set it.",
                                              "enum" : [
                                                 "de",
                                                 "de-ch",
@@ -7286,12 +10106,14 @@ var pveapi = [
                                              "default" : 1,
                                              "description" : "Enable/disable KVM hardware virtualization.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "localtime" : {
                                              "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "lock" : {
                                              "description" : "Lock/unlock the VM.",
@@ -7317,7 +10139,7 @@ var pveapi = [
                                              "minimum" : 16,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (16- N)"
+                                             "typetext" : "<integer> (16 - N)"
                                           },
                                           "migrate_downtime" : {
                                              "default" : 0.1,
@@ -7325,7 +10147,7 @@ var pveapi = [
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "number",
-                                             "typetext" : "number (0- N)"
+                                             "typetext" : "<number> (0 - N)"
                                           },
                                           "migrate_speed" : {
                                              "default" : 0,
@@ -7333,13 +10155,21 @@ var pveapi = [
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (0- N)"
+                                             "typetext" : "<integer> (0 - N)"
                                           },
                                           "name" : {
                                              "description" : "Set a name for the VM. Only used on the configuration web interface.",
                                              "format" : "dns-name",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "nameserver" : {
+                                             "description" : "cloud-init: Sets DNS server IP address for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
+                                             "format" : "address-list",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "net[n]" : {
                                              "description" : "Specify network devices.",
@@ -7413,7 +10243,6 @@ var pveapi = [
                                                       "e1000-82544gc",
                                                       "e1000-82545em"
                                                    ],
-                                                   "format_description" : "model",
                                                    "type" : "string"
                                                 },
                                                 "ne2k_isa" : {
@@ -7470,18 +10299,20 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[model=]<model> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
+                                             "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "numa" : {
                                              "default" : 0,
                                              "description" : "Enable/disable NUMA.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "numa[n]" : {
                                              "description" : "NUMA topology.",
@@ -7523,7 +10354,8 @@ var pveapi = [
                                              "default" : 0,
                                              "description" : "Specifies whether a VM will be started during system bootup.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "ostype" : {
                                              "description" : "Specify guest operating system.",
@@ -7536,13 +10368,14 @@ var pveapi = [
                                                 "wvista",
                                                 "win7",
                                                 "win8",
+                                                "win10",
                                                 "l24",
                                                 "l26",
                                                 "solaris"
                                              ],
                                              "optional" : 1,
                                              "type" : "string",
-                                             "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6/3.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
+                                             "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6/3.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
                                           },
                                           "parallel[n]" : {
                                              "description" : "Map host parallel devices (n is 0 to 2).",
@@ -7555,19 +10388,22 @@ var pveapi = [
                                              "default" : 0,
                                              "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "reboot" : {
                                              "default" : 1,
                                              "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "revert" : {
                                              "description" : "Revert a pending change.",
                                              "format" : "pve-configid-list",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "sata[n]" : {
                                              "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
@@ -7587,23 +10423,50 @@ var pveapi = [
                                                    "type" : "boolean"
                                                 },
                                                 "bps" : {
-                                                   "description" : "Maximum r/w speed speed in bytes per second.",
+                                                   "description" : "Maximum r/w speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "bps_max_length" : {
+                                                   "description" : "Maximum length of I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "bps_rd" : {
-                                                   "description" : "Maximum read speed speed in bytes per second.",
+                                                   "description" : "Maximum read speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "bps_rd_length" : {
+                                                   "alias" : "bps_rd_max_length"
+                                                },
+                                                "bps_rd_max_length" : {
+                                                   "description" : "Maximum length of read I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "bps_wr" : {
-                                                   "description" : "Maximum write speed speed in bytes per second.",
+                                                   "description" : "Maximum write speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "bps_wr_length" : {
+                                                   "alias" : "bps_wr_max_length"
+                                                },
+                                                "bps_wr_max_length" : {
+                                                   "description" : "Maximum length of write I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "cache" : {
                                                    "description" : "The drive's cache mode",
                                                    "enum" : [
@@ -7653,7 +10516,6 @@ var pveapi = [
                                                       "vmdk",
                                                       "cloop"
                                                    ],
-                                                   "format_description" : "image format",
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
@@ -7663,73 +10525,100 @@ var pveapi = [
                                                    "type" : "integer"
                                                 },
                                                 "iops" : {
-                                                   "description" : "Maximum r/w I/O speed in operations per second.",
+                                                   "description" : "Maximum r/w I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
                                                 "iops_max" : {
-                                                   "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_max_length" : {
+                                                   "description" : "Maximum length of I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "iops_rd" : {
-                                                   "description" : "Maximum read I/O speed in operations per second.",
+                                                   "description" : "Maximum read I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_rd_length" : {
+                                                   "alias" : "iops_rd_max_length"
+                                                },
                                                 "iops_rd_max" : {
-                                                   "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled read I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_rd_max_length" : {
+                                                   "description" : "Maximum length of read I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "iops_wr" : {
-                                                   "description" : "Maximum write I/O speed in operations per second.",
+                                                   "description" : "Maximum write I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_wr_length" : {
+                                                   "alias" : "iops_wr_max_length"
+                                                },
                                                 "iops_wr_max" : {
-                                                   "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled write I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_wr_max_length" : {
+                                                   "description" : "Maximum length of write I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "mbps" : {
-                                                   "description" : "Maximum r/w speed speed in megabytes per second.",
+                                                   "description" : "Maximum r/w speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_max" : {
-                                                   "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled r/w pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_rd" : {
-                                                   "description" : "Maximum read speed speed in megabytes per second.",
+                                                   "description" : "Maximum read speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_rd_max" : {
-                                                   "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled read pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_wr" : {
-                                                   "description" : "Maximum write speed speed in megabytes per second.",
+                                                   "description" : "Maximum write speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_wr_max" : {
-                                                   "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled write pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
@@ -7744,6 +10633,12 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "replicate" : {
+                                                   "default" : 1,
+                                                   "description" : "Whether the drive should considered for replication jobs.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "rerror" : {
                                                    "description" : "Read error action.",
                                                    "enum" : [
@@ -7767,6 +10662,13 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "shared" : {
+                                                   "default" : 0,
+                                                   "description" : "Mark this locally-managed volume as available on all nodes",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+                                                },
                                                 "size" : {
                                                    "description" : "Disk size. This is purely informational and has no effect.",
                                                    "format" : "disk-size",
@@ -7775,7 +10677,7 @@ var pveapi = [
                                                    "type" : "string"
                                                 },
                                                 "snapshot" : {
-                                                   "description" : "Whether the drive should be included when making snapshots.",
+                                                   "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
@@ -7806,7 +10708,7 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_rd=<bps>] [,bps_wr=<bps>] [,cache=<none|writethrough|writeback|unsafe|directsync>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<image format>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enospc|ignore|report|stop>]"
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
                                           },
                                           "scsi[n]" : {
                                              "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
@@ -7826,23 +10728,50 @@ var pveapi = [
                                                    "type" : "boolean"
                                                 },
                                                 "bps" : {
-                                                   "description" : "Maximum r/w speed speed in bytes per second.",
+                                                   "description" : "Maximum r/w speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "bps_max_length" : {
+                                                   "description" : "Maximum length of I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "bps_rd" : {
-                                                   "description" : "Maximum read speed speed in bytes per second.",
+                                                   "description" : "Maximum read speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "bps_rd_length" : {
+                                                   "alias" : "bps_rd_max_length"
+                                                },
+                                                "bps_rd_max_length" : {
+                                                   "description" : "Maximum length of read I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "bps_wr" : {
-                                                   "description" : "Maximum write speed speed in bytes per second.",
+                                                   "description" : "Maximum write speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "bps_wr_length" : {
+                                                   "alias" : "bps_wr_max_length"
+                                                },
+                                                "bps_wr_max_length" : {
+                                                   "description" : "Maximum length of write I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "cache" : {
                                                    "description" : "The drive's cache mode",
                                                    "enum" : [
@@ -7892,7 +10821,6 @@ var pveapi = [
                                                       "vmdk",
                                                       "cloop"
                                                    ],
-                                                   "format_description" : "image format",
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
@@ -7902,78 +10830,105 @@ var pveapi = [
                                                    "type" : "integer"
                                                 },
                                                 "iops" : {
-                                                   "description" : "Maximum r/w I/O speed in operations per second.",
+                                                   "description" : "Maximum r/w I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
                                                 "iops_max" : {
-                                                   "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_max_length" : {
+                                                   "description" : "Maximum length of I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "iops_rd" : {
-                                                   "description" : "Maximum read I/O speed in operations per second.",
+                                                   "description" : "Maximum read I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_rd_length" : {
+                                                   "alias" : "iops_rd_max_length"
+                                                },
                                                 "iops_rd_max" : {
-                                                   "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled read I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_rd_max_length" : {
+                                                   "description" : "Maximum length of read I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "iops_wr" : {
-                                                   "description" : "Maximum write I/O speed in operations per second.",
+                                                   "description" : "Maximum write I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_wr_length" : {
+                                                   "alias" : "iops_wr_max_length"
+                                                },
                                                 "iops_wr_max" : {
-                                                   "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled write I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_wr_max_length" : {
+                                                   "description" : "Maximum length of write I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "iothread" : {
                                                    "description" : "Whether to use iothreads for this drive",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
                                                 "mbps" : {
-                                                   "description" : "Maximum r/w speed speed in megabytes per second.",
+                                                   "description" : "Maximum r/w speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_max" : {
-                                                   "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled r/w pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_rd" : {
-                                                   "description" : "Maximum read speed speed in megabytes per second.",
+                                                   "description" : "Maximum read speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_rd_max" : {
-                                                   "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled read pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_wr" : {
-                                                   "description" : "Maximum write speed speed in megabytes per second.",
+                                                   "description" : "Maximum write speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_wr_max" : {
-                                                   "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled write pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
@@ -7994,6 +10949,28 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "replicate" : {
+                                                   "default" : 1,
+                                                   "description" : "Whether the drive should considered for replication jobs.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "rerror" : {
+                                                   "description" : "Read error action.",
+                                                   "enum" : [
+                                                      "ignore",
+                                                      "report",
+                                                      "stop"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "scsiblock" : {
+                                                   "default" : 0,
+                                                   "description" : "whether to use scsi-block for full passthrough of host block device\n\nWARNING: can lead to I/O errors in combination with low memory or high memory fragmentation on host",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "secs" : {
                                                    "description" : "Force the drive's physical geometry to have a specific sector count.",
                                                    "optional" : 1,
@@ -8007,6 +10984,13 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "shared" : {
+                                                   "default" : 0,
+                                                   "description" : "Mark this locally-managed volume as available on all nodes",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+                                                },
                                                 "size" : {
                                                    "description" : "Disk size. This is purely informational and has no effect.",
                                                    "format" : "disk-size",
@@ -8015,7 +10999,7 @@ var pveapi = [
                                                    "type" : "string"
                                                 },
                                                 "snapshot" : {
-                                                   "description" : "Whether the drive should be included when making snapshots.",
+                                                   "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
@@ -8046,7 +11030,7 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_rd=<bps>] [,bps_wr=<bps>] [,cache=<none|writethrough|writeback|unsafe|directsync>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<image format>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enospc|ignore|report|stop>]"
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
                                           },
                                           "scsihw" : {
                                              "default" : "lsi",
@@ -8062,6 +11046,12 @@ var pveapi = [
                                              "optional" : 1,
                                              "type" : "string"
                                           },
+                                          "searchdomain" : {
+                                             "description" : "cloud-init: Sets DNS search domains for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
                                           "serial[n]" : {
                                              "description" : "Create a serial device inside the VM (n is 0 to 3)",
                                              "optional" : 1,
@@ -8071,17 +11061,18 @@ var pveapi = [
                                           },
                                           "shares" : {
                                              "default" : 1000,
-                                             "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning",
+                                             "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning. Auto-ballooning is done by pvestatd.",
                                              "maximum" : 50000,
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (0-50000)"
+                                             "typetext" : "<integer> (0 - 50000)"
                                           },
                                           "skiplock" : {
                                              "description" : "Ignore locks - only root is allowed to use this option.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "smbios1" : {
                                              "description" : "Specify SMBIOS type 1 fields.",
@@ -8097,7 +11088,7 @@ var pveapi = [
                                              "minimum" : 1,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           },
                                           "sockets" : {
                                              "default" : 1,
@@ -8105,7 +11096,14 @@ var pveapi = [
                                              "minimum" : 1,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
+                                          },
+                                          "sshkeys" : {
+                                             "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
+                                             "format" : "urlencoded",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "startdate" : {
                                              "default" : "now",
@@ -8127,25 +11125,29 @@ var pveapi = [
                                              "description" : "Enable/disable the USB tablet device.",
                                              "optional" : 1,
                                              "type" : "boolean",
+                                             "typetext" : "<boolean>",
                                              "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (-vga=qxl)."
                                           },
                                           "tdf" : {
                                              "default" : 0,
                                              "description" : "Enable/disable time drift fix.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "template" : {
                                              "default" : 0,
                                              "description" : "Enable/disable Template.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "unused[n]" : {
                                              "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
                                              "format" : "pve-volume-id",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "usb[n]" : {
                                              "description" : "Configure an USB device (n is 0 to 4).",
@@ -8174,7 +11176,7 @@ var pveapi = [
                                              "minimum" : 1,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           },
                                           "vga" : {
                                              "description" : "Select the VGA type.",
@@ -8213,23 +11215,50 @@ var pveapi = [
                                                    "type" : "boolean"
                                                 },
                                                 "bps" : {
-                                                   "description" : "Maximum r/w speed speed in bytes per second.",
+                                                   "description" : "Maximum r/w speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "bps_max_length" : {
+                                                   "description" : "Maximum length of I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "bps_rd" : {
-                                                   "description" : "Maximum read speed speed in bytes per second.",
+                                                   "description" : "Maximum read speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "bps_rd_length" : {
+                                                   "alias" : "bps_rd_max_length"
+                                                },
+                                                "bps_rd_max_length" : {
+                                                   "description" : "Maximum length of read I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "bps_wr" : {
-                                                   "description" : "Maximum write speed speed in bytes per second.",
+                                                   "description" : "Maximum write speed in bytes per second.",
                                                    "format_description" : "bps",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "bps_wr_length" : {
+                                                   "alias" : "bps_wr_max_length"
+                                                },
+                                                "bps_wr_max_length" : {
+                                                   "description" : "Maximum length of write I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "cache" : {
                                                    "description" : "The drive's cache mode",
                                                    "enum" : [
@@ -8279,7 +11308,6 @@ var pveapi = [
                                                       "vmdk",
                                                       "cloop"
                                                    ],
-                                                   "format_description" : "image format",
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
@@ -8289,78 +11317,105 @@ var pveapi = [
                                                    "type" : "integer"
                                                 },
                                                 "iops" : {
-                                                   "description" : "Maximum r/w I/O speed in operations per second.",
+                                                   "description" : "Maximum r/w I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
                                                 "iops_max" : {
-                                                   "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_max_length" : {
+                                                   "description" : "Maximum length of I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "iops_rd" : {
-                                                   "description" : "Maximum read I/O speed in operations per second.",
+                                                   "description" : "Maximum read I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_rd_length" : {
+                                                   "alias" : "iops_rd_max_length"
+                                                },
                                                 "iops_rd_max" : {
-                                                   "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled read I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_rd_max_length" : {
+                                                   "description" : "Maximum length of read I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "iops_wr" : {
-                                                   "description" : "Maximum write I/O speed in operations per second.",
+                                                   "description" : "Maximum write I/O in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_wr_length" : {
+                                                   "alias" : "iops_wr_max_length"
+                                                },
                                                 "iops_wr_max" : {
-                                                   "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+                                                   "description" : "Maximum unthrottled write I/O pool in operations per second.",
                                                    "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iops_wr_max_length" : {
+                                                   "description" : "Maximum length of write I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "iothread" : {
                                                    "description" : "Whether to use iothreads for this drive",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
                                                 "mbps" : {
-                                                   "description" : "Maximum r/w speed speed in megabytes per second.",
+                                                   "description" : "Maximum r/w speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_max" : {
-                                                   "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled r/w pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_rd" : {
-                                                   "description" : "Maximum read speed speed in megabytes per second.",
+                                                   "description" : "Maximum read speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_rd_max" : {
-                                                   "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled read pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_wr" : {
-                                                   "description" : "Maximum write speed speed in megabytes per second.",
+                                                   "description" : "Maximum write speed in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
                                                 },
                                                 "mbps_wr_max" : {
-                                                   "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+                                                   "description" : "Maximum unthrottled write pool in megabytes per second.",
                                                    "format_description" : "mbps",
                                                    "optional" : 1,
                                                    "type" : "number"
@@ -8375,6 +11430,12 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "replicate" : {
+                                                   "default" : 1,
+                                                   "description" : "Whether the drive should considered for replication jobs.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "rerror" : {
                                                    "description" : "Read error action.",
                                                    "enum" : [
@@ -8398,6 +11459,13 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "shared" : {
+                                                   "default" : 0,
+                                                   "description" : "Mark this locally-managed volume as available on all nodes",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+                                                },
                                                 "size" : {
                                                    "description" : "Disk size. This is purely informational and has no effect.",
                                                    "format" : "disk-size",
@@ -8406,7 +11474,7 @@ var pveapi = [
                                                    "type" : "string"
                                                 },
                                                 "snapshot" : {
-                                                   "description" : "Whether the drive should be included when making snapshots.",
+                                                   "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
@@ -8437,21 +11505,28 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_rd=<bps>] [,bps_wr=<bps>] [,cache=<none|writethrough|writeback|unsafe|directsync>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<image format>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enospc|ignore|report|stop>]"
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
+                                          },
+                                          "vmstatestorage" : {
+                                             "description" : "Default storage for VM state volumes/files.",
+                                             "format" : "pve-storage-id",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "watchdog" : {
                                              "description" : "Create a virtual hardware watchdog device.",
                                              "format" : "pve-qm-watchdog",
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[[model=]<i6300esb|ib700>] [,action=<reset|shutdown|poweroff|pause|debug|none>]",
+                                             "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
                                              "verbose_description" : "Create a virtual hardware watchdog device. Once enabled (by a guest action), the watchdog must be periodically polled by an agent inside the guest or else the watchdog will reset the guest (or execute the respective action specified)"
                                           }
                                        }
@@ -8496,14 +11571,15 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -8564,24 +11640,27 @@ var pveapi = [
                                           "force" : {
                                              "description" : "Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "idlist" : {
                                              "description" : "A list of disk IDs you want to delete.",
                                              "format" : "pve-configid-list",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -8617,19 +11696,21 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           },
                                           "websocket" : {
                                              "description" : "starts websockify instead of vncproxy",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           }
                                        }
                                     },
@@ -8669,6 +11750,74 @@ var pveapi = [
                               "path" : "/nodes/{node}/qemu/{vmid}/vncproxy",
                               "text" : "vncproxy"
                            },
+                           {
+                              "info" : {
+                                 "POST" : {
+                                    "description" : "Creates a TCP proxy connections.",
+                                    "method" : "POST",
+                                    "name" : "termproxy",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "serial" : {
+                                             "description" : "opens a serial terminal (defaults to display)",
+                                             "enum" : [
+                                                "serial0",
+                                                "serial1",
+                                                "serial2",
+                                                "serial3"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "vmid" : {
+                                             "description" : "The (unique) ID of the VM.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/vms/{vmid}",
+                                          [
+                                             "VM.Console"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "returns" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "port" : {
+                                             "type" : "integer"
+                                          },
+                                          "ticket" : {
+                                             "type" : "string"
+                                          },
+                                          "upid" : {
+                                             "type" : "string"
+                                          },
+                                          "user" : {
+                                             "type" : "string"
+                                          }
+                                       }
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/qemu/{vmid}/termproxy",
+                              "text" : "termproxy"
+                           },
                            {
                               "info" : {
                                  "GET" : {
@@ -8681,26 +11830,28 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "port" : {
                                              "description" : "Port number returned by previous vncproxy call.",
                                              "maximum" : 5999,
                                              "minimum" : 5900,
                                              "type" : "integer",
-                                             "typetext" : "integer (5900-5999)"
+                                             "typetext" : "<integer> (5900 - 5999)"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           },
                                           "vncticket" : {
                                              "description" : "Ticket from previous call to vncproxy.",
                                              "maxLength" : 512,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           }
                                        }
                                     },
@@ -8740,20 +11891,22 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "proxy" : {
                                              "description" : "SPICE proxy server. This can be used by the client to specify the proxy server. All nodes in a cluster runs 'spiceproxy', so it is up to the client to choose one. By default, we return the node where the VM is currently running. As resonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI).",
                                              "format" : "address",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -8809,14 +11962,15 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -8860,30 +12014,56 @@ var pveapi = [
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
                                                    "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "migration_network" : {
+                                                   "description" : "CIDR of the (sub) network that is used for migration.",
+                                                   "format" : "CIDR",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "migration_type" : {
+                                                   "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
+                                                   "enum" : [
+                                                      "secure",
+                                                      "insecure"
+                                                   ],
+                                                   "optional" : 1,
                                                    "type" : "string"
                                                 },
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "skiplock" : {
                                                    "description" : "Ignore locks - only root is allowed to use this option.",
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
                                                 "stateuri" : {
                                                    "description" : "Some command save/restore state from this location.",
                                                    "maxLength" : 128,
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "targetstorage" : {
+                                                   "description" : "Target storage for the migration. (Can be '1' to use the same storage id as on the source node.)",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -8918,39 +12098,43 @@ var pveapi = [
                                              "properties" : {
                                                 "keepActive" : {
                                                    "default" : 0,
-                                                   "description" : "Do not decativate storage volumes.",
+                                                   "description" : "Do not deactivate storage volumes.",
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
                                                 "migratedfrom" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "skiplock" : {
                                                    "description" : "Ignore locks - only root is allowed to use this option.",
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
                                                 "timeout" : {
                                                    "description" : "Wait maximal timeout seconds.",
                                                    "minimum" : 0,
                                                    "optional" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (0- N)"
+                                                   "typetext" : "<integer> (0 - N)"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -8986,19 +12170,21 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "skiplock" : {
                                                    "description" : "Ignore locks - only root is allowed to use this option.",
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -9035,37 +12221,41 @@ var pveapi = [
                                                    "default" : 0,
                                                    "description" : "Make sure the VM stops.",
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
                                                 "keepActive" : {
                                                    "default" : 0,
-                                                   "description" : "Do not decativate storage volumes.",
+                                                   "description" : "Do not deactivate storage volumes.",
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "skiplock" : {
                                                    "description" : "Ignore locks - only root is allowed to use this option.",
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
                                                 "timeout" : {
                                                    "description" : "Wait maximal timeout seconds.",
                                                    "minimum" : 0,
                                                    "optional" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (0- N)"
+                                                   "typetext" : "<integer> (0 - N)"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -9101,19 +12291,21 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "skiplock" : {
                                                    "description" : "Ignore locks - only root is allowed to use this option.",
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -9148,24 +12340,27 @@ var pveapi = [
                                              "properties" : {
                                                 "nocheck" : {
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "skiplock" : {
                                                    "description" : "Ignore locks - only root is allowed to use this option.",
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -9201,14 +12396,15 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -9250,24 +12446,27 @@ var pveapi = [
                                        "properties" : {
                                           "key" : {
                                              "description" : "The key (qemu monitor encoding).",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "skiplock" : {
                                              "description" : "Ignore locks - only root is allowed to use this option.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -9312,21 +12511,23 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "snapname" : {
                                              "description" : "The name of the snapshot.",
                                              "format" : "pve-configid",
                                              "maxLength" : 40,
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -9373,75 +12574,80 @@ var pveapi = [
                                           "description" : {
                                              "description" : "Description for the new VM.",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "format" : {
-                                             "description" : "Target format for file storage.",
+                                             "description" : "Target format for file storage. Only valid for full clone.",
                                              "enum" : [
                                                 "raw",
                                                 "qcow2",
                                                 "vmdk"
                                              ],
                                              "optional" : 1,
-                                             "requires" : "full",
                                              "type" : "string"
                                           },
                                           "full" : {
-                                             "default" : 0,
-                                             "description" : "Create a full copy of all disk. This is always done when you clone a normal VM. For VM templates, we try to create a linked clone by default.",
+                                             "description" : "Create a full copy of all disks. This is always done when you clone a normal VM. For VM templates, we try to create a linked clone by default.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "name" : {
                                              "description" : "Set a name for the new VM.",
                                              "format" : "dns-name",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "newid" : {
                                              "description" : "VMID for the clone.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "pool" : {
                                              "description" : "Add the new VM to the specified pool.",
                                              "format" : "pve-poolid",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "snapname" : {
                                              "description" : "The name of the snapshot.",
                                              "format" : "pve-configid",
                                              "maxLength" : 40,
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "storage" : {
                                              "description" : "Target storage for full clone.",
                                              "format" : "pve-storage-id",
                                              "optional" : 1,
-                                             "requires" : "full",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "target" : {
                                              "description" : "Target node. Only allowed if the original VM is on shared storage.",
                                              "format" : "pve-node",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -9501,13 +12707,15 @@ var pveapi = [
                                              "default" : 0,
                                              "description" : "Delete the original disk after successful copy. By default the original disk is kept as unused disk.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "digest" : {
                                              "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
                                              "maxLength" : 40,
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "disk" : {
                                              "description" : "The disk you want to move.",
@@ -9551,7 +12759,8 @@ var pveapi = [
                                                 "sata2",
                                                 "sata3",
                                                 "sata4",
-                                                "sata5"
+                                                "sata5",
+                                                "efidisk0"
                                              ],
                                              "type" : "string"
                                           },
@@ -9568,19 +12777,21 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "storage" : {
                                              "description" : "Target storage.",
                                              "format" : "pve-storage-id",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -9628,29 +12839,62 @@ var pveapi = [
                                           "force" : {
                                              "description" : "Allow to migrate VMs which use local devices. Only root may use this option.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "migration_network" : {
+                                             "description" : "CIDR of the (sub) network that is used for migration.",
+                                             "format" : "CIDR",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "migration_type" : {
+                                             "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
+                                             "enum" : [
+                                                "secure",
+                                                "insecure"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "online" : {
                                              "description" : "Use online/live migration.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "target" : {
                                              "description" : "Target node.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "targetstorage" : {
+                                             "description" : "Default target storage.",
+                                             "format" : "pve-storage-id",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
+                                          },
+                                          "with-local-disks" : {
+                                             "description" : "Enable live storage migration for local disk",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           }
                                        }
                                     },
@@ -9686,19 +12930,21 @@ var pveapi = [
                                        "properties" : {
                                           "command" : {
                                              "description" : "The monitor command.",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -9709,7 +12955,8 @@ var pveapi = [
                                           [
                                              "VM.Monitor"
                                           ]
-                                       ]
+                                       ],
+                                       "description" : "Sys.Modify is required for (sub)commands which are not read-only ('info *' and 'help')"
                                     },
                                     "protected" : 1,
                                     "proxyto" : "node",
@@ -9735,7 +12982,8 @@ var pveapi = [
                                              "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"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "disk" : {
                                              "description" : "The disk you want to resize.",
@@ -9779,31 +13027,34 @@ var pveapi = [
                                                 "sata2",
                                                 "sata3",
                                                 "sata4",
-                                                "sata5"
+                                                "sata5",
+                                                "efidisk0"
                                              ],
                                              "type" : "string"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "size" : {
-                                             "description" : "The new size. With the '+' sign the value is added to the actual size of the volume and without it, the value is taken as an absolute one. Shrinking disk size is not supported.",
+                                             "description" : "The new size. With the `+` sign the value is added to the actual size of the volume and without it, the value is taken as an absolute one. Shrinking disk size is not supported.",
                                              "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
                                              "type" : "string"
                                           },
                                           "skiplock" : {
                                              "description" : "Ignore locks - only root is allowed to use this option.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -9843,20 +13094,22 @@ var pveapi = [
                                                       "node" : {
                                                          "description" : "The cluster node name.",
                                                          "format" : "pve-node",
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "snapname" : {
                                                          "description" : "The name of the snapshot.",
                                                          "format" : "pve-configid",
                                                          "maxLength" : 40,
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "vmid" : {
                                                          "description" : "The (unique) ID of the VM.",
                                                          "format" : "pve-vmid",
                                                          "minimum" : 1,
                                                          "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
+                                                         "typetext" : "<integer> (1 - N)"
                                                       }
                                                    }
                                                 },
@@ -9865,8 +13118,11 @@ var pveapi = [
                                                       "perm",
                                                       "/vms/{vmid}",
                                                       [
-                                                         "VM.Snapshot"
-                                                      ]
+                                                         "VM.Snapshot",
+                                                         "VM.Snapshot.Rollback"
+                                                      ],
+                                                      "any",
+                                                      1
                                                    ]
                                                 },
                                                 "proxyto" : "node",
@@ -9884,25 +13140,28 @@ var pveapi = [
                                                       "description" : {
                                                          "description" : "A textual description or comment.",
                                                          "optional" : 1,
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "node" : {
                                                          "description" : "The cluster node name.",
                                                          "format" : "pve-node",
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "snapname" : {
                                                          "description" : "The name of the snapshot.",
                                                          "format" : "pve-configid",
                                                          "maxLength" : 40,
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "vmid" : {
                                                          "description" : "The (unique) ID of the VM.",
                                                          "format" : "pve-vmid",
                                                          "minimum" : 1,
                                                          "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
+                                                         "typetext" : "<integer> (1 - N)"
                                                       }
                                                    }
                                                 },
@@ -9938,20 +13197,22 @@ var pveapi = [
                                                       "node" : {
                                                          "description" : "The cluster node name.",
                                                          "format" : "pve-node",
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "snapname" : {
                                                          "description" : "The name of the snapshot.",
                                                          "format" : "pve-configid",
                                                          "maxLength" : 40,
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "vmid" : {
                                                          "description" : "The (unique) ID of the VM.",
                                                          "format" : "pve-vmid",
                                                          "minimum" : 1,
                                                          "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
+                                                         "typetext" : "<integer> (1 - N)"
                                                       }
                                                    }
                                                 },
@@ -9960,8 +13221,11 @@ var pveapi = [
                                                       "perm",
                                                       "/vms/{vmid}",
                                                       [
-                                                         "VM.Snapshot"
-                                                      ]
+                                                         "VM.Snapshot",
+                                                         "VM.Snapshot.Rollback"
+                                                      ],
+                                                      "any",
+                                                      1
                                                    ]
                                                 },
                                                 "protected" : 1,
@@ -9988,25 +13252,28 @@ var pveapi = [
                                                 "force" : {
                                                    "description" : "For removal from config file, even if removing disk snapshots fails.",
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "snapname" : {
                                                    "description" : "The name of the snapshot.",
                                                    "format" : "pve-configid",
                                                    "maxLength" : 40,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -10036,20 +13303,22 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "snapname" : {
                                                    "description" : "The name of the snapshot.",
                                                    "format" : "pve-configid",
                                                    "maxLength" : 40,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -10087,14 +13356,15 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -10133,30 +13403,34 @@ var pveapi = [
                                           "description" : {
                                              "description" : "A textual description or comment.",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "snapname" : {
                                              "description" : "The name of the snapshot.",
                                              "format" : "pve-configid",
                                              "maxLength" : 40,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           },
                                           "vmstate" : {
                                              "description" : "Save the vmstate",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           }
                                        }
                                     },
@@ -10232,7 +13506,8 @@ var pveapi = [
                                                 "sata2",
                                                 "sata3",
                                                 "sata4",
-                                                "sata5"
+                                                "sata5",
+                                                "efidisk0"
                                              ],
                                              "optional" : 1,
                                              "type" : "string"
@@ -10240,14 +13515,15 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -10284,19 +13560,21 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "skiplock" : {
                                        "description" : "Ignore locks - only root is allowed to use this option.",
                                        "optional" : 1,
-                                       "type" : "boolean"
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
                                     },
                                     "vmid" : {
                                        "description" : "The (unique) ID of the VM.",
                                        "format" : "pve-vmid",
                                        "minimum" : 1,
                                        "type" : "integer",
-                                       "typetext" : "integer (1- N)"
+                                       "typetext" : "<integer> (1 - N)"
                                     }
                                  }
                               },
@@ -10325,14 +13603,15 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "vmid" : {
                                        "description" : "The (unique) ID of the VM.",
                                        "format" : "pve-vmid",
                                        "minimum" : 1,
                                        "type" : "integer",
-                                       "typetext" : "integer (1- N)"
+                                       "typetext" : "<integer> (1 - N)"
                                     }
                                  }
                               },
@@ -10375,12 +13654,14 @@ var pveapi = [
                               "full" : {
                                  "description" : "Determine the full status of active VMs.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -10415,38 +13696,43 @@ var pveapi = [
                                  "default" : 1,
                                  "description" : "Enable/disable ACPI.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "agent" : {
                                  "default" : 0,
                                  "description" : "Enable/disable Qemu GuestAgent.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "archive" : {
                                  "description" : "The backup file.",
                                  "maxLength" : 255,
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "args" : {
                                  "description" : "Arbitrary arguments passed to kvm.",
                                  "optional" : 1,
                                  "type" : "string",
+                                 "typetext" : "<string>",
                                  "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
                               },
                               "autostart" : {
                                  "default" : 0,
                                  "description" : "Automatic restart after crash (currently ignored).",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "balloon" : {
                                  "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (0- N)"
+                                 "typetext" : "<integer> (0 - N)"
                               },
                               "bios" : {
                                  "default" : "seabios",
@@ -10472,12 +13758,40 @@ var pveapi = [
                                  "pattern" : "(ide|sata|scsi|virtio)\\d+",
                                  "type" : "string"
                               },
+                              "bwlimit" : {
+                                 "description" : "Override i/o bandwidth limit (in KiB/s).",
+                                 "minimum" : "0",
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (0 - N)"
+                              },
                               "cdrom" : {
                                  "description" : "This is an alias for option -ide2",
-                                 "format" : "pve-qm-drive",
+                                 "format" : "pve-qm-ide",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<volume>"
+                              },
+                              "cipassword" : {
+                                 "description" : "cloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "citype" : {
+                                 "description" : "Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.",
+                                 "enum" : [
+                                    "configdrive2",
+                                    "nocloud"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string"
+                              },
+                              "ciuser" : {
+                                 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "volume"
+                                 "typetext" : "<string>"
                               },
                               "cores" : {
                                  "default" : 1,
@@ -10485,7 +13799,7 @@ var pveapi = [
                                  "minimum" : 1,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (1- N)"
+                                 "typetext" : "<integer> (1 - N)"
                               },
                               "cpu" : {
                                  "description" : "Emulated CPU type.",
@@ -10498,17 +13812,26 @@ var pveapi = [
                                           "486",
                                           "athlon",
                                           "Broadwell",
+                                          "Broadwell-IBRS",
                                           "Broadwell-noTSX",
+                                          "Broadwell-noTSX-IBRS",
                                           "Conroe",
                                           "core2duo",
                                           "coreduo",
+                                          "EPYC",
+                                          "EPYC-IBPB",
                                           "Haswell",
+                                          "Haswell-IBRS",
                                           "Haswell-noTSX",
+                                          "Haswell-noTSX-IBRS",
                                           "host",
                                           "IvyBridge",
+                                          "IvyBridge-IBRS",
                                           "kvm32",
                                           "kvm64",
+                                          "max",
                                           "Nehalem",
+                                          "Nehalem-IBRS",
                                           "Opteron_G1",
                                           "Opteron_G2",
                                           "Opteron_G3",
@@ -10522,9 +13845,21 @@ var pveapi = [
                                           "qemu32",
                                           "qemu64",
                                           "SandyBridge",
-                                          "Westmere"
+                                          "SandyBridge-IBRS",
+                                          "Skylake-Client",
+                                          "Skylake-Client-IBRS",
+                                          "Skylake-Server",
+                                          "Skylake-Server-IBRS",
+                                          "Westmere",
+                                          "Westmere-IBRS"
                                        ],
-                                       "format_description" : "cputype",
+                                       "type" : "string"
+                                    },
+                                    "flags" : {
+                                       "description" : "List of additional CPU flags separated by ';'. Use '+FLAG' to enable, '-FLAG' to disable a flag. Currently supported flags: 'pcid', 'spec-ctrl'.",
+                                       "format_description" : "+FLAG[;-FLAG...]",
+                                       "optional" : 1,
+                                       "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl))(;(?^:[+-](pcid|spec-ctrl)))*)",
                                        "type" : "string"
                                     },
                                     "hidden" : {
@@ -10536,7 +13871,7 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[cputype=]<cputype> [,hidden=<1|0>]"
+                                 "typetext" : "[cputype=]<enum> [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>]"
                               },
                               "cpulimit" : {
                                  "default" : 0,
@@ -10545,41 +13880,44 @@ var pveapi = [
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "number",
-                                 "typetext" : "number (0-128)",
+                                 "typetext" : "<number> (0 - 128)",
                                  "verbose_description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit."
                               },
                               "cpuunits" : {
-                                 "default" : 1000,
+                                 "default" : 1024,
                                  "description" : "CPU weight for a VM.",
-                                 "maximum" : 500000,
-                                 "minimum" : 0,
+                                 "maximum" : 262144,
+                                 "minimum" : 2,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (0-500000)",
-                                 "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0."
+                                 "typetext" : "<integer> (2 - 262144)",
+                                 "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs."
                               },
                               "description" : {
                                  "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file.",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "force" : {
                                  "description" : "Allow to overwrite existing VM.",
                                  "optional" : 1,
                                  "requires" : "archive",
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "freeze" : {
                                  "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "hostpci[n]" : {
                                  "description" : "Map host PCI devices into guest.",
                                  "format" : "pve-qm-hostpci",
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,pcie=<1|0>] [,rombar=<1|0>] [,x-vga=<1|0>]",
+                                 "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,x-vga=<1|0>]",
                                  "verbose_description" : "Map host PCI devices into guest.\n\nNOTE: This option allows direct access to host hardware. So it is no longer \npossible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
                               },
                               "hotplug" : {
@@ -10587,7 +13925,8 @@ var pveapi = [
                                  "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Value '1' is an alias for the default 'network,disk,usb'.",
                                  "format" : "pve-hotplug-features",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "hugepages" : {
                                  "description" : "Enable/disable hugepages memory.",
@@ -10617,23 +13956,50 @@ var pveapi = [
                                        "type" : "boolean"
                                     },
                                     "bps" : {
-                                       "description" : "Maximum r/w speed speed in bytes per second.",
+                                       "description" : "Maximum r/w speed in bytes per second.",
                                        "format_description" : "bps",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "bps_max_length" : {
+                                       "description" : "Maximum length of I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "bps_rd" : {
-                                       "description" : "Maximum read speed speed in bytes per second.",
+                                       "description" : "Maximum read speed in bytes per second.",
                                        "format_description" : "bps",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "bps_rd_length" : {
+                                       "alias" : "bps_rd_max_length"
+                                    },
+                                    "bps_rd_max_length" : {
+                                       "description" : "Maximum length of read I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "bps_wr" : {
-                                       "description" : "Maximum write speed speed in bytes per second.",
+                                       "description" : "Maximum write speed in bytes per second.",
                                        "format_description" : "bps",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "bps_wr_length" : {
+                                       "alias" : "bps_wr_max_length"
+                                    },
+                                    "bps_wr_max_length" : {
+                                       "description" : "Maximum length of write I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "cache" : {
                                        "description" : "The drive's cache mode",
                                        "enum" : [
@@ -10683,7 +14049,6 @@ var pveapi = [
                                           "vmdk",
                                           "cloop"
                                        ],
-                                       "format_description" : "image format",
                                        "optional" : 1,
                                        "type" : "string"
                                     },
@@ -10693,73 +14058,100 @@ var pveapi = [
                                        "type" : "integer"
                                     },
                                     "iops" : {
-                                       "description" : "Maximum r/w I/O speed in operations per second.",
+                                       "description" : "Maximum r/w I/O in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
                                     "iops_max" : {
-                                       "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+                                       "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "iops_max_length" : {
+                                       "description" : "Maximum length of I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "iops_rd" : {
-                                       "description" : "Maximum read I/O speed in operations per second.",
+                                       "description" : "Maximum read I/O in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "iops_rd_length" : {
+                                       "alias" : "iops_rd_max_length"
+                                    },
                                     "iops_rd_max" : {
-                                       "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+                                       "description" : "Maximum unthrottled read I/O pool in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "iops_rd_max_length" : {
+                                       "description" : "Maximum length of read I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "iops_wr" : {
-                                       "description" : "Maximum write I/O speed in operations per second.",
+                                       "description" : "Maximum write I/O in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "iops_wr_length" : {
+                                       "alias" : "iops_wr_max_length"
+                                    },
                                     "iops_wr_max" : {
-                                       "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+                                       "description" : "Maximum unthrottled write I/O pool in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "iops_wr_max_length" : {
+                                       "description" : "Maximum length of write I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "mbps" : {
-                                       "description" : "Maximum r/w speed speed in megabytes per second.",
+                                       "description" : "Maximum r/w speed in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
                                     },
                                     "mbps_max" : {
-                                       "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+                                       "description" : "Maximum unthrottled r/w pool in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
                                     },
                                     "mbps_rd" : {
-                                       "description" : "Maximum read speed speed in megabytes per second.",
+                                       "description" : "Maximum read speed in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
                                     },
                                     "mbps_rd_max" : {
-                                       "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+                                       "description" : "Maximum unthrottled read pool in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
                                     },
                                     "mbps_wr" : {
-                                       "description" : "Maximum write speed speed in megabytes per second.",
+                                       "description" : "Maximum write speed in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
                                     },
                                     "mbps_wr_max" : {
-                                       "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+                                       "description" : "Maximum unthrottled write pool in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
@@ -10782,6 +14174,12 @@ var pveapi = [
                                        "optional" : 1,
                                        "type" : "string"
                                     },
+                                    "replicate" : {
+                                       "default" : 1,
+                                       "description" : "Whether the drive should considered for replication jobs.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
                                     "rerror" : {
                                        "description" : "Read error action.",
                                        "enum" : [
@@ -10805,6 +14203,13 @@ var pveapi = [
                                        "optional" : 1,
                                        "type" : "string"
                                     },
+                                    "shared" : {
+                                       "default" : 0,
+                                       "description" : "Mark this locally-managed volume as available on all nodes",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+                                    },
                                     "size" : {
                                        "description" : "Disk size. This is purely informational and has no effect.",
                                        "format" : "disk-size",
@@ -10813,7 +14218,7 @@ var pveapi = [
                                        "type" : "string"
                                     },
                                     "snapshot" : {
-                                       "description" : "Whether the drive should be included when making snapshots.",
+                                       "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
                                        "optional" : 1,
                                        "type" : "boolean"
                                     },
@@ -10844,11 +14249,18 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_rd=<bps>] [,bps_wr=<bps>] [,cache=<none|writethrough|writeback|unsafe|directsync>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<image format>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enospc|ignore|report|stop>]"
+                                 "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+                              },
+                              "ipconfig[n]" : {
+                                 "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit gateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using dhcp on IPv4.\n",
+                                 "format" : "pve-qm-ipconfig",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
                               },
                               "keyboard" : {
-                                 "default" : "en-us",
-                                 "description" : "Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.conf' configuration file.",
+                                 "default" : null,
+                                 "description" : "Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.cfg' configuration file.It should not be necessary to set it.",
                                  "enum" : [
                                     "de",
                                     "de-ch",
@@ -10883,12 +14295,14 @@ var pveapi = [
                                  "default" : 1,
                                  "description" : "Enable/disable KVM hardware virtualization.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "localtime" : {
                                  "description" : "Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "lock" : {
                                  "description" : "Lock/unlock the VM.",
@@ -10914,7 +14328,7 @@ var pveapi = [
                                  "minimum" : 16,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (16- N)"
+                                 "typetext" : "<integer> (16 - N)"
                               },
                               "migrate_downtime" : {
                                  "default" : 0.1,
@@ -10922,7 +14336,7 @@ var pveapi = [
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "number",
-                                 "typetext" : "number (0- N)"
+                                 "typetext" : "<number> (0 - N)"
                               },
                               "migrate_speed" : {
                                  "default" : 0,
@@ -10930,13 +14344,21 @@ var pveapi = [
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (0- N)"
+                                 "typetext" : "<integer> (0 - N)"
                               },
                               "name" : {
                                  "description" : "Set a name for the VM. Only used on the configuration web interface.",
                                  "format" : "dns-name",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "nameserver" : {
+                                 "description" : "cloud-init: Sets DNS server IP address for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
+                                 "format" : "address-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "net[n]" : {
                                  "description" : "Specify network devices.",
@@ -11010,7 +14432,6 @@ var pveapi = [
                                           "e1000-82544gc",
                                           "e1000-82545em"
                                        ],
-                                       "format_description" : "model",
                                        "type" : "string"
                                     },
                                     "ne2k_isa" : {
@@ -11067,18 +14488,20 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[model=]<model> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
+                                 "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
                               },
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "numa" : {
                                  "default" : 0,
                                  "description" : "Enable/disable NUMA.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "numa[n]" : {
                                  "description" : "NUMA topology.",
@@ -11120,7 +14543,8 @@ var pveapi = [
                                  "default" : 0,
                                  "description" : "Specifies whether a VM will be started during system bootup.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "ostype" : {
                                  "description" : "Specify guest operating system.",
@@ -11133,13 +14557,14 @@ var pveapi = [
                                     "wvista",
                                     "win7",
                                     "win8",
+                                    "win10",
                                     "l24",
                                     "l26",
                                     "solaris"
                                  ],
                                  "optional" : 1,
                                  "type" : "string",
-                                 "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6/3.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
+                                 "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6/3.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
                               },
                               "parallel[n]" : {
                                  "description" : "Map host parallel devices (n is 0 to 2).",
@@ -11152,19 +14577,22 @@ var pveapi = [
                                  "description" : "Add the VM to the specified pool.",
                                  "format" : "pve-poolid",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "protection" : {
                                  "default" : 0,
                                  "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "reboot" : {
                                  "default" : 1,
                                  "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "sata[n]" : {
                                  "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
@@ -11184,23 +14612,50 @@ var pveapi = [
                                        "type" : "boolean"
                                     },
                                     "bps" : {
-                                       "description" : "Maximum r/w speed speed in bytes per second.",
+                                       "description" : "Maximum r/w speed in bytes per second.",
                                        "format_description" : "bps",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "bps_max_length" : {
+                                       "description" : "Maximum length of I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "bps_rd" : {
-                                       "description" : "Maximum read speed speed in bytes per second.",
+                                       "description" : "Maximum read speed in bytes per second.",
                                        "format_description" : "bps",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "bps_rd_length" : {
+                                       "alias" : "bps_rd_max_length"
+                                    },
+                                    "bps_rd_max_length" : {
+                                       "description" : "Maximum length of read I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "bps_wr" : {
-                                       "description" : "Maximum write speed speed in bytes per second.",
+                                       "description" : "Maximum write speed in bytes per second.",
                                        "format_description" : "bps",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "bps_wr_length" : {
+                                       "alias" : "bps_wr_max_length"
+                                    },
+                                    "bps_wr_max_length" : {
+                                       "description" : "Maximum length of write I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "cache" : {
                                        "description" : "The drive's cache mode",
                                        "enum" : [
@@ -11250,7 +14705,6 @@ var pveapi = [
                                           "vmdk",
                                           "cloop"
                                        ],
-                                       "format_description" : "image format",
                                        "optional" : 1,
                                        "type" : "string"
                                     },
@@ -11260,73 +14714,100 @@ var pveapi = [
                                        "type" : "integer"
                                     },
                                     "iops" : {
-                                       "description" : "Maximum r/w I/O speed in operations per second.",
+                                       "description" : "Maximum r/w I/O in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
                                     "iops_max" : {
-                                       "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+                                       "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "iops_max_length" : {
+                                       "description" : "Maximum length of I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "iops_rd" : {
-                                       "description" : "Maximum read I/O speed in operations per second.",
+                                       "description" : "Maximum read I/O in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "iops_rd_length" : {
+                                       "alias" : "iops_rd_max_length"
+                                    },
                                     "iops_rd_max" : {
-                                       "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+                                       "description" : "Maximum unthrottled read I/O pool in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "iops_rd_max_length" : {
+                                       "description" : "Maximum length of read I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "iops_wr" : {
-                                       "description" : "Maximum write I/O speed in operations per second.",
+                                       "description" : "Maximum write I/O in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "iops_wr_length" : {
+                                       "alias" : "iops_wr_max_length"
+                                    },
                                     "iops_wr_max" : {
-                                       "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+                                       "description" : "Maximum unthrottled write I/O pool in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "iops_wr_max_length" : {
+                                       "description" : "Maximum length of write I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "mbps" : {
-                                       "description" : "Maximum r/w speed speed in megabytes per second.",
+                                       "description" : "Maximum r/w speed in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
                                     },
                                     "mbps_max" : {
-                                       "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+                                       "description" : "Maximum unthrottled r/w pool in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
                                     },
                                     "mbps_rd" : {
-                                       "description" : "Maximum read speed speed in megabytes per second.",
+                                       "description" : "Maximum read speed in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
                                     },
                                     "mbps_rd_max" : {
-                                       "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+                                       "description" : "Maximum unthrottled read pool in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
                                     },
                                     "mbps_wr" : {
-                                       "description" : "Maximum write speed speed in megabytes per second.",
+                                       "description" : "Maximum write speed in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
                                     },
                                     "mbps_wr_max" : {
-                                       "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+                                       "description" : "Maximum unthrottled write pool in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
@@ -11341,6 +14822,12 @@ var pveapi = [
                                        "optional" : 1,
                                        "type" : "string"
                                     },
+                                    "replicate" : {
+                                       "default" : 1,
+                                       "description" : "Whether the drive should considered for replication jobs.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
                                     "rerror" : {
                                        "description" : "Read error action.",
                                        "enum" : [
@@ -11364,6 +14851,13 @@ var pveapi = [
                                        "optional" : 1,
                                        "type" : "string"
                                     },
+                                    "shared" : {
+                                       "default" : 0,
+                                       "description" : "Mark this locally-managed volume as available on all nodes",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+                                    },
                                     "size" : {
                                        "description" : "Disk size. This is purely informational and has no effect.",
                                        "format" : "disk-size",
@@ -11372,7 +14866,7 @@ var pveapi = [
                                        "type" : "string"
                                     },
                                     "snapshot" : {
-                                       "description" : "Whether the drive should be included when making snapshots.",
+                                       "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
                                        "optional" : 1,
                                        "type" : "boolean"
                                     },
@@ -11403,7 +14897,7 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_rd=<bps>] [,bps_wr=<bps>] [,cache=<none|writethrough|writeback|unsafe|directsync>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<image format>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enospc|ignore|report|stop>]"
+                                 "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
                               },
                               "scsi[n]" : {
                                  "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
@@ -11423,23 +14917,50 @@ var pveapi = [
                                        "type" : "boolean"
                                     },
                                     "bps" : {
-                                       "description" : "Maximum r/w speed speed in bytes per second.",
+                                       "description" : "Maximum r/w speed in bytes per second.",
                                        "format_description" : "bps",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "bps_max_length" : {
+                                       "description" : "Maximum length of I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "bps_rd" : {
-                                       "description" : "Maximum read speed speed in bytes per second.",
+                                       "description" : "Maximum read speed in bytes per second.",
                                        "format_description" : "bps",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "bps_rd_length" : {
+                                       "alias" : "bps_rd_max_length"
+                                    },
+                                    "bps_rd_max_length" : {
+                                       "description" : "Maximum length of read I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "bps_wr" : {
-                                       "description" : "Maximum write speed speed in bytes per second.",
+                                       "description" : "Maximum write speed in bytes per second.",
                                        "format_description" : "bps",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "bps_wr_length" : {
+                                       "alias" : "bps_wr_max_length"
+                                    },
+                                    "bps_wr_max_length" : {
+                                       "description" : "Maximum length of write I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "cache" : {
                                        "description" : "The drive's cache mode",
                                        "enum" : [
@@ -11489,7 +15010,6 @@ var pveapi = [
                                           "vmdk",
                                           "cloop"
                                        ],
-                                       "format_description" : "image format",
                                        "optional" : 1,
                                        "type" : "string"
                                     },
@@ -11499,78 +15019,105 @@ var pveapi = [
                                        "type" : "integer"
                                     },
                                     "iops" : {
-                                       "description" : "Maximum r/w I/O speed in operations per second.",
+                                       "description" : "Maximum r/w I/O in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
                                     "iops_max" : {
-                                       "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+                                       "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "iops_max_length" : {
+                                       "description" : "Maximum length of I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "iops_rd" : {
-                                       "description" : "Maximum read I/O speed in operations per second.",
+                                       "description" : "Maximum read I/O in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "iops_rd_length" : {
+                                       "alias" : "iops_rd_max_length"
+                                    },
                                     "iops_rd_max" : {
-                                       "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+                                       "description" : "Maximum unthrottled read I/O pool in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "iops_rd_max_length" : {
+                                       "description" : "Maximum length of read I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "iops_wr" : {
-                                       "description" : "Maximum write I/O speed in operations per second.",
+                                       "description" : "Maximum write I/O in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "iops_wr_length" : {
+                                       "alias" : "iops_wr_max_length"
+                                    },
                                     "iops_wr_max" : {
-                                       "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+                                       "description" : "Maximum unthrottled write I/O pool in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "iops_wr_max_length" : {
+                                       "description" : "Maximum length of write I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "iothread" : {
                                        "description" : "Whether to use iothreads for this drive",
                                        "optional" : 1,
                                        "type" : "boolean"
                                     },
                                     "mbps" : {
-                                       "description" : "Maximum r/w speed speed in megabytes per second.",
+                                       "description" : "Maximum r/w speed in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
                                     },
                                     "mbps_max" : {
-                                       "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+                                       "description" : "Maximum unthrottled r/w pool in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
                                     },
                                     "mbps_rd" : {
-                                       "description" : "Maximum read speed speed in megabytes per second.",
+                                       "description" : "Maximum read speed in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
                                     },
                                     "mbps_rd_max" : {
-                                       "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+                                       "description" : "Maximum unthrottled read pool in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
                                     },
                                     "mbps_wr" : {
-                                       "description" : "Maximum write speed speed in megabytes per second.",
+                                       "description" : "Maximum write speed in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
                                     },
                                     "mbps_wr_max" : {
-                                       "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+                                       "description" : "Maximum unthrottled write pool in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
@@ -11591,6 +15138,28 @@ var pveapi = [
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "replicate" : {
+                                       "default" : 1,
+                                       "description" : "Whether the drive should considered for replication jobs.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
+                                    "rerror" : {
+                                       "description" : "Read error action.",
+                                       "enum" : [
+                                          "ignore",
+                                          "report",
+                                          "stop"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "scsiblock" : {
+                                       "default" : 0,
+                                       "description" : "whether to use scsi-block for full passthrough of host block device\n\nWARNING: can lead to I/O errors in combination with low memory or high memory fragmentation on host",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
                                     "secs" : {
                                        "description" : "Force the drive's physical geometry to have a specific sector count.",
                                        "optional" : 1,
@@ -11604,6 +15173,13 @@ var pveapi = [
                                        "optional" : 1,
                                        "type" : "string"
                                     },
+                                    "shared" : {
+                                       "default" : 0,
+                                       "description" : "Mark this locally-managed volume as available on all nodes",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+                                    },
                                     "size" : {
                                        "description" : "Disk size. This is purely informational and has no effect.",
                                        "format" : "disk-size",
@@ -11612,7 +15188,7 @@ var pveapi = [
                                        "type" : "string"
                                     },
                                     "snapshot" : {
-                                       "description" : "Whether the drive should be included when making snapshots.",
+                                       "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
                                        "optional" : 1,
                                        "type" : "boolean"
                                     },
@@ -11643,7 +15219,7 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_rd=<bps>] [,bps_wr=<bps>] [,cache=<none|writethrough|writeback|unsafe|directsync>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<image format>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enospc|ignore|report|stop>]"
+                                 "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
                               },
                               "scsihw" : {
                                  "default" : "lsi",
@@ -11659,6 +15235,12 @@ var pveapi = [
                                  "optional" : 1,
                                  "type" : "string"
                               },
+                              "searchdomain" : {
+                                 "description" : "cloud-init: Sets DNS search domains for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
                               "serial[n]" : {
                                  "description" : "Create a serial device inside the VM (n is 0 to 3)",
                                  "optional" : 1,
@@ -11668,12 +15250,12 @@ var pveapi = [
                               },
                               "shares" : {
                                  "default" : 1000,
-                                 "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning",
+                                 "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning. Auto-ballooning is done by pvestatd.",
                                  "maximum" : 50000,
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (0-50000)"
+                                 "typetext" : "<integer> (0 - 50000)"
                               },
                               "smbios1" : {
                                  "description" : "Specify SMBIOS type 1 fields.",
@@ -11689,7 +15271,7 @@ var pveapi = [
                                  "minimum" : 1,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (1- N)"
+                                 "typetext" : "<integer> (1 - N)"
                               },
                               "sockets" : {
                                  "default" : 1,
@@ -11697,7 +15279,21 @@ var pveapi = [
                                  "minimum" : 1,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (1- N)"
+                                 "typetext" : "<integer> (1 - N)"
+                              },
+                              "sshkeys" : {
+                                 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
+                                 "format" : "urlencoded",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "start" : {
+                                 "default" : 0,
+                                 "description" : "Start VM after it was created successfully.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "startdate" : {
                                  "default" : "now",
@@ -11718,38 +15314,44 @@ var pveapi = [
                                  "description" : "Default storage.",
                                  "format" : "pve-storage-id",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "tablet" : {
                                  "default" : 1,
                                  "description" : "Enable/disable the USB tablet device.",
                                  "optional" : 1,
                                  "type" : "boolean",
+                                 "typetext" : "<boolean>",
                                  "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (-vga=qxl)."
                               },
                               "tdf" : {
                                  "default" : 0,
                                  "description" : "Enable/disable time drift fix.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "template" : {
                                  "default" : 0,
                                  "description" : "Enable/disable Template.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "unique" : {
                                  "description" : "Assign a unique random ethernet address.",
                                  "optional" : 1,
                                  "requires" : "archive",
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "unused[n]" : {
                                  "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
                                  "format" : "pve-volume-id",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "usb[n]" : {
                                  "description" : "Configure an USB device (n is 0 to 4).",
@@ -11778,7 +15380,7 @@ var pveapi = [
                                  "minimum" : 1,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (1- N)"
+                                 "typetext" : "<integer> (1 - N)"
                               },
                               "vga" : {
                                  "description" : "Select the VGA type.",
@@ -11817,23 +15419,50 @@ var pveapi = [
                                        "type" : "boolean"
                                     },
                                     "bps" : {
-                                       "description" : "Maximum r/w speed speed in bytes per second.",
+                                       "description" : "Maximum r/w speed in bytes per second.",
                                        "format_description" : "bps",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "bps_max_length" : {
+                                       "description" : "Maximum length of I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "bps_rd" : {
-                                       "description" : "Maximum read speed speed in bytes per second.",
+                                       "description" : "Maximum read speed in bytes per second.",
                                        "format_description" : "bps",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "bps_rd_length" : {
+                                       "alias" : "bps_rd_max_length"
+                                    },
+                                    "bps_rd_max_length" : {
+                                       "description" : "Maximum length of read I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "bps_wr" : {
-                                       "description" : "Maximum write speed speed in bytes per second.",
+                                       "description" : "Maximum write speed in bytes per second.",
                                        "format_description" : "bps",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "bps_wr_length" : {
+                                       "alias" : "bps_wr_max_length"
+                                    },
+                                    "bps_wr_max_length" : {
+                                       "description" : "Maximum length of write I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "cache" : {
                                        "description" : "The drive's cache mode",
                                        "enum" : [
@@ -11883,7 +15512,6 @@ var pveapi = [
                                           "vmdk",
                                           "cloop"
                                        ],
-                                       "format_description" : "image format",
                                        "optional" : 1,
                                        "type" : "string"
                                     },
@@ -11893,78 +15521,105 @@ var pveapi = [
                                        "type" : "integer"
                                     },
                                     "iops" : {
-                                       "description" : "Maximum r/w I/O speed in operations per second.",
+                                       "description" : "Maximum r/w I/O in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
                                     "iops_max" : {
-                                       "description" : "Maximum unthrottled r/w I/O pool speed in operations per second.",
+                                       "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "iops_max_length" : {
+                                       "description" : "Maximum length of I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "iops_rd" : {
-                                       "description" : "Maximum read I/O speed in operations per second.",
+                                       "description" : "Maximum read I/O in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "iops_rd_length" : {
+                                       "alias" : "iops_rd_max_length"
+                                    },
                                     "iops_rd_max" : {
-                                       "description" : "Maximum unthrottled read I/O pool speed in operations per second.",
+                                       "description" : "Maximum unthrottled read I/O pool in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "iops_rd_max_length" : {
+                                       "description" : "Maximum length of read I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "iops_wr" : {
-                                       "description" : "Maximum write I/O speed in operations per second.",
+                                       "description" : "Maximum write I/O in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "iops_wr_length" : {
+                                       "alias" : "iops_wr_max_length"
+                                    },
                                     "iops_wr_max" : {
-                                       "description" : "Maximum unthrottled write I/O pool speed in operations per second.",
+                                       "description" : "Maximum unthrottled write I/O pool in operations per second.",
                                        "format_description" : "iops",
                                        "optional" : 1,
                                        "type" : "integer"
                                     },
+                                    "iops_wr_max_length" : {
+                                       "description" : "Maximum length of write I/O bursts in seconds.",
+                                       "format_description" : "seconds",
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "iothread" : {
                                        "description" : "Whether to use iothreads for this drive",
                                        "optional" : 1,
                                        "type" : "boolean"
                                     },
                                     "mbps" : {
-                                       "description" : "Maximum r/w speed speed in megabytes per second.",
+                                       "description" : "Maximum r/w speed in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
                                     },
                                     "mbps_max" : {
-                                       "description" : "Maximum unthrottled r/w pool speed in megabytes per second.",
+                                       "description" : "Maximum unthrottled r/w pool in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
                                     },
                                     "mbps_rd" : {
-                                       "description" : "Maximum read speed speed in megabytes per second.",
+                                       "description" : "Maximum read speed in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
                                     },
                                     "mbps_rd_max" : {
-                                       "description" : "Maximum unthrottled read pool speed in megabytes per second.",
+                                       "description" : "Maximum unthrottled read pool in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
                                     },
                                     "mbps_wr" : {
-                                       "description" : "Maximum write speed speed in megabytes per second.",
+                                       "description" : "Maximum write speed in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
                                     },
                                     "mbps_wr_max" : {
-                                       "description" : "Maximum unthrottled write pool speed in megabytes per second.",
+                                       "description" : "Maximum unthrottled write pool in megabytes per second.",
                                        "format_description" : "mbps",
                                        "optional" : 1,
                                        "type" : "number"
@@ -11979,6 +15634,12 @@ var pveapi = [
                                        "optional" : 1,
                                        "type" : "string"
                                     },
+                                    "replicate" : {
+                                       "default" : 1,
+                                       "description" : "Whether the drive should considered for replication jobs.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
                                     "rerror" : {
                                        "description" : "Read error action.",
                                        "enum" : [
@@ -12002,6 +15663,13 @@ var pveapi = [
                                        "optional" : 1,
                                        "type" : "string"
                                     },
+                                    "shared" : {
+                                       "default" : 0,
+                                       "description" : "Mark this locally-managed volume as available on all nodes",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
+                                    },
                                     "size" : {
                                        "description" : "Disk size. This is purely informational and has no effect.",
                                        "format" : "disk-size",
@@ -12010,7 +15678,7 @@ var pveapi = [
                                        "type" : "string"
                                     },
                                     "snapshot" : {
-                                       "description" : "Whether the drive should be included when making snapshots.",
+                                       "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
                                        "optional" : 1,
                                        "type" : "boolean"
                                     },
@@ -12041,21 +15709,28 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_rd=<bps>] [,bps_wr=<bps>] [,cache=<none|writethrough|writeback|unsafe|directsync>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<image format>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enospc|ignore|report|stop>]"
+                                 "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
                               },
                               "vmid" : {
                                  "description" : "The (unique) ID of the VM.",
                                  "format" : "pve-vmid",
                                  "minimum" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (1- N)"
+                                 "typetext" : "<integer> (1 - N)"
+                              },
+                              "vmstatestorage" : {
+                                 "description" : "Default storage for VM state volumes/files.",
+                                 "format" : "pve-storage-id",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "watchdog" : {
                                  "description" : "Create a virtual hardware watchdog device.",
                                  "format" : "pve-qm-watchdog",
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<reset|shutdown|poweroff|pause|debug|none>]",
+                                 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
                                  "verbose_description" : "Create a virtual hardware watchdog device. Once enabled (by a guest action), the watchdog must be periodically polled by an agent inside the guest or else the watchdog will reset the guest (or execute the respective action specified)"
                               }
                            }
@@ -12091,14 +15766,15 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -12154,7 +15830,16 @@ var pveapi = [
                                              "default" : 1,
                                              "description" : "Attach a console device (/dev/console) to the container.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "cores" : {
+                                             "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
+                                             "maximum" : 128,
+                                             "minimum" : 1,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - 128)"
                                           },
                                           "cpulimit" : {
                                              "default" : 0,
@@ -12163,7 +15848,7 @@ var pveapi = [
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "number",
-                                             "typetext" : "number (0-128)"
+                                             "typetext" : "<number> (0 - 128)"
                                           },
                                           "cpuunits" : {
                                              "default" : 1024,
@@ -12172,31 +15857,35 @@ var pveapi = [
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (0-500000)"
+                                             "typetext" : "<integer> (0 - 500000)"
                                           },
                                           "delete" : {
                                              "description" : "A list of settings you want to delete.",
                                              "format" : "pve-configid-list",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "description" : {
                                              "description" : "Container description. Only used on the configuration web interface.",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "digest" : {
                                              "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
                                              "maxLength" : 40,
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "hostname" : {
                                              "description" : "Set a host name for the container.",
                                              "format" : "dns-name",
                                              "maxLength" : 255,
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "lock" : {
                                              "description" : "Lock/unlock the VM.",
@@ -12215,7 +15904,7 @@ var pveapi = [
                                              "minimum" : 16,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (16- N)"
+                                             "typetext" : "<integer> (16 - N)"
                                           },
                                           "mp[n]" : {
                                              "description" : "Use volume as container mount point.",
@@ -12226,28 +15915,41 @@ var pveapi = [
                                                    "type" : "boolean"
                                                 },
                                                 "backup" : {
-                                                   "description" : "Whether to include the mountpoint in backups.",
+                                                   "description" : "Whether to include the mount point in backups.",
                                                    "optional" : 1,
                                                    "type" : "boolean",
-                                                   "verbose_description" : "Whether to include the mountpoint in backups (only used for volume mountpoints)."
+                                                   "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
                                                 },
                                                 "mp" : {
-                                                   "description" : "Path to the mountpoint as seen from inside the container (must not contain symlinks).",
+                                                   "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
                                                    "format" : "pve-lxc-mp-string",
                                                    "format_description" : "Path",
                                                    "type" : "string",
-                                                   "verbose_description" : "Path to the mountpoint as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
+                                                   "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
                                                 },
                                                 "quota" : {
                                                    "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
+                                                "replicate" : {
+                                                   "default" : 1,
+                                                   "description" : "Will include this volume to a storage replica job.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "ro" : {
-                                                   "description" : "Read-only mountpoint",
+                                                   "description" : "Read-only mount point",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
+                                                "shared" : {
+                                                   "default" : 0,
+                                                   "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!"
+                                                },
                                                 "size" : {
                                                    "description" : "Volume size (read only value).",
                                                    "format" : "disk-size",
@@ -12265,13 +15967,14 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[volume=]<volume> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,quota=<1|0>] [,ro=<1|0>] [,size=<DiskSize>]"
+                                             "typetext" : "[volume=]<volume> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
                                           },
                                           "nameserver" : {
                                              "description" : "Sets DNS server IP address for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
                                              "format" : "address-list",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "net[n]" : {
                                              "description" : "Specifies network interfaces for the container.",
@@ -12312,14 +16015,14 @@ var pveapi = [
                                                 "ip" : {
                                                    "description" : "IPv4 address in CIDR format.",
                                                    "format" : "pve-ipv4-config",
-                                                   "format_description" : "IPv4Format/CIDR",
+                                                   "format_description" : "(IPv4/CIDR|dhcp|manual)",
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
                                                 "ip6" : {
                                                    "description" : "IPv6 address in CIDR format.",
                                                    "format" : "pve-ipv6-config",
-                                                   "format_description" : "IPv6Format/CIDR",
+                                                   "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
@@ -12366,18 +16069,20 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
+                                             "typetext" : "name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "onboot" : {
                                              "default" : 0,
                                              "description" : "Specifies whether a VM will be started during system bootup.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "ostype" : {
                                              "description" : "OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/<ostype>.common.conf. Value 'unmanaged' can be used to skip and OS specific setup.",
@@ -12399,7 +16104,8 @@ var pveapi = [
                                              "default" : 0,
                                              "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "rootfs" : {
                                              "description" : "Use volume as container root.",
@@ -12414,11 +16120,24 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
+                                                "replicate" : {
+                                                   "default" : 1,
+                                                   "description" : "Will include this volume to a storage replica job.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "ro" : {
-                                                   "description" : "Read-only mountpoint",
+                                                   "description" : "Read-only mount point",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
+                                                "shared" : {
+                                                   "default" : 0,
+                                                   "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!"
+                                                },
                                                 "size" : {
                                                    "description" : "Volume size (read only value).",
                                                    "format" : "disk-size",
@@ -12436,13 +16155,14 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[volume=]<volume> [,acl=<1|0>] [,quota=<1|0>] [,ro=<1|0>] [,size=<DiskSize>]"
+                                             "typetext" : "[volume=]<volume> [,acl=<1|0>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
                                           },
                                           "searchdomain" : {
                                              "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
                                              "format" : "dns-name-list",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "startup" : {
                                              "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
@@ -12457,13 +16177,14 @@ var pveapi = [
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (0- N)"
+                                             "typetext" : "<integer> (0 - N)"
                                           },
                                           "template" : {
                                              "default" : 0,
                                              "description" : "Enable/disable Template.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "tty" : {
                                              "default" : 2,
@@ -12472,26 +16193,28 @@ var pveapi = [
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (0-6)"
+                                             "typetext" : "<integer> (0 - 6)"
                                           },
                                           "unprivileged" : {
                                              "default" : 0,
                                              "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "unused[n]" : {
                                              "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
                                              "format" : "pve-volume-id",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -12508,7 +16231,8 @@ var pveapi = [
                                           ],
                                           "any",
                                           1
-                                       ]
+                                       ],
+                                       "description" : "non-volume mount points in rootfs and mp[n] are restricted to root@pam"
                                     },
                                     "protected" : 1,
                                     "proxyto" : "node",
@@ -12535,14 +16259,15 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -12578,19 +16303,21 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "skiplock" : {
                                                    "description" : "Ignore locks - only root is allowed to use this option.",
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -12626,19 +16353,21 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "skiplock" : {
                                                    "description" : "Ignore locks - only root is allowed to use this option.",
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -12675,12 +16404,14 @@ var pveapi = [
                                                    "default" : 0,
                                                    "description" : "Make sure the Container stops.",
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "timeout" : {
                                                    "default" : 60,
@@ -12688,14 +16419,14 @@ var pveapi = [
                                                    "minimum" : 0,
                                                    "optional" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (0- N)"
+                                                   "typetext" : "<integer> (0 - N)"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -12731,14 +16462,15 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -12774,14 +16506,15 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -12817,14 +16550,15 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -12871,20 +16605,22 @@ var pveapi = [
                                                       "node" : {
                                                          "description" : "The cluster node name.",
                                                          "format" : "pve-node",
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "snapname" : {
                                                          "description" : "The name of the snapshot.",
                                                          "format" : "pve-configid",
                                                          "maxLength" : 40,
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "vmid" : {
                                                          "description" : "The (unique) ID of the VM.",
                                                          "format" : "pve-vmid",
                                                          "minimum" : 1,
                                                          "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
+                                                         "typetext" : "<integer> (1 - N)"
                                                       }
                                                    }
                                                 },
@@ -12893,8 +16629,11 @@ var pveapi = [
                                                       "perm",
                                                       "/vms/{vmid}",
                                                       [
-                                                         "VM.Snapshot"
-                                                      ]
+                                                         "VM.Snapshot",
+                                                         "VM.Snapshot.Rollback"
+                                                      ],
+                                                      "any",
+                                                      1
                                                    ]
                                                 },
                                                 "protected" : 1,
@@ -12921,20 +16660,22 @@ var pveapi = [
                                                       "node" : {
                                                          "description" : "The cluster node name.",
                                                          "format" : "pve-node",
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "snapname" : {
                                                          "description" : "The name of the snapshot.",
                                                          "format" : "pve-configid",
                                                          "maxLength" : 40,
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "vmid" : {
                                                          "description" : "The (unique) ID of the VM.",
                                                          "format" : "pve-vmid",
                                                          "minimum" : 1,
                                                          "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
+                                                         "typetext" : "<integer> (1 - N)"
                                                       }
                                                    }
                                                 },
@@ -12943,8 +16684,11 @@ var pveapi = [
                                                       "perm",
                                                       "/vms/{vmid}",
                                                       [
-                                                         "VM.Snapshot"
-                                                      ]
+                                                         "VM.Snapshot",
+                                                         "VM.Snapshot.Rollback"
+                                                      ],
+                                                      "any",
+                                                      1
                                                    ]
                                                 },
                                                 "proxyto" : "node",
@@ -12962,25 +16706,28 @@ var pveapi = [
                                                       "description" : {
                                                          "description" : "A textual description or comment.",
                                                          "optional" : 1,
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "node" : {
                                                          "description" : "The cluster node name.",
                                                          "format" : "pve-node",
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "snapname" : {
                                                          "description" : "The name of the snapshot.",
                                                          "format" : "pve-configid",
                                                          "maxLength" : 40,
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "vmid" : {
                                                          "description" : "The (unique) ID of the VM.",
                                                          "format" : "pve-vmid",
                                                          "minimum" : 1,
                                                          "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
+                                                         "typetext" : "<integer> (1 - N)"
                                                       }
                                                    }
                                                 },
@@ -13016,25 +16763,28 @@ var pveapi = [
                                                 "force" : {
                                                    "description" : "For removal from config file, even if removing disk snapshots fails.",
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "snapname" : {
                                                    "description" : "The name of the snapshot.",
                                                    "format" : "pve-configid",
                                                    "maxLength" : 40,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -13064,20 +16814,22 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "snapname" : {
                                                    "description" : "The name of the snapshot.",
                                                    "format" : "pve-configid",
                                                    "maxLength" : 40,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -13115,14 +16867,15 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -13161,25 +16914,28 @@ var pveapi = [
                                           "description" : {
                                              "description" : "A textual description or comment.",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "snapname" : {
                                              "description" : "The name of the snapshot.",
                                              "format" : "pve-configid",
                                              "maxLength" : 40,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -13221,26 +16977,28 @@ var pveapi = [
                                                          "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"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "node" : {
                                                          "description" : "The cluster node name.",
                                                          "format" : "pve-node",
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "pos" : {
                                                          "description" : "Update rule at position <pos>.",
                                                          "minimum" : 0,
                                                          "optional" : 1,
                                                          "type" : "integer",
-                                                         "typetext" : "integer (0- N)"
+                                                         "typetext" : "<integer> (0 - N)"
                                                       },
                                                       "vmid" : {
                                                          "description" : "The (unique) ID of the VM.",
                                                          "format" : "pve-vmid",
                                                          "minimum" : 1,
                                                          "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
+                                                         "typetext" : "<integer> (1 - N)"
                                                       }
                                                    }
                                                 },
@@ -13269,21 +17027,22 @@ var pveapi = [
                                                       "node" : {
                                                          "description" : "The cluster node name.",
                                                          "format" : "pve-node",
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "pos" : {
                                                          "description" : "Update rule at position <pos>.",
                                                          "minimum" : 0,
                                                          "optional" : 1,
                                                          "type" : "integer",
-                                                         "typetext" : "integer (0- N)"
+                                                         "typetext" : "<integer> (0 - N)"
                                                       },
                                                       "vmid" : {
                                                          "description" : "The (unique) ID of the VM.",
                                                          "format" : "pve-vmid",
                                                          "minimum" : 1,
                                                          "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
+                                                         "typetext" : "<integer> (1 - N)"
                                                       }
                                                    }
                                                 },
@@ -13322,38 +17081,45 @@ var pveapi = [
                                                          "type" : "string"
                                                       },
                                                       "comment" : {
+                                                         "description" : "Descriptive comment.",
                                                          "optional" : 1,
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "delete" : {
                                                          "description" : "A list of settings you want to delete.",
                                                          "format" : "pve-configid-list",
                                                          "optional" : 1,
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "dest" : {
                                                          "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                                          "format" : "pve-fw-addr-spec",
                                                          "optional" : 1,
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "digest" : {
                                                          "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
                                                          "maxLength" : 40,
                                                          "optional" : 1,
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "dport" : {
                                                          "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
                                                          "format" : "pve-fw-dport-spec",
                                                          "optional" : 1,
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "enable" : {
+                                                         "description" : "Flag to enable/disable a rule.",
                                                          "minimum" : 0,
                                                          "optional" : 1,
                                                          "type" : "integer",
-                                                         "typetext" : "integer (0- N)"
+                                                         "typetext" : "<integer> (0 - N)"
                                                       },
                                                       "iface" : {
                                                          "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
@@ -13361,51 +17127,59 @@ var pveapi = [
                                                          "maxLength" : 20,
                                                          "minLength" : 2,
                                                          "optional" : 1,
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "macro" : {
+                                                         "description" : "Use predefined standard macro.",
                                                          "maxLength" : 128,
                                                          "optional" : 1,
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "moveto" : {
                                                          "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
                                                          "minimum" : 0,
                                                          "optional" : 1,
                                                          "type" : "integer",
-                                                         "typetext" : "integer (0- N)"
+                                                         "typetext" : "<integer> (0 - N)"
                                                       },
                                                       "node" : {
                                                          "description" : "The cluster node name.",
                                                          "format" : "pve-node",
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "pos" : {
                                                          "description" : "Update rule at position <pos>.",
                                                          "minimum" : 0,
                                                          "optional" : 1,
                                                          "type" : "integer",
-                                                         "typetext" : "integer (0- N)"
+                                                         "typetext" : "<integer> (0 - N)"
                                                       },
                                                       "proto" : {
                                                          "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
                                                          "format" : "pve-fw-protocol-spec",
                                                          "optional" : 1,
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "source" : {
                                                          "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                                          "format" : "pve-fw-addr-spec",
                                                          "optional" : 1,
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "sport" : {
                                                          "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
                                                          "format" : "pve-fw-sport-spec",
                                                          "optional" : 1,
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "type" : {
+                                                         "description" : "Rule type.",
                                                          "enum" : [
                                                             "in",
                                                             "out",
@@ -13419,7 +17193,7 @@ var pveapi = [
                                                          "format" : "pve-vmid",
                                                          "minimum" : 1,
                                                          "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
+                                                         "typetext" : "<integer> (1 - N)"
                                                       }
                                                    }
                                                 },
@@ -13455,14 +17229,15 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -13510,32 +17285,38 @@ var pveapi = [
                                                    "type" : "string"
                                                 },
                                                 "comment" : {
+                                                   "description" : "Descriptive comment.",
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "dest" : {
                                                    "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                                    "format" : "pve-fw-addr-spec",
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "digest" : {
                                                    "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
                                                    "maxLength" : 40,
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "dport" : {
                                                    "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
                                                    "format" : "pve-fw-dport-spec",
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "enable" : {
+                                                   "description" : "Flag to enable/disable a rule.",
                                                    "minimum" : 0,
                                                    "optional" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (0- N)"
+                                                   "typetext" : "<integer> (0 - N)"
                                                 },
                                                 "iface" : {
                                                    "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
@@ -13543,44 +17324,52 @@ var pveapi = [
                                                    "maxLength" : 20,
                                                    "minLength" : 2,
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "macro" : {
+                                                   "description" : "Use predefined standard macro.",
                                                    "maxLength" : 128,
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "pos" : {
                                                    "description" : "Update rule at position <pos>.",
                                                    "minimum" : 0,
                                                    "optional" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (0- N)"
+                                                   "typetext" : "<integer> (0 - N)"
                                                 },
                                                 "proto" : {
                                                    "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
                                                    "format" : "pve-fw-protocol-spec",
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "source" : {
                                                    "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                                    "format" : "pve-fw-addr-spec",
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "sport" : {
                                                    "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
                                                    "format" : "pve-fw-sport-spec",
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "type" : {
+                                                   "description" : "Rule type.",
                                                    "enum" : [
                                                       "in",
                                                       "out",
@@ -13594,7 +17383,7 @@ var pveapi = [
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -13633,7 +17422,8 @@ var pveapi = [
                                                          "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"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "name" : {
                                                          "description" : "Alias name.",
@@ -13645,14 +17435,15 @@ var pveapi = [
                                                       "node" : {
                                                          "description" : "The cluster node name.",
                                                          "format" : "pve-node",
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "vmid" : {
                                                          "description" : "The (unique) ID of the VM.",
                                                          "format" : "pve-vmid",
                                                          "minimum" : 1,
                                                          "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
+                                                         "typetext" : "<integer> (1 - N)"
                                                       }
                                                    }
                                                 },
@@ -13687,14 +17478,15 @@ var pveapi = [
                                                       "node" : {
                                                          "description" : "The cluster node name.",
                                                          "format" : "pve-node",
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "vmid" : {
                                                          "description" : "The (unique) ID of the VM.",
                                                          "format" : "pve-vmid",
                                                          "minimum" : 1,
                                                          "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
+                                                         "typetext" : "<integer> (1 - N)"
                                                       }
                                                    }
                                                 },
@@ -13721,17 +17513,20 @@ var pveapi = [
                                                       "cidr" : {
                                                          "description" : "Network/IP specification in CIDR format.",
                                                          "format" : "IPorCIDR",
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "comment" : {
                                                          "optional" : 1,
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "digest" : {
                                                          "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
                                                          "maxLength" : 40,
                                                          "optional" : 1,
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "name" : {
                                                          "description" : "Alias name.",
@@ -13743,7 +17538,8 @@ var pveapi = [
                                                       "node" : {
                                                          "description" : "The cluster node name.",
                                                          "format" : "pve-node",
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "rename" : {
                                                          "description" : "Rename an existing alias.",
@@ -13758,7 +17554,7 @@ var pveapi = [
                                                          "format" : "pve-vmid",
                                                          "minimum" : 1,
                                                          "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
+                                                         "typetext" : "<integer> (1 - N)"
                                                       }
                                                    }
                                                 },
@@ -13793,14 +17589,15 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -13854,11 +17651,13 @@ var pveapi = [
                                                 "cidr" : {
                                                    "description" : "Network/IP specification in CIDR format.",
                                                    "format" : "IPorCIDR",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "comment" : {
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "name" : {
                                                    "description" : "Alias name.",
@@ -13870,14 +17669,15 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -13916,13 +17716,15 @@ var pveapi = [
                                                             "cidr" : {
                                                                "description" : "Network/IP specification in CIDR format.",
                                                                "format" : "IPorCIDRorAlias",
-                                                               "type" : "string"
+                                                               "type" : "string",
+                                                               "typetext" : "<string>"
                                                             },
                                                             "digest" : {
                                                                "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
                                                                "maxLength" : 40,
                                                                "optional" : 1,
-                                                               "type" : "string"
+                                                               "type" : "string",
+                                                               "typetext" : "<string>"
                                                             },
                                                             "name" : {
                                                                "description" : "IP set name.",
@@ -13934,14 +17736,15 @@ var pveapi = [
                                                             "node" : {
                                                                "description" : "The cluster node name.",
                                                                "format" : "pve-node",
-                                                               "type" : "string"
+                                                               "type" : "string",
+                                                               "typetext" : "<string>"
                                                             },
                                                             "vmid" : {
                                                                "description" : "The (unique) ID of the VM.",
                                                                "format" : "pve-vmid",
                                                                "minimum" : 1,
                                                                "type" : "integer",
-                                                               "typetext" : "integer (1- N)"
+                                                               "typetext" : "<integer> (1 - N)"
                                                             }
                                                          }
                                                       },
@@ -13969,7 +17772,8 @@ var pveapi = [
                                                             "cidr" : {
                                                                "description" : "Network/IP specification in CIDR format.",
                                                                "format" : "IPorCIDRorAlias",
-                                                               "type" : "string"
+                                                               "type" : "string",
+                                                               "typetext" : "<string>"
                                                             },
                                                             "name" : {
                                                                "description" : "IP set name.",
@@ -13981,14 +17785,15 @@ var pveapi = [
                                                             "node" : {
                                                                "description" : "The cluster node name.",
                                                                "format" : "pve-node",
-                                                               "type" : "string"
+                                                               "type" : "string",
+                                                               "typetext" : "<string>"
                                                             },
                                                             "vmid" : {
                                                                "description" : "The (unique) ID of the VM.",
                                                                "format" : "pve-vmid",
                                                                "minimum" : 1,
                                                                "type" : "integer",
-                                                               "typetext" : "integer (1- N)"
+                                                               "typetext" : "<integer> (1 - N)"
                                                             }
                                                          }
                                                       },
@@ -14016,17 +17821,20 @@ var pveapi = [
                                                             "cidr" : {
                                                                "description" : "Network/IP specification in CIDR format.",
                                                                "format" : "IPorCIDRorAlias",
-                                                               "type" : "string"
+                                                               "type" : "string",
+                                                               "typetext" : "<string>"
                                                             },
                                                             "comment" : {
                                                                "optional" : 1,
-                                                               "type" : "string"
+                                                               "type" : "string",
+                                                               "typetext" : "<string>"
                                                             },
                                                             "digest" : {
                                                                "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
                                                                "maxLength" : 40,
                                                                "optional" : 1,
-                                                               "type" : "string"
+                                                               "type" : "string",
+                                                               "typetext" : "<string>"
                                                             },
                                                             "name" : {
                                                                "description" : "IP set name.",
@@ -14038,18 +17846,20 @@ var pveapi = [
                                                             "node" : {
                                                                "description" : "The cluster node name.",
                                                                "format" : "pve-node",
-                                                               "type" : "string"
+                                                               "type" : "string",
+                                                               "typetext" : "<string>"
                                                             },
                                                             "nomatch" : {
                                                                "optional" : 1,
-                                                               "type" : "boolean"
+                                                               "type" : "boolean",
+                                                               "typetext" : "<boolean>"
                                                             },
                                                             "vmid" : {
                                                                "description" : "The (unique) ID of the VM.",
                                                                "format" : "pve-vmid",
                                                                "minimum" : 1,
                                                                "type" : "integer",
-                                                               "typetext" : "integer (1- N)"
+                                                               "typetext" : "<integer> (1 - N)"
                                                             }
                                                          }
                                                       },
@@ -14091,14 +17901,15 @@ var pveapi = [
                                                       "node" : {
                                                          "description" : "The cluster node name.",
                                                          "format" : "pve-node",
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "vmid" : {
                                                          "description" : "The (unique) ID of the VM.",
                                                          "format" : "pve-vmid",
                                                          "minimum" : 1,
                                                          "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
+                                                         "typetext" : "<integer> (1 - N)"
                                                       }
                                                    }
                                                 },
@@ -14133,14 +17944,15 @@ var pveapi = [
                                                       "node" : {
                                                          "description" : "The cluster node name.",
                                                          "format" : "pve-node",
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "vmid" : {
                                                          "description" : "The (unique) ID of the VM.",
                                                          "format" : "pve-vmid",
                                                          "minimum" : 1,
                                                          "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
+                                                         "typetext" : "<integer> (1 - N)"
                                                       }
                                                    }
                                                 },
@@ -14195,11 +18007,13 @@ var pveapi = [
                                                       "cidr" : {
                                                          "description" : "Network/IP specification in CIDR format.",
                                                          "format" : "IPorCIDRorAlias",
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "comment" : {
                                                          "optional" : 1,
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "name" : {
                                                          "description" : "IP set name.",
@@ -14211,18 +18025,20 @@ var pveapi = [
                                                       "node" : {
                                                          "description" : "The cluster node name.",
                                                          "format" : "pve-node",
-                                                         "type" : "string"
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
                                                       },
                                                       "nomatch" : {
                                                          "optional" : 1,
-                                                         "type" : "boolean"
+                                                         "type" : "boolean",
+                                                         "typetext" : "<boolean>"
                                                       },
                                                       "vmid" : {
                                                          "description" : "The (unique) ID of the VM.",
                                                          "format" : "pve-vmid",
                                                          "minimum" : 1,
                                                          "type" : "integer",
-                                                         "typetext" : "integer (1- N)"
+                                                         "typetext" : "<integer> (1 - N)"
                                                       }
                                                    }
                                                 },
@@ -14257,14 +18073,15 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -14318,13 +18135,15 @@ var pveapi = [
                                              "properties" : {
                                                 "comment" : {
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "digest" : {
                                                    "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
                                                    "maxLength" : 40,
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "name" : {
                                                    "description" : "IP set name.",
@@ -14336,7 +18155,8 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "rename" : {
                                                    "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
@@ -14351,7 +18171,7 @@ var pveapi = [
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -14386,14 +18206,15 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -14506,28 +18327,33 @@ var pveapi = [
                                                    "description" : "A list of settings you want to delete.",
                                                    "format" : "pve-configid-list",
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "dhcp" : {
                                                    "description" : "Enable DHCP.",
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
                                                 "digest" : {
                                                    "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
                                                    "maxLength" : 40,
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "enable" : {
                                                    "description" : "Enable/disable firewall rules.",
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
                                                 "ipfilter" : {
                                                    "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
                                                 "log_level_in" : {
                                                    "description" : "Log level for incoming traffic.",
@@ -14564,17 +18390,20 @@ var pveapi = [
                                                 "macfilter" : {
                                                    "description" : "Enable/disable MAC address filter.",
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
                                                 "ndp" : {
                                                    "description" : "Enable NDP.",
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "policy_in" : {
                                                    "description" : "Input policy.",
@@ -14599,14 +18428,15 @@ var pveapi = [
                                                 "radv" : {
                                                    "description" : "Allow sending Router Advertisement.",
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -14643,25 +18473,26 @@ var pveapi = [
                                                    "minimum" : 0,
                                                    "optional" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (0- N)"
+                                                   "typetext" : "<integer> (0 - N)"
                                                 },
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "start" : {
                                                    "minimum" : 0,
                                                    "optional" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (0- N)"
+                                                   "typetext" : "<integer> (0 - N)"
                                                 },
                                                 "vmid" : {
                                                    "description" : "The (unique) ID of the VM.",
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -14710,7 +18541,8 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "type" : {
                                                    "description" : "Only list references of specified type.",
@@ -14726,7 +18558,7 @@ var pveapi = [
                                                    "format" : "pve-vmid",
                                                    "minimum" : 1,
                                                    "type" : "integer",
-                                                   "typetext" : "integer (1- N)"
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
                                              }
                                           },
@@ -14779,14 +18611,15 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -14833,12 +18666,14 @@ var pveapi = [
                                           "ds" : {
                                              "description" : "The list of datasources you want to display.",
                                              "format" : "pve-configid-list",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "timeframe" : {
                                              "description" : "Specify the time frame you are interested in.",
@@ -14856,7 +18691,7 @@ var pveapi = [
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -14905,7 +18740,8 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "timeframe" : {
                                              "description" : "Specify the time frame you are interested in.",
@@ -14923,7 +18759,7 @@ var pveapi = [
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -14959,22 +18795,40 @@ var pveapi = [
                                     "parameters" : {
                                        "additionalProperties" : 0,
                                        "properties" : {
+                                          "height" : {
+                                             "description" : "sets the height of the console in pixels.",
+                                             "maximum" : 2160,
+                                             "minimum" : 16,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (16 - 2160)"
+                                          },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           },
                                           "websocket" : {
                                              "description" : "use websocket instead of standard VNC.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "width" : {
+                                             "description" : "sets the width of the console in pixels.",
+                                             "maximum" : 4096,
+                                             "minimum" : 16,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (16 - 4096)"
                                           }
                                        }
                                     },
@@ -15014,6 +18868,63 @@ var pveapi = [
                               "path" : "/nodes/{node}/lxc/{vmid}/vncproxy",
                               "text" : "vncproxy"
                            },
+                           {
+                              "info" : {
+                                 "POST" : {
+                                    "description" : "Creates a TCP proxy connection.",
+                                    "method" : "POST",
+                                    "name" : "termproxy",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "vmid" : {
+                                             "description" : "The (unique) ID of the VM.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/vms/{vmid}",
+                                          [
+                                             "VM.Console"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "returns" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "port" : {
+                                             "type" : "integer"
+                                          },
+                                          "ticket" : {
+                                             "type" : "string"
+                                          },
+                                          "upid" : {
+                                             "type" : "string"
+                                          },
+                                          "user" : {
+                                             "type" : "string"
+                                          }
+                                       }
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/lxc/{vmid}/termproxy",
+                              "text" : "termproxy"
+                           },
                            {
                               "info" : {
                                  "GET" : {
@@ -15026,26 +18937,28 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "port" : {
                                              "description" : "Port number returned by previous vncproxy call.",
                                              "maximum" : 5999,
                                              "minimum" : 5900,
                                              "type" : "integer",
-                                             "typetext" : "integer (5900-5999)"
+                                             "typetext" : "<integer> (5900 - 5999)"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           },
                                           "vncticket" : {
                                              "description" : "Ticket from previous call to vncproxy.",
                                              "maxLength" : 512,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           }
                                        }
                                     },
@@ -15085,20 +18998,22 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "proxy" : {
                                              "description" : "SPICE proxy server. This can be used by the client to specify the proxy server. All nodes in a cluster runs 'spiceproxy', so it is up to the client to choose one. By default, we return the node where the VM is currently running. As resonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI).",
                                              "format" : "address",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -15150,31 +19065,48 @@ var pveapi = [
                                        "additionalProperties" : 0,
                                        "properties" : {
                                           "force" : {
-                                             "description" : "Force migration despite local bind / device mounts. WARNING: identical bind / device mounts need to  be available on the target node.",
+                                             "description" : "Force migration despite local bind / device mounts. NOTE: deprecated, use 'shared' property of mount point instead.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "online" : {
                                              "description" : "Use online/live migration.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "restart" : {
+                                             "description" : "Use restart migration",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "target" : {
                                              "description" : "Target node.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "timeout" : {
+                                             "default" : 180,
+                                             "description" : "Timeout in seconds for shutdown for restart migration",
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -15211,28 +19143,32 @@ var pveapi = [
                                           "feature" : {
                                              "description" : "Feature to check.",
                                              "enum" : [
-                                                "snapshot"
+                                                "snapshot",
+                                                "clone",
+                                                "copy"
                                              ],
                                              "type" : "string"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "snapname" : {
                                              "description" : "The name of the snapshot.",
                                              "format" : "pve-configid",
                                              "maxLength" : 40,
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -15270,22 +19206,18 @@ var pveapi = [
                                     "parameters" : {
                                        "additionalProperties" : 0,
                                        "properties" : {
-                                          "experimental" : {
-                                             "default" : 0,
-                                             "description" : "The template feature is experimental, set this flag if you know what you are doing.",
-                                             "type" : "boolean"
-                                          },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -15322,63 +19254,70 @@ var pveapi = [
                                           "description" : {
                                              "description" : "Description for the new CT.",
                                              "optional" : 1,
-                                             "type" : "string"
-                                          },
-                                          "experimental" : {
-                                             "default" : 0,
-                                             "description" : "The clone feature is experimental, set this flag if you know what you are doing.",
-                                             "type" : "boolean"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "full" : {
-                                             "default" : 0,
-                                             "description" : "Create a full copy of all disk. This is always done when you clone a normal CT. For CT templates, we try to create a linked clone by default.",
+                                             "description" : "Create a full copy of all disks. This is always done when you clone a normal CT. For CT templates, we try to create a linked clone by default.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "hostname" : {
                                              "description" : "Set a hostname for the new CT.",
                                              "format" : "dns-name",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "newid" : {
                                              "description" : "VMID for the clone.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "pool" : {
                                              "description" : "Add the new CT to the specified pool.",
                                              "format" : "pve-poolid",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "snapname" : {
                                              "description" : "The name of the snapshot.",
                                              "format" : "pve-configid",
                                              "maxLength" : 40,
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "storage" : {
                                              "description" : "Target storage for full clone.",
                                              "format" : "pve-storage-id",
                                              "optional" : 1,
-                                             "requires" : "full",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "target" : {
+                                             "description" : "Target node. Only allowed if the original VM is on shared storage.",
+                                             "format" : "pve-node",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -15428,7 +19367,7 @@ var pveapi = [
                            {
                               "info" : {
                                  "PUT" : {
-                                    "description" : "Resize a container mountpoint.",
+                                    "description" : "Resize a container mount point.",
                                     "method" : "PUT",
                                     "name" : "resize_vm",
                                     "parameters" : {
@@ -15438,10 +19377,113 @@ var pveapi = [
                                              "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>"
+                                          },
+                                          "disk" : {
+                                             "description" : "The disk you want to resize.",
+                                             "enum" : [
+                                                "rootfs",
+                                                "mp0",
+                                                "mp1",
+                                                "mp2",
+                                                "mp3",
+                                                "mp4",
+                                                "mp5",
+                                                "mp6",
+                                                "mp7",
+                                                "mp8",
+                                                "mp9"
+                                             ],
+                                             "type" : "string"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "size" : {
+                                             "description" : "The new size. With the '+' sign the value is added to the actual size of the volume and without it, the value is taken as an absolute one. Shrinking disk size is not supported.",
+                                             "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
                                              "type" : "string"
                                           },
-                                          "disk" : {
-                                             "description" : "The disk you want to resize.",
+                                          "vmid" : {
+                                             "description" : "The (unique) ID of the VM.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/vms/{vmid}",
+                                          [
+                                             "VM.Config.Disk"
+                                          ],
+                                          "any",
+                                          1
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "description" : "the task ID.",
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/lxc/{vmid}/resize",
+                              "text" : "resize"
+                           },
+                           {
+                              "info" : {
+                                 "POST" : {
+                                    "description" : "Move a rootfs-/mp-volume to a different storage",
+                                    "method" : "POST",
+                                    "name" : "move_volume",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "delete" : {
+                                             "default" : 0,
+                                             "description" : "Delete the original volume after successful copy. By default the original is kept as an unused volume entry.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "digest" : {
+                                             "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                             "maxLength" : 40,
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "storage" : {
+                                             "description" : "Target Storage.",
+                                             "format" : "pve-storage-id",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "vmid" : {
+                                             "description" : "The (unique) ID of the VM.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          },
+                                          "volume" : {
+                                             "description" : "Volume which will be moved.",
                                              "enum" : [
                                                 "rootfs",
                                                 "mp0",
@@ -15456,48 +19498,39 @@ var pveapi = [
                                                 "mp9"
                                              ],
                                              "type" : "string"
-                                          },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "type" : "string"
-                                          },
-                                          "size" : {
-                                             "description" : "The new size. With the '+' sign the value is added to the actual size of the volume and without it, the value is taken as an absolute one. Shrinking disk size is not supported.",
-                                             "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
-                                             "type" : "string"
-                                          },
-                                          "vmid" : {
-                                             "description" : "The (unique) ID of the VM.",
-                                             "format" : "pve-vmid",
-                                             "minimum" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "integer (1- N)"
                                           }
                                        }
                                     },
                                     "permissions" : {
                                        "check" : [
-                                          "perm",
-                                          "/vms/{vmid}",
+                                          "and",
                                           [
-                                             "VM.Config.Disk"
+                                             "perm",
+                                             "/vms/{vmid}",
+                                             [
+                                                "VM.Config.Disk"
+                                             ]
                                           ],
-                                          "any",
-                                          1
-                                       ]
+                                          [
+                                             "perm",
+                                             "/storage/{storage}",
+                                             [
+                                                "Datastore.AllocateSpace"
+                                             ]
+                                          ]
+                                       ],
+                                       "description" : "You need 'VM.Config.Disk' permissions on /vms/{vmid}, and 'Datastore.AllocateSpace' permissions on the storage."
                                     },
                                     "protected" : 1,
                                     "proxyto" : "node",
                                     "returns" : {
-                                       "description" : "the task ID.",
                                        "type" : "string"
                                     }
                                  }
                               },
                               "leaf" : 1,
-                              "path" : "/nodes/{node}/lxc/{vmid}/resize",
-                              "text" : "resize"
+                              "path" : "/nodes/{node}/lxc/{vmid}/move_volume",
+                              "text" : "move_volume"
                            }
                         ],
                         "info" : {
@@ -15511,14 +19544,15 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "vmid" : {
                                        "description" : "The (unique) ID of the VM.",
                                        "format" : "pve-vmid",
                                        "minimum" : 1,
                                        "type" : "integer",
-                                       "typetext" : "integer (1- N)"
+                                       "typetext" : "<integer> (1 - N)"
                                     }
                                  }
                               },
@@ -15547,14 +19581,15 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "vmid" : {
                                        "description" : "The (unique) ID of the VM.",
                                        "format" : "pve-vmid",
                                        "minimum" : 1,
                                        "type" : "integer",
-                                       "typetext" : "integer (1- N)"
+                                       "typetext" : "<integer> (1 - N)"
                                     }
                                  }
                               },
@@ -15597,7 +19632,8 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -15638,6 +19674,13 @@ var pveapi = [
                                  "optional" : 1,
                                  "type" : "string"
                               },
+                              "bwlimit" : {
+                                 "description" : "Override i/o bandwidth limit (in KiB/s).",
+                                 "minimum" : "0",
+                                 "optional" : 1,
+                                 "type" : "number",
+                                 "typetext" : "<number> (0 - N)"
+                              },
                               "cmode" : {
                                  "default" : "tty",
                                  "description" : "Console mode. By default, the console command tries to open a connection to one of the available tty devices. By setting cmode to 'console' it tries to attach to /dev/console instead. If you set cmode to 'shell', it simply invokes a shell inside the container (no login).",
@@ -15653,7 +19696,16 @@ var pveapi = [
                                  "default" : 1,
                                  "description" : "Attach a console device (/dev/console) to the container.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "cores" : {
+                                 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
+                                 "maximum" : 128,
+                                 "minimum" : 1,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (1 - 128)"
                               },
                               "cpulimit" : {
                                  "default" : 0,
@@ -15662,7 +19714,7 @@ var pveapi = [
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "number",
-                                 "typetext" : "number (0-128)"
+                                 "typetext" : "<number> (0 - 128)"
                               },
                               "cpuunits" : {
                                  "default" : 1024,
@@ -15671,29 +19723,33 @@ var pveapi = [
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (0-500000)"
+                                 "typetext" : "<integer> (0 - 500000)"
                               },
                               "description" : {
                                  "description" : "Container description. Only used on the configuration web interface.",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "force" : {
                                  "description" : "Allow to overwrite existing container.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "hostname" : {
                                  "description" : "Set a host name for the container.",
                                  "format" : "dns-name",
                                  "maxLength" : 255,
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "ignore-unpack-errors" : {
                                  "description" : "Ignore errors when extracting the template.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "lock" : {
                                  "description" : "Lock/unlock the VM.",
@@ -15712,7 +19768,7 @@ var pveapi = [
                                  "minimum" : 16,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (16- N)"
+                                 "typetext" : "<integer> (16 - N)"
                               },
                               "mp[n]" : {
                                  "description" : "Use volume as container mount point.",
@@ -15723,28 +19779,41 @@ var pveapi = [
                                        "type" : "boolean"
                                     },
                                     "backup" : {
-                                       "description" : "Whether to include the mountpoint in backups.",
+                                       "description" : "Whether to include the mount point in backups.",
                                        "optional" : 1,
                                        "type" : "boolean",
-                                       "verbose_description" : "Whether to include the mountpoint in backups (only used for volume mountpoints)."
+                                       "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
                                     },
                                     "mp" : {
-                                       "description" : "Path to the mountpoint as seen from inside the container (must not contain symlinks).",
+                                       "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
                                        "format" : "pve-lxc-mp-string",
                                        "format_description" : "Path",
                                        "type" : "string",
-                                       "verbose_description" : "Path to the mountpoint as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
+                                       "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
                                     },
                                     "quota" : {
                                        "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
                                        "optional" : 1,
                                        "type" : "boolean"
                                     },
+                                    "replicate" : {
+                                       "default" : 1,
+                                       "description" : "Will include this volume to a storage replica job.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
                                     "ro" : {
-                                       "description" : "Read-only mountpoint",
+                                       "description" : "Read-only mount point",
                                        "optional" : 1,
                                        "type" : "boolean"
                                     },
+                                    "shared" : {
+                                       "default" : 0,
+                                       "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!"
+                                    },
                                     "size" : {
                                        "description" : "Volume size (read only value).",
                                        "format" : "disk-size",
@@ -15762,13 +19831,14 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[volume=]<volume> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,quota=<1|0>] [,ro=<1|0>] [,size=<DiskSize>]"
+                                 "typetext" : "[volume=]<volume> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
                               },
                               "nameserver" : {
                                  "description" : "Sets DNS server IP address for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
                                  "format" : "address-list",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "net[n]" : {
                                  "description" : "Specifies network interfaces for the container.",
@@ -15809,14 +19879,14 @@ var pveapi = [
                                     "ip" : {
                                        "description" : "IPv4 address in CIDR format.",
                                        "format" : "pve-ipv4-config",
-                                       "format_description" : "IPv4Format/CIDR",
+                                       "format_description" : "(IPv4/CIDR|dhcp|manual)",
                                        "optional" : 1,
                                        "type" : "string"
                                     },
                                     "ip6" : {
                                        "description" : "IPv6 address in CIDR format.",
                                        "format" : "pve-ipv6-config",
-                                       "format_description" : "IPv6Format/CIDR",
+                                       "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
                                        "optional" : 1,
                                        "type" : "string"
                                     },
@@ -15863,23 +19933,26 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
+                                 "typetext" : "name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
                               },
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "onboot" : {
                                  "default" : 0,
                                  "description" : "Specifies whether a VM will be started during system bootup.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "ostemplate" : {
                                  "description" : "The OS template or backup file.",
                                  "maxLength" : 255,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "ostype" : {
                                  "description" : "OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/<ostype>.common.conf. Value 'unmanaged' can be used to skip and OS specific setup.",
@@ -15901,24 +19974,28 @@ var pveapi = [
                                  "description" : "Sets root password inside container.",
                                  "minLength" : 5,
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "pool" : {
                                  "description" : "Add the VM to the specified pool.",
                                  "format" : "pve-poolid",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "protection" : {
                                  "default" : 0,
                                  "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "restore" : {
                                  "description" : "Mark this as restore task.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "rootfs" : {
                                  "description" : "Use volume as container root.",
@@ -15933,11 +20010,24 @@ var pveapi = [
                                        "optional" : 1,
                                        "type" : "boolean"
                                     },
+                                    "replicate" : {
+                                       "default" : 1,
+                                       "description" : "Will include this volume to a storage replica job.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
                                     "ro" : {
-                                       "description" : "Read-only mountpoint",
+                                       "description" : "Read-only mount point",
                                        "optional" : 1,
                                        "type" : "boolean"
                                     },
+                                    "shared" : {
+                                       "default" : 0,
+                                       "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!"
+                                    },
                                     "size" : {
                                        "description" : "Volume size (read only value).",
                                        "format" : "disk-size",
@@ -15955,18 +20045,27 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[volume=]<volume> [,acl=<1|0>] [,quota=<1|0>] [,ro=<1|0>] [,size=<DiskSize>]"
+                                 "typetext" : "[volume=]<volume> [,acl=<1|0>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
                               },
                               "searchdomain" : {
                                  "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
                                  "format" : "dns-name-list",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "ssh-public-keys" : {
                                  "description" : "Setup public SSH keys (one key per line, OpenSSH format).",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "start" : {
+                                 "default" : 0,
+                                 "description" : "Start the CT after its creation finished successfully.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "startup" : {
                                  "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
@@ -15980,7 +20079,8 @@ var pveapi = [
                                  "description" : "Default Storage.",
                                  "format" : "pve-storage-id",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "swap" : {
                                  "default" : 512,
@@ -15988,13 +20088,14 @@ var pveapi = [
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (0- N)"
+                                 "typetext" : "<integer> (0 - N)"
                               },
                               "template" : {
                                  "default" : 0,
                                  "description" : "Enable/disable Template.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "tty" : {
                                  "default" : 2,
@@ -16003,26 +20104,28 @@ var pveapi = [
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (0-6)"
+                                 "typetext" : "<integer> (0 - 6)"
                               },
                               "unprivileged" : {
                                  "default" : 0,
                                  "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "unused[n]" : {
                                  "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
                                  "format" : "pve-volume-id",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "vmid" : {
                                  "description" : "The (unique) ID of the VM.",
                                  "format" : "pve-vmid",
                                  "minimum" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (1- N)"
+                                 "typetext" : "<integer> (1 - N)"
                               }
                            }
                         },
@@ -16059,11 +20162,13 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "osdid" : {
                                                    "description" : "OSD ID",
-                                                   "type" : "integer"
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer>"
                                                 }
                                              }
                                           },
@@ -16099,11 +20204,13 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "osdid" : {
                                                    "description" : "OSD ID",
-                                                   "type" : "integer"
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer>"
                                                 }
                                              }
                                           },
@@ -16140,16 +20247,19 @@ var pveapi = [
                                              "default" : 0,
                                              "description" : "If set, we remove partition table entries.",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "osdid" : {
                                              "description" : "OSD ID",
-                                             "type" : "integer"
+                                             "type" : "integer",
+                                             "typetext" : "<integer>"
                                           }
                                        }
                                     },
@@ -16176,7 +20286,8 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -16205,13 +20316,21 @@ var pveapi = [
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
+                                    "bluestore" : {
+                                       "default" : 1,
+                                       "description" : "Use bluestore instead of filestore. This is the default.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
                                     "dev" : {
                                        "description" : "Block device name.",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "fstype" : {
                                        "default" : "xfs",
-                                       "description" : "File system type.",
+                                       "description" : "File system type (filestore only).",
                                        "enum" : [
                                           "xfs",
                                           "ext4",
@@ -16221,14 +20340,22 @@ var pveapi = [
                                        "type" : "string"
                                     },
                                     "journal_dev" : {
-                                       "description" : "Block device name for journal.",
+                                       "description" : "Block device name for journal (filestore) or block.db (bluestore).",
                                        "optional" : 1,
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "wal_dev" : {
+                                       "description" : "Block device name for block.wal (bluestore only).",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -16255,7 +20382,8 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "type" : {
                                        "description" : "Only list specific types of disks.",
@@ -16336,7 +20464,8 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -16366,20 +20495,29 @@ var pveapi = [
                            {
                               "info" : {
                                  "DELETE" : {
-                                    "description" : "Destroy Ceph monitor.",
+                                    "description" : "Destroy Ceph Monitor and Manager.",
                                     "method" : "DELETE",
                                     "name" : "destroymon",
                                     "parameters" : {
                                        "additionalProperties" : 0,
                                        "properties" : {
+                                          "exclude-manager" : {
+                                             "default" : 0,
+                                             "description" : "When set, removes only the monitor, not the manager",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
                                           "monid" : {
                                              "description" : "Monitor ID",
-                                             "type" : "integer"
+                                             "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
+                                             "type" : "string"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           }
                                        }
                                     },
@@ -16415,7 +20553,8 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -16455,16 +20594,37 @@ var pveapi = [
                               }
                            },
                            "POST" : {
-                              "description" : "Create Ceph Monitor",
+                              "description" : "Create Ceph Monitor and Manager",
                               "method" : "POST",
                               "name" : "createmon",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
+                                    "exclude-manager" : {
+                                       "default" : 0,
+                                       "description" : "When set, only a monitor will be created.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "id" : {
+                                       "description" : "The ID for the monitor, when omitted the same as the nodename",
+                                       "optional" : 1,
+                                       "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
+                                       "type" : "string"
+                                    },
+                                    "mon-address" : {
+                                       "description" : "Overwrites autodetected monitor IP address. Must be in the public network of ceph.",
+                                       "format" : "ip",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -16497,17 +20657,35 @@ var pveapi = [
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
+                                    "disable_cephx" : {
+                                       "default" : 0,
+                                       "description" : "Disable cephx authentification.\n\nWARNING: cephx is a security feature protecting against man-in-the-middle attacks. Only consider disabling cephx if your network is private!",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "min_size" : {
+                                       "default" : 2,
+                                       "description" : "Minimum number of available replicas per object to allow I/O",
+                                       "maximum" : 7,
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (1 - 7)"
+                                    },
                                     "network" : {
                                        "description" : "Use specific network for all ceph related traffic",
                                        "format" : "CIDR",
                                        "maxLength" : 128,
                                        "optional" : 1,
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "pg_bits" : {
                                        "default" : 6,
@@ -16515,17 +20693,104 @@ var pveapi = [
                                        "maximum" : 14,
                                        "minimum" : 6,
                                        "optional" : 1,
-                                       "type" : "integer",
-                                       "typetext" : "integer (6-14)"
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (6 - 14)"
+                                    },
+                                    "size" : {
+                                       "default" : 3,
+                                       "description" : "Targeted number of replicas per object",
+                                       "maximum" : 7,
+                                       "minimum" : 1,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (1 - 7)"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Modify"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/ceph/init",
+                        "text" : "init"
+                     },
+                     {
+                        "children" : [
+                           {
+                              "info" : {
+                                 "DELETE" : {
+                                    "description" : "Destroy Ceph Manager.",
+                                    "method" : "DELETE",
+                                    "name" : "destroymgr",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "id" : {
+                                             "description" : "The ID of the manager",
+                                             "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
+                                             "type" : "string"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/",
+                                          [
+                                             "Sys.Modify"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/ceph/mgr/{id}",
+                              "text" : "{id}"
+                           }
+                        ],
+                        "info" : {
+                           "POST" : {
+                              "description" : "Create Ceph Manager",
+                              "method" : "POST",
+                              "name" : "createmgr",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "id" : {
+                                       "description" : "The ID for the manager, when omitted the same as the nodename",
+                                       "optional" : 1,
+                                       "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
+                                       "type" : "string"
                                     },
-                                    "size" : {
-                                       "default" : 2,
-                                       "description" : "Number of replicas per object",
-                                       "maximum" : 3,
-                                       "minimum" : 1,
-                                       "optional" : 1,
-                                       "type" : "integer",
-                                       "typetext" : "integer (1-3)"
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -16541,13 +20806,13 @@ var pveapi = [
                               "protected" : 1,
                               "proxyto" : "node",
                               "returns" : {
-                                 "type" : "null"
+                                 "type" : "string"
                               }
                            }
                         },
-                        "leaf" : 1,
-                        "path" : "/nodes/{node}/ceph/init",
-                        "text" : "init"
+                        "leaf" : 0,
+                        "path" : "/nodes/{node}/ceph/mgr",
+                        "text" : "mgr"
                      },
                      {
                         "info" : {
@@ -16561,12 +20826,13 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "service" : {
                                        "description" : "Ceph service name.",
                                        "optional" : 1,
-                                       "pattern" : "(mon|mds|osd)\\.[A-Za-z0-9]{1,32}",
+                                       "pattern" : "(mon|mds|osd|mgr)\\.[A-Za-z0-9\\-]{1,32}",
                                        "type" : "string"
                                     }
                                  }
@@ -16603,12 +20869,13 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "service" : {
                                        "description" : "Ceph service name.",
                                        "optional" : 1,
-                                       "pattern" : "(mon|mds|osd)\\.[A-Za-z0-9]{1,32}",
+                                       "pattern" : "(mon|mds|osd|mgr)\\.[A-Za-z0-9\\-]{1,32}",
                                        "type" : "string"
                                     }
                                  }
@@ -16645,7 +20912,8 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -16687,16 +20955,26 @@ var pveapi = [
                                              "default" : 0,
                                              "description" : "If true, destroys pool even if in use",
                                              "optional" : 1,
-                                             "type" : "boolean"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
                                           "name" : {
                                              "description" : "The name of the pool. It must be unique.",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "remove_storages" : {
+                                             "default" : 0,
+                                             "description" : "Remove all pveceph-managed storages configured for this pool",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           }
                                        }
                                     },
@@ -16712,7 +20990,7 @@ var pveapi = [
                                     "protected" : 1,
                                     "proxyto" : "node",
                                     "returns" : {
-                                       "type" : "null"
+                                       "type" : "string"
                                     }
                                  }
                               },
@@ -16732,7 +21010,8 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -16781,32 +21060,47 @@ var pveapi = [
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
-                                    "crush_ruleset" : {
-                                       "default" : 0,
-                                       "description" : "The ruleset to use for mapping object placement in the cluster.",
-                                       "maximum" : 32768,
-                                       "minimum" : 0,
+                                    "add_storages" : {
+                                       "description" : "Configure VM and CT storages using the new pool.",
                                        "optional" : 1,
-                                       "type" : "integer",
-                                       "typetext" : "integer (0-32768)"
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "application" : {
+                                       "description" : "The application of the pool, 'rbd' by default.",
+                                       "enum" : [
+                                          "rbd",
+                                          "cephfs",
+                                          "rgw"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "crush_rule" : {
+                                       "description" : "The rule to use for mapping object placement in the cluster.",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "min_size" : {
-                                       "default" : 1,
+                                       "default" : 2,
                                        "description" : "Minimum number of replicas per object",
-                                       "maximum" : 3,
+                                       "maximum" : 7,
                                        "minimum" : 1,
                                        "optional" : 1,
                                        "type" : "integer",
-                                       "typetext" : "integer (1-3)"
+                                       "typetext" : "<integer> (1 - 7)"
                                     },
                                     "name" : {
                                        "description" : "The name of the pool. It must be unique.",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "pg_num" : {
                                        "default" : 64,
@@ -16815,16 +21109,16 @@ var pveapi = [
                                        "minimum" : 8,
                                        "optional" : 1,
                                        "type" : "integer",
-                                       "typetext" : "integer (8-32768)"
+                                       "typetext" : "<integer> (8 - 32768)"
                                     },
                                     "size" : {
-                                       "default" : 2,
+                                       "default" : 3,
                                        "description" : "Number of replicas per object",
-                                       "maximum" : 3,
+                                       "maximum" : 7,
                                        "minimum" : 1,
                                        "optional" : 1,
                                        "type" : "integer",
-                                       "typetext" : "integer (1-3)"
+                                       "typetext" : "<integer> (1 - 7)"
                                     }
                                  }
                               },
@@ -16840,7 +21134,7 @@ var pveapi = [
                               "protected" : 1,
                               "proxyto" : "node",
                               "returns" : {
-                                 "type" : "null"
+                                 "type" : "string"
                               }
                            }
                         },
@@ -16848,6 +21142,148 @@ var pveapi = [
                         "path" : "/nodes/{node}/ceph/pools",
                         "text" : "pools"
                      },
+                     {
+                        "children" : [
+                           {
+                              "info" : {
+                                 "DELETE" : {
+                                    "description" : "Unset a ceph flag",
+                                    "method" : "DELETE",
+                                    "name" : "unset_flag",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "flag" : {
+                                             "description" : "The ceph flag to set/unset",
+                                             "enum" : [
+                                                "full",
+                                                "pause",
+                                                "noup",
+                                                "nodown",
+                                                "noout",
+                                                "noin",
+                                                "nobackfill",
+                                                "norebalance",
+                                                "norecover",
+                                                "noscrub",
+                                                "nodeep-scrub",
+                                                "notieragent"
+                                             ],
+                                             "type" : "string"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/",
+                                          [
+                                             "Sys.Modify"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "null"
+                                    }
+                                 },
+                                 "POST" : {
+                                    "description" : "Set a ceph flag",
+                                    "method" : "POST",
+                                    "name" : "set_flag",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "flag" : {
+                                             "description" : "The ceph flag to set/unset",
+                                             "enum" : [
+                                                "full",
+                                                "pause",
+                                                "noup",
+                                                "nodown",
+                                                "noout",
+                                                "noin",
+                                                "nobackfill",
+                                                "norebalance",
+                                                "norecover",
+                                                "noscrub",
+                                                "nodeep-scrub",
+                                                "notieragent"
+                                             ],
+                                             "type" : "string"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/",
+                                          [
+                                             "Sys.Modify"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "null"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/ceph/flags/{flag}",
+                              "text" : "{flag}"
+                           }
+                        ],
+                        "info" : {
+                           "GET" : {
+                              "description" : "get all set ceph flags",
+                              "method" : "GET",
+                              "name" : "get_flags",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Audit"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "type" : "string"
+                              }
+                           }
+                        },
+                        "leaf" : 0,
+                        "path" : "/nodes/{node}/ceph/flags",
+                        "text" : "flags"
+                     },
                      {
                         "info" : {
                            "GET" : {
@@ -16860,7 +21296,8 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -16900,18 +21337,19 @@ var pveapi = [
                                        "minimum" : 0,
                                        "optional" : 1,
                                        "type" : "integer",
-                                       "typetext" : "integer (0- N)"
+                                       "typetext" : "<integer> (0 - N)"
                                     },
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "start" : {
                                        "minimum" : 0,
                                        "optional" : 1,
                                        "type" : "integer",
-                                       "typetext" : "integer (0- N)"
+                                       "typetext" : "<integer> (0 - N)"
                                     }
                                  }
                               },
@@ -16947,6 +21385,56 @@ var pveapi = [
                         "leaf" : 1,
                         "path" : "/nodes/{node}/ceph/log",
                         "text" : "log"
+                     },
+                     {
+                        "info" : {
+                           "GET" : {
+                              "description" : "List ceph rules.",
+                              "method" : "GET",
+                              "name" : "rules",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Audit",
+                                       "Datastore.Audit"
+                                    ],
+                                    "any",
+                                    1
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "items" : {
+                                    "properties" : {},
+                                    "type" : "object"
+                                 },
+                                 "links" : [
+                                    {
+                                       "href" : "{name}",
+                                       "rel" : "child"
+                                    }
+                                 ],
+                                 "type" : "array"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/ceph/rules",
+                        "text" : "rules"
                      }
                   ],
                   "info" : {
@@ -16960,7 +21448,8 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -17009,11 +21498,13 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "volume" : {
                                        "description" : "Volume identifier",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -17045,7 +21536,8 @@ var pveapi = [
                                  "default" : 0,
                                  "description" : "Backup all known guest systems on this host.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "bwlimit" : {
                                  "default" : 0,
@@ -17053,7 +21545,7 @@ var pveapi = [
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (0- N)"
+                                 "typetext" : "<integer> (0 - N)"
                               },
                               "compress" : {
                                  "default" : "0",
@@ -17070,19 +21562,22 @@ var pveapi = [
                               "dumpdir" : {
                                  "description" : "Store resulting files to specified directory.",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "exclude" : {
                                  "description" : "Exclude specified guest systems (assumes --all)",
                                  "format" : "pve-vmid-list",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "exclude-path" : {
                                  "description" : "Exclude certain files/directories (shell globs).",
                                  "format" : "string-alist",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "ionice" : {
                                  "default" : 7,
@@ -17091,7 +21586,7 @@ var pveapi = [
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (0-8)"
+                                 "typetext" : "<integer> (0 - 8)"
                               },
                               "lockwait" : {
                                  "default" : 180,
@@ -17099,7 +21594,7 @@ var pveapi = [
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (0- N)"
+                                 "typetext" : "<integer> (0 - N)"
                               },
                               "mailnotification" : {
                                  "default" : "always",
@@ -17115,7 +21610,8 @@ var pveapi = [
                                  "description" : "Comma-separated list of email addresses that should receive email notifications.",
                                  "format" : "string-list",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "maxfiles" : {
                                  "default" : 1,
@@ -17123,7 +21619,7 @@ var pveapi = [
                                  "minimum" : 1,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (1- N)"
+                                 "typetext" : "<integer> (1 - N)"
                               },
                               "mode" : {
                                  "default" : "snapshot",
@@ -17140,30 +21636,35 @@ var pveapi = [
                                  "description" : "Only run if executed on this node.",
                                  "format" : "pve-node",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "pigz" : {
                                  "default" : 0,
                                  "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
                                  "optional" : 1,
-                                 "type" : "integer"
+                                 "type" : "integer",
+                                 "typetext" : "<integer>"
                               },
                               "quiet" : {
                                  "default" : 0,
                                  "description" : "Be quiet.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "remove" : {
                                  "default" : 1,
                                  "description" : "Remove old backup files if there are more than 'maxfiles' backup files.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "script" : {
                                  "description" : "Use specified hook script.",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "size" : {
                                  "default" : 1024,
@@ -17171,24 +21672,27 @@ var pveapi = [
                                  "minimum" : 500,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (500- N)"
+                                 "typetext" : "<integer> (500 - N)"
                               },
                               "stdexcludes" : {
                                  "default" : 1,
                                  "description" : "Exclude temporary files and logs.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "stdout" : {
                                  "description" : "Write tar to stdout, not to a file.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "stop" : {
                                  "default" : 0,
                                  "description" : "Stop runnig backup jobs on this host.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "stopwait" : {
                                  "default" : 10,
@@ -17196,29 +21700,32 @@ var pveapi = [
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (0- N)"
+                                 "typetext" : "<integer> (0 - N)"
                               },
                               "storage" : {
                                  "description" : "Store resulting file to this storage.",
                                  "format" : "pve-storage-id",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "tmpdir" : {
                                  "description" : "Store temporary files to specified directory.",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "vmid" : {
                                  "description" : "The ID of the guest system you want to backup.",
                                  "format" : "pve-vmid-list",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
                         "permissions" : {
-                           "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage.",
+                           "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage. The 'maxfiles', 'tmpdir', 'dumpdir', 'script', 'bwlimit' and 'ionice' parameters are restricted to the 'root@pam' user.",
                            "user" : "all"
                         },
                         "protected" : 1,
@@ -17248,7 +21755,8 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "service" : {
                                              "description" : "Service ID",
@@ -17307,7 +21815,8 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "service" : {
                                              "description" : "Service ID",
@@ -17365,7 +21874,8 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "service" : {
                                              "description" : "Service ID",
@@ -17423,7 +21933,8 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "service" : {
                                              "description" : "Service ID",
@@ -17481,7 +21992,8 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "service" : {
                                              "description" : "Service ID",
@@ -17539,7 +22051,8 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "service" : {
                                        "description" : "Service ID",
@@ -17609,7 +22122,8 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -17655,7 +22169,8 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -17678,15 +22193,26 @@ var pveapi = [
                                  "default" : 0,
                                  "description" : "Always connect to server, even if we have up to date info inside local cache.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/nodes/{node}",
+                              [
+                                 "Sys.Modify"
+                              ]
+                           ]
+                        },
                         "protected" : 1,
                         "proxyto" : "node",
                         "returns" : {
@@ -17702,15 +22228,27 @@ var pveapi = [
                            "properties" : {
                               "key" : {
                                  "description" : "Proxmox VE subscription key",
+                                 "maxLength" : 32,
+                                 "pattern" : "pve([124])([cbsp])-[0-9a-f]{10}",
                                  "type" : "string"
                               },
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/nodes/{node}",
+                              [
+                                 "Sys.Modify"
+                              ]
+                           ]
+                        },
                         "protected" : 1,
                         "proxyto" : "node",
                         "returns" : {
@@ -17738,12 +22276,14 @@ var pveapi = [
                                        "format" : "pve-iface",
                                        "maxLength" : 20,
                                        "minLength" : 2,
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -17774,12 +22314,14 @@ var pveapi = [
                                        "format" : "pve-iface",
                                        "maxLength" : 20,
                                        "minLength" : 2,
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -17817,19 +22359,22 @@ var pveapi = [
                                        "format" : "ipv4",
                                        "optional" : 1,
                                        "requires" : "netmask",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "address6" : {
                                        "description" : "IP address.",
                                        "format" : "ipv6",
                                        "optional" : 1,
                                        "requires" : "netmask6",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "autostart" : {
                                        "description" : "Automatically start interface on boot.",
                                        "optional" : 1,
-                                       "type" : "boolean"
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
                                     },
                                     "bond_mode" : {
                                        "description" : "Bonding mode.",
@@ -17862,54 +22407,63 @@ var pveapi = [
                                        "description" : "Specify the iterfaces you want to add to your bridge.",
                                        "format" : "pve-iface-list",
                                        "optional" : 1,
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "bridge_vlan_aware" : {
                                        "description" : "Enable bridge vlan support.",
                                        "optional" : 1,
-                                       "type" : "boolean"
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
                                     },
                                     "comments" : {
                                        "description" : "Comments",
                                        "optional" : 1,
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "comments6" : {
                                        "description" : "Comments",
                                        "optional" : 1,
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "delete" : {
                                        "description" : "A list of settings you want to delete.",
                                        "format" : "pve-configid-list",
                                        "optional" : 1,
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "gateway" : {
                                        "description" : "Default gateway address.",
                                        "format" : "ipv4",
                                        "optional" : 1,
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "gateway6" : {
                                        "description" : "Default ipv6 gateway address.",
                                        "format" : "ipv6",
                                        "optional" : 1,
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "iface" : {
                                        "description" : "Network interface name.",
                                        "format" : "pve-iface",
                                        "maxLength" : 20,
                                        "minLength" : 2,
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "netmask" : {
                                        "description" : "Network mask.",
                                        "format" : "ipv4mask",
                                        "optional" : 1,
                                        "requires" : "address",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "netmask6" : {
                                        "description" : "Network mask.",
@@ -17918,36 +22472,41 @@ var pveapi = [
                                        "optional" : 1,
                                        "requires" : "address6",
                                        "type" : "integer",
-                                       "typetext" : "integer (0-128)"
+                                       "typetext" : "<integer> (0 - 128)"
                                     },
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "ovs_bonds" : {
                                        "description" : "Specify the interfaces used by the bonding device.",
                                        "format" : "pve-iface-list",
                                        "optional" : 1,
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "ovs_bridge" : {
                                        "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
                                        "format" : "pve-iface",
                                        "optional" : 1,
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "ovs_options" : {
                                        "description" : "OVS interface options.",
                                        "maxLength" : 1024,
                                        "optional" : 1,
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "ovs_ports" : {
                                        "description" : "Specify the iterfaces you want to add to your bridge.",
                                        "format" : "pve-iface-list",
                                        "optional" : 1,
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "ovs_tag" : {
                                        "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
@@ -17955,13 +22514,14 @@ var pveapi = [
                                        "minimum" : 1,
                                        "optional" : 1,
                                        "type" : "integer",
-                                       "typetext" : "integer (1-4094)"
+                                       "typetext" : "<integer> (1 - 4094)"
                                     },
                                     "slaves" : {
                                        "description" : "Specify the interfaces used by the bonding device.",
                                        "format" : "pve-iface-list",
                                        "optional" : 1,
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "type" : {
                                        "description" : "Network interface type",
@@ -18013,7 +22573,8 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -18042,7 +22603,8 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "type" : {
                                  "description" : "Only list specific interface types.",
@@ -18093,19 +22655,22 @@ var pveapi = [
                                  "format" : "ipv4",
                                  "optional" : 1,
                                  "requires" : "netmask",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "address6" : {
                                  "description" : "IP address.",
                                  "format" : "ipv6",
                                  "optional" : 1,
                                  "requires" : "netmask6",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "autostart" : {
                                  "description" : "Automatically start interface on boot.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "bond_mode" : {
                                  "description" : "Bonding mode.",
@@ -18138,48 +22703,56 @@ var pveapi = [
                                  "description" : "Specify the iterfaces you want to add to your bridge.",
                                  "format" : "pve-iface-list",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "bridge_vlan_aware" : {
                                  "description" : "Enable bridge vlan support.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "comments" : {
                                  "description" : "Comments",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "comments6" : {
                                  "description" : "Comments",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "gateway" : {
                                  "description" : "Default gateway address.",
                                  "format" : "ipv4",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "gateway6" : {
                                  "description" : "Default ipv6 gateway address.",
                                  "format" : "ipv6",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "iface" : {
                                  "description" : "Network interface name.",
                                  "format" : "pve-iface",
                                  "maxLength" : 20,
                                  "minLength" : 2,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "netmask" : {
                                  "description" : "Network mask.",
                                  "format" : "ipv4mask",
                                  "optional" : 1,
                                  "requires" : "address",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "netmask6" : {
                                  "description" : "Network mask.",
@@ -18188,36 +22761,41 @@ var pveapi = [
                                  "optional" : 1,
                                  "requires" : "address6",
                                  "type" : "integer",
-                                 "typetext" : "integer (0-128)"
+                                 "typetext" : "<integer> (0 - 128)"
                               },
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "ovs_bonds" : {
                                  "description" : "Specify the interfaces used by the bonding device.",
                                  "format" : "pve-iface-list",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "ovs_bridge" : {
                                  "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
                                  "format" : "pve-iface",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "ovs_options" : {
                                  "description" : "OVS interface options.",
                                  "maxLength" : 1024,
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "ovs_ports" : {
                                  "description" : "Specify the iterfaces you want to add to your bridge.",
                                  "format" : "pve-iface-list",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "ovs_tag" : {
                                  "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
@@ -18225,13 +22803,14 @@ var pveapi = [
                                  "minimum" : 1,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (1-4094)"
+                                 "typetext" : "<integer> (1 - 4094)"
                               },
                               "slaves" : {
                                  "description" : "Specify the interfaces used by the bonding device.",
                                  "format" : "pve-iface-list",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "type" : {
                                  "description" : "Network interface type",
@@ -18288,21 +22867,23 @@ var pveapi = [
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (0- N)"
+                                             "typetext" : "<integer> (0 - N)"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "start" : {
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (0- N)"
+                                             "typetext" : "<integer> (0 - N)"
                                           },
                                           "upid" : {
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           }
                                        }
                                     },
@@ -18346,10 +22927,12 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "upid" : {
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           }
                                        }
                                     },
@@ -18392,10 +22975,12 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "upid" : {
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -18419,10 +23004,12 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "upid" : {
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -18459,28 +23046,31 @@ var pveapi = [
                            "properties" : {
                               "errors" : {
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "limit" : {
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (0- N)"
+                                 "typetext" : "<integer> (0 - N)"
                               },
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "start" : {
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (0- N)"
+                                 "typetext" : "<integer> (0 - N)"
                               },
                               "userfilter" : {
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "vmid" : {
                                  "description" : "Only list tasks for this VM.",
@@ -18488,7 +23078,7 @@ var pveapi = [
                                  "minimum" : 1,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (1- N)"
+                                 "typetext" : "<integer> (1 - N)"
                               }
                            }
                         },
@@ -18534,7 +23124,8 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -18578,11 +23169,13 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "server" : {
                                        "format" : "pve-storage-server",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -18617,6 +23210,74 @@ var pveapi = [
                         "path" : "/nodes/{node}/scan/nfs",
                         "text" : "nfs"
                      },
+                     {
+                        "info" : {
+                           "GET" : {
+                              "description" : "Scan remote CIFS server.",
+                              "method" : "GET",
+                              "name" : "cifsscan",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "domain" : {
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "password" : {
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "server" : {
+                                       "format" : "pve-storage-server",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "username" : {
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/storage",
+                                    [
+                                       "Datastore.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "items" : {
+                                    "properties" : {
+                                       "description" : {
+                                          "type" : "string"
+                                       },
+                                       "share" : {
+                                          "type" : "string"
+                                       }
+                                    },
+                                    "type" : "object"
+                                 },
+                                 "type" : "array"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/scan/cifs",
+                        "text" : "cifs"
+                     },
                      {
                         "info" : {
                            "GET" : {
@@ -18629,11 +23290,13 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "server" : {
                                        "format" : "pve-storage-server",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -18677,11 +23340,13 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "portal" : {
                                        "format" : "pve-storage-portal-dns",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -18728,7 +23393,8 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -18772,7 +23438,8 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "vg" : {
                                        "maxLength" : 100,
@@ -18821,7 +23488,8 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -18902,7 +23570,8 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -18950,17 +23619,20 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "storage" : {
                                                    "description" : "The storage identifier.",
                                                    "format" : "pve-storage-id",
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "volume" : {
                                                    "description" : "Volume identifier",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 }
                                              }
                                           },
@@ -18984,17 +23656,20 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "storage" : {
                                                    "description" : "The storage identifier.",
                                                    "format" : "pve-storage-id",
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "volume" : {
                                                    "description" : "Volume identifier",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 }
                                              }
                                           },
@@ -19018,27 +23693,32 @@ var pveapi = [
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "storage" : {
                                                    "description" : "The storage identifier.",
                                                    "format" : "pve-storage-id",
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "target" : {
                                                    "description" : "Target volume identifier",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "target_node" : {
                                                    "description" : "Target node. Default is local node.",
                                                    "format" : "pve-node",
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
                                                 "volume" : {
                                                    "description" : "Source volume identifier",
-                                                   "type" : "string"
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 }
                                              }
                                           },
@@ -19066,17 +23746,20 @@ var pveapi = [
                                              "description" : "Only list content of this type.",
                                              "format" : "pve-storage-content",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "storage" : {
                                              "description" : "The storage identifier.",
                                              "format" : "pve-storage-id",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "Only list images for this VM",
@@ -19084,7 +23767,7 @@ var pveapi = [
                                              "minimum" : 1,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -19129,7 +23812,8 @@ var pveapi = [
                                        "properties" : {
                                           "filename" : {
                                              "description" : "The name of the file to create.",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "format" : {
                                              "enum" : [
@@ -19144,7 +23828,8 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "size" : {
                                              "description" : "Size in kilobyte (1024 bytes). Optional suffixes 'M' (megabyte, 1024K) and 'G' (gigabyte, 1024M)",
@@ -19154,14 +23839,15 @@ var pveapi = [
                                           "storage" : {
                                              "description" : "The storage identifier.",
                                              "format" : "pve-storage-id",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "vmid" : {
                                              "description" : "Specify owner VM",
                                              "format" : "pve-vmid",
                                              "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (1- N)"
+                                             "typetext" : "<integer> (1 - N)"
                                           }
                                        }
                                     },
@@ -19198,12 +23884,14 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "storage" : {
                                              "description" : "The storage identifier.",
                                              "format" : "pve-storage-id",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           }
                                        }
                                     },
@@ -19252,17 +23940,20 @@ var pveapi = [
                                           "ds" : {
                                              "description" : "The list of datasources you want to display.",
                                              "format" : "pve-configid-list",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "storage" : {
                                              "description" : "The storage identifier.",
                                              "format" : "pve-storage-id",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "timeframe" : {
                                              "description" : "Specify the time frame you are interested in.",
@@ -19326,12 +24017,14 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "storage" : {
                                              "description" : "The storage identifier.",
                                              "format" : "pve-storage-id",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "timeframe" : {
                                              "description" : "Specify the time frame you are interested in.",
@@ -19385,26 +24078,31 @@ var pveapi = [
                                           "content" : {
                                              "description" : "Content type.",
                                              "format" : "pve-storage-content",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "filename" : {
                                              "description" : "The name of the file to create.",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "storage" : {
                                              "description" : "The storage identifier.",
                                              "format" : "pve-storage-id",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "tmpfilename" : {
                                              "description" : "The source file name. This parameter is usually set by the REST handler. You can only overwrite it when connecting to the trustet port on localhost.",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           }
                                        }
                                     },
@@ -19439,12 +24137,14 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "storage" : {
                                        "description" : "The storage identifier.",
                                        "format" : "pve-storage-id",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -19479,68 +24179,321 @@ var pveapi = [
                               }
                            }
                         },
-                        "leaf" : 0,
-                        "path" : "/nodes/{node}/storage/{storage}",
-                        "text" : "{storage}"
+                        "leaf" : 0,
+                        "path" : "/nodes/{node}/storage/{storage}",
+                        "text" : "{storage}"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "description" : "Get status for all datastores.",
+                        "method" : "GET",
+                        "name" : "index",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "content" : {
+                                 "description" : "Only list stores which support this content type.",
+                                 "format" : "pve-storage-content-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "enabled" : {
+                                 "default" : 0,
+                                 "description" : "Only list stores which are enabled (not disabled in config).",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "format" : {
+                                 "default" : 0,
+                                 "description" : "Include information about formats",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "node" : {
+                                 "description" : "The cluster node name.",
+                                 "format" : "pve-node",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "storage" : {
+                                 "description" : "Only list status for  specified storage",
+                                 "format" : "pve-storage-id",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "target" : {
+                                 "description" : "If target is different to 'node', we only lists shared storages which content is accessible on this 'node' and the specified 'target' node.",
+                                 "format" : "pve-node",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
+                           "user" : "all"
+                        },
+                        "protected" : 1,
+                        "proxyto" : "node",
+                        "returns" : {
+                           "items" : {
+                              "properties" : {
+                                 "storage" : {
+                                    "type" : "string"
+                                 }
+                              },
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{storage}",
+                                 "rel" : "child"
+                              }
+                           ],
+                           "type" : "array"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/nodes/{node}/storage",
+                  "text" : "storage"
+               },
+               {
+                  "children" : [
+                     {
+                        "info" : {
+                           "GET" : {
+                              "description" : "List local disks.",
+                              "method" : "GET",
+                              "name" : "list",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Audit",
+                                       "Datastore.Audit"
+                                    ],
+                                    "any",
+                                    1
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "items" : {
+                                    "properties" : {
+                                       "devpath" : {
+                                          "description" : "The device path",
+                                          "type" : "string"
+                                       },
+                                       "gpt" : {
+                                          "type" : "boolean"
+                                       },
+                                       "health" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "model" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "osdid" : {
+                                          "type" : "integer"
+                                       },
+                                       "serial" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "size" : {
+                                          "type" : "integer"
+                                       },
+                                       "used" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "vendor" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "wwn" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       }
+                                    },
+                                    "type" : "object"
+                                 },
+                                 "type" : "array"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/disks/list",
+                        "text" : "list"
+                     },
+                     {
+                        "info" : {
+                           "GET" : {
+                              "description" : "Get SMART Health of a disk.",
+                              "method" : "GET",
+                              "name" : "smart",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "disk" : {
+                                       "description" : "Block device name",
+                                       "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
+                                       "type" : "string"
+                                    },
+                                    "healthonly" : {
+                                       "description" : "If true returns only the health status",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Audit",
+                                       "Datastore.Audit"
+                                    ],
+                                    "any",
+                                    1
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "properties" : {
+                                    "attributes" : {
+                                       "optional" : 1,
+                                       "type" : "array"
+                                    },
+                                    "health" : {
+                                       "type" : "string"
+                                    },
+                                    "text" : {
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "type" : {
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "type" : "object"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/disks/smart",
+                        "text" : "smart"
+                     },
+                     {
+                        "info" : {
+                           "POST" : {
+                              "description" : "Initialize Disk with GPT",
+                              "method" : "POST",
+                              "name" : "initgpt",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "disk" : {
+                                       "description" : "Block device name",
+                                       "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
+                                       "type" : "string"
+                                    },
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "uuid" : {
+                                       "description" : "UUID for the GPT table",
+                                       "maxLength" : 36,
+                                       "optional" : 1,
+                                       "pattern" : "[a-fA-F0-9\\-]+",
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Modify"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "type" : "string"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/disks/initgpt",
+                        "text" : "initgpt"
                      }
                   ],
                   "info" : {
                      "GET" : {
-                        "description" : "Get status for all datastores.",
+                        "description" : "Node index.",
                         "method" : "GET",
                         "name" : "index",
                         "parameters" : {
                            "additionalProperties" : 0,
                            "properties" : {
-                              "content" : {
-                                 "description" : "Only list stores which support this content type.",
-                                 "format" : "pve-storage-content-list",
-                                 "optional" : 1,
-                                 "type" : "string"
-                              },
-                              "enabled" : {
-                                 "default" : 0,
-                                 "description" : "Only list stores which are enabled (not disabled in config).",
-                                 "optional" : 1,
-                                 "type" : "boolean"
-                              },
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
-                              },
-                              "storage" : {
-                                 "description" : "Only list status for  specified storage",
-                                 "format" : "pve-storage-id",
-                                 "optional" : 1,
-                                 "type" : "string"
-                              },
-                              "target" : {
-                                 "description" : "If target is different to 'node', we only lists shared storages which content is accessible on this 'node' and the specified 'target' node.",
-                                 "format" : "pve-node",
-                                 "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
                         "permissions" : {
-                           "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
                            "user" : "all"
                         },
-                        "protected" : 1,
                         "proxyto" : "node",
                         "returns" : {
                            "items" : {
-                              "properties" : {
-                                 "storage" : {
-                                    "type" : "string"
-                                 }
-                              },
+                              "properties" : {},
                               "type" : "object"
                            },
                            "links" : [
                               {
-                                 "href" : "{storage}",
+                                 "href" : "{name}",
                                  "rel" : "child"
                               }
                            ],
@@ -19549,8 +24502,8 @@ var pveapi = [
                      }
                   },
                   "leaf" : 0,
-                  "path" : "/nodes/{node}/storage",
-                  "text" : "storage"
+                  "path" : "/nodes/{node}/disks",
+                  "text" : "disks"
                },
                {
                   "children" : [
@@ -19566,7 +24519,8 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -19599,19 +24553,22 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "notify" : {
                                        "default" : 0,
                                        "description" : "Send notification mail about new packages (to email address specified for user 'root@pam').",
                                        "optional" : 1,
-                                       "type" : "boolean"
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
                                     },
                                     "quiet" : {
                                        "default" : 0,
                                        "description" : "Only produces output suitable for logging, omitting progress indicators.",
                                        "optional" : 1,
-                                       "type" : "boolean"
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
                                     }
                                  }
                               },
@@ -19646,17 +24603,20 @@ var pveapi = [
                                  "properties" : {
                                     "name" : {
                                        "description" : "Package name.",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
                                     "version" : {
                                        "description" : "Package version.",
                                        "optional" : 1,
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -19691,7 +24651,8 @@ var pveapi = [
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -19730,7 +24691,8 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -19777,19 +24739,21 @@ var pveapi = [
                                              "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"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "pos" : {
                                              "description" : "Update rule at position <pos>.",
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (0- N)"
+                                             "typetext" : "<integer> (0 - N)"
                                           }
                                        }
                                     },
@@ -19818,14 +24782,15 @@ var pveapi = [
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "pos" : {
                                              "description" : "Update rule at position <pos>.",
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (0- N)"
+                                             "typetext" : "<integer> (0 - N)"
                                           }
                                        }
                                     },
@@ -19864,38 +24829,45 @@ var pveapi = [
                                              "type" : "string"
                                           },
                                           "comment" : {
+                                             "description" : "Descriptive comment.",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "delete" : {
                                              "description" : "A list of settings you want to delete.",
                                              "format" : "pve-configid-list",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "dest" : {
                                              "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                              "format" : "pve-fw-addr-spec",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "digest" : {
                                              "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
                                              "maxLength" : 40,
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "dport" : {
                                              "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
                                              "format" : "pve-fw-dport-spec",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "enable" : {
+                                             "description" : "Flag to enable/disable a rule.",
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (0- N)"
+                                             "typetext" : "<integer> (0 - N)"
                                           },
                                           "iface" : {
                                              "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
@@ -19903,51 +24875,59 @@ var pveapi = [
                                              "maxLength" : 20,
                                              "minLength" : 2,
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "macro" : {
+                                             "description" : "Use predefined standard macro.",
                                              "maxLength" : 128,
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "moveto" : {
                                              "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (0- N)"
+                                             "typetext" : "<integer> (0 - N)"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "pos" : {
                                              "description" : "Update rule at position <pos>.",
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
-                                             "typetext" : "integer (0- N)"
+                                             "typetext" : "<integer> (0 - N)"
                                           },
                                           "proto" : {
                                              "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
                                              "format" : "pve-fw-protocol-spec",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "source" : {
                                              "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
                                              "format" : "pve-fw-addr-spec",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "sport" : {
                                              "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
                                              "format" : "pve-fw-sport-spec",
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
                                           "type" : {
+                                             "description" : "Rule type.",
                                              "enum" : [
                                                 "in",
                                                 "out",
@@ -19983,14 +24963,191 @@ var pveapi = [
                            "GET" : {
                               "description" : "List rules.",
                               "method" : "GET",
-                              "name" : "get_rules",
+                              "name" : "get_rules",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/nodes/{node}",
+                                    [
+                                       "Sys.Audit"
+                                    ]
+                                 ]
+                              },
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "items" : {
+                                    "properties" : {
+                                       "pos" : {
+                                          "type" : "integer"
+                                       }
+                                    },
+                                    "type" : "object"
+                                 },
+                                 "links" : [
+                                    {
+                                       "href" : "{pos}",
+                                       "rel" : "child"
+                                    }
+                                 ],
+                                 "type" : "array"
+                              }
+                           },
+                           "POST" : {
+                              "description" : "Create new rule.",
+                              "method" : "POST",
+                              "name" : "create_rule",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "action" : {
+                                       "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
+                                       "maxLength" : 20,
+                                       "minLength" : 2,
+                                       "optional" : 0,
+                                       "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
+                                       "type" : "string"
+                                    },
+                                    "comment" : {
+                                       "description" : "Descriptive comment.",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "dest" : {
+                                       "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+                                       "format" : "pve-fw-addr-spec",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "digest" : {
+                                       "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                       "maxLength" : 40,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "dport" : {
+                                       "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+                                       "format" : "pve-fw-dport-spec",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "enable" : {
+                                       "description" : "Flag to enable/disable a rule.",
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (0 - N)"
+                                    },
+                                    "iface" : {
+                                       "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
+                                       "format" : "pve-iface",
+                                       "maxLength" : 20,
+                                       "minLength" : 2,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "macro" : {
+                                       "description" : "Use predefined standard macro.",
+                                       "maxLength" : 128,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "pos" : {
+                                       "description" : "Update rule at position <pos>.",
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (0 - N)"
+                                    },
+                                    "proto" : {
+                                       "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
+                                       "format" : "pve-fw-protocol-spec",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "source" : {
+                                       "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
+                                       "format" : "pve-fw-addr-spec",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "sport" : {
+                                       "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
+                                       "format" : "pve-fw-sport-spec",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "type" : {
+                                       "description" : "Rule type.",
+                                       "enum" : [
+                                          "in",
+                                          "out",
+                                          "group"
+                                       ],
+                                       "optional" : 0,
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/nodes/{node}",
+                                    [
+                                       "Sys.Modify"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           }
+                        },
+                        "leaf" : 0,
+                        "path" : "/nodes/{node}/firewall/rules",
+                        "text" : "rules"
+                     },
+                     {
+                        "info" : {
+                           "GET" : {
+                              "description" : "Get host firewall options.",
+                              "method" : "GET",
+                              "name" : "get_options",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -20005,117 +25162,235 @@ var pveapi = [
                               },
                               "proxyto" : "node",
                               "returns" : {
-                                 "items" : {
-                                    "properties" : {
-                                       "pos" : {
-                                          "type" : "integer"
-                                       }
-                                    },
-                                    "type" : "object"
-                                 },
-                                 "links" : [
-                                    {
-                                       "href" : "{pos}",
-                                       "rel" : "child"
-                                    }
-                                 ],
-                                 "type" : "array"
-                              }
-                           },
-                           "POST" : {
-                              "description" : "Create new rule.",
-                              "method" : "POST",
-                              "name" : "create_rule",
-                              "parameters" : {
-                                 "additionalProperties" : 0,
                                  "properties" : {
-                                    "action" : {
-                                       "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
-                                       "maxLength" : 20,
-                                       "minLength" : 2,
-                                       "optional" : 0,
-                                       "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
-                                       "type" : "string"
+                                    "enable" : {
+                                       "description" : "Enable host firewall rules.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
                                     },
-                                    "comment" : {
+                                    "log_level_in" : {
+                                       "description" : "Log level for incoming traffic.",
+                                       "enum" : [
+                                          "emerg",
+                                          "alert",
+                                          "crit",
+                                          "err",
+                                          "warning",
+                                          "notice",
+                                          "info",
+                                          "debug",
+                                          "nolog"
+                                       ],
                                        "optional" : 1,
                                        "type" : "string"
                                     },
-                                    "dest" : {
-                                       "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
-                                       "format" : "pve-fw-addr-spec",
+                                    "log_level_out" : {
+                                       "description" : "Log level for outgoing traffic.",
+                                       "enum" : [
+                                          "emerg",
+                                          "alert",
+                                          "crit",
+                                          "err",
+                                          "warning",
+                                          "notice",
+                                          "info",
+                                          "debug",
+                                          "nolog"
+                                       ],
                                        "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,
+                                    "ndp" : {
+                                       "description" : "Enable NDP.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
+                                    "nf_conntrack_max" : {
+                                       "description" : "Maximum number of tracked connections.",
+                                       "minimum" : 32768,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
+                                    "nf_conntrack_tcp_timeout_established" : {
+                                       "description" : "Conntrack established timeout.",
+                                       "minimum" : 7875,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
+                                    "nosmurfs" : {
+                                       "description" : "Enable SMURFS filter.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
+                                    "smurf_log_level" : {
+                                       "description" : "Log level for SMURFS filter.",
+                                       "enum" : [
+                                          "emerg",
+                                          "alert",
+                                          "crit",
+                                          "err",
+                                          "warning",
+                                          "notice",
+                                          "info",
+                                          "debug",
+                                          "nolog"
+                                       ],
                                        "optional" : 1,
                                        "type" : "string"
                                     },
-                                    "dport" : {
-                                       "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
-                                       "format" : "pve-fw-dport-spec",
+                                    "tcp_flags_log_level" : {
+                                       "description" : "Log level for illegal tcp flags filter.",
+                                       "enum" : [
+                                          "emerg",
+                                          "alert",
+                                          "crit",
+                                          "err",
+                                          "warning",
+                                          "notice",
+                                          "info",
+                                          "debug",
+                                          "nolog"
+                                       ],
                                        "optional" : 1,
                                        "type" : "string"
                                     },
+                                    "tcpflags" : {
+                                       "description" : "Filter illegal combinations of TCP flags.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    }
+                                 },
+                                 "type" : "object"
+                              }
+                           },
+                           "PUT" : {
+                              "description" : "Set Firewall options.",
+                              "method" : "PUT",
+                              "name" : "set_options",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "delete" : {
+                                       "description" : "A list of settings you want to delete.",
+                                       "format" : "pve-configid-list",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "digest" : {
+                                       "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                       "maxLength" : 40,
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
                                     "enable" : {
-                                       "minimum" : 0,
+                                       "description" : "Enable host firewall rules.",
                                        "optional" : 1,
-                                       "type" : "integer",
-                                       "typetext" : "integer (0- N)"
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
                                     },
-                                    "iface" : {
-                                       "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
-                                       "format" : "pve-iface",
-                                       "maxLength" : 20,
-                                       "minLength" : 2,
+                                    "log_level_in" : {
+                                       "description" : "Log level for incoming traffic.",
+                                       "enum" : [
+                                          "emerg",
+                                          "alert",
+                                          "crit",
+                                          "err",
+                                          "warning",
+                                          "notice",
+                                          "info",
+                                          "debug",
+                                          "nolog"
+                                       ],
                                        "optional" : 1,
                                        "type" : "string"
                                     },
-                                    "macro" : {
-                                       "maxLength" : 128,
+                                    "log_level_out" : {
+                                       "description" : "Log level for outgoing traffic.",
+                                       "enum" : [
+                                          "emerg",
+                                          "alert",
+                                          "crit",
+                                          "err",
+                                          "warning",
+                                          "notice",
+                                          "info",
+                                          "debug",
+                                          "nolog"
+                                       ],
                                        "optional" : 1,
                                        "type" : "string"
                                     },
-                                    "node" : {
-                                       "description" : "The cluster node name.",
-                                       "format" : "pve-node",
-                                       "type" : "string"
+                                    "ndp" : {
+                                       "description" : "Enable NDP.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
                                     },
-                                    "pos" : {
-                                       "description" : "Update rule at position <pos>.",
-                                       "minimum" : 0,
+                                    "nf_conntrack_max" : {
+                                       "description" : "Maximum number of tracked connections.",
+                                       "minimum" : 32768,
                                        "optional" : 1,
                                        "type" : "integer",
-                                       "typetext" : "integer (0- N)"
+                                       "typetext" : "<integer> (32768 - N)"
                                     },
-                                    "proto" : {
-                                       "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
-                                       "format" : "pve-fw-protocol-spec",
+                                    "nf_conntrack_tcp_timeout_established" : {
+                                       "description" : "Conntrack established timeout.",
+                                       "minimum" : 7875,
                                        "optional" : 1,
-                                       "type" : "string"
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (7875 - N)"
                                     },
-                                    "source" : {
-                                       "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
-                                       "format" : "pve-fw-addr-spec",
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "nosmurfs" : {
+                                       "description" : "Enable SMURFS filter.",
                                        "optional" : 1,
-                                       "type" : "string"
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
                                     },
-                                    "sport" : {
-                                       "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
-                                       "format" : "pve-fw-sport-spec",
+                                    "smurf_log_level" : {
+                                       "description" : "Log level for SMURFS filter.",
+                                       "enum" : [
+                                          "emerg",
+                                          "alert",
+                                          "crit",
+                                          "err",
+                                          "warning",
+                                          "notice",
+                                          "info",
+                                          "debug",
+                                          "nolog"
+                                       ],
                                        "optional" : 1,
                                        "type" : "string"
                                     },
-                                    "type" : {
+                                    "tcp_flags_log_level" : {
+                                       "description" : "Log level for illegal tcp flags filter.",
                                        "enum" : [
-                                          "in",
-                                          "out",
-                                          "group"
+                                          "emerg",
+                                          "alert",
+                                          "crit",
+                                          "err",
+                                          "warning",
+                                          "notice",
+                                          "info",
+                                          "debug",
+                                          "nolog"
                                        ],
-                                       "optional" : 0,
+                                       "optional" : 1,
                                        "type" : "string"
+                                    },
+                                    "tcpflags" : {
+                                       "description" : "Filter illegal combinations of TCP flags.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
                                     }
                                  }
                               },
@@ -20135,23 +25410,36 @@ var pveapi = [
                               }
                            }
                         },
-                        "leaf" : 0,
-                        "path" : "/nodes/{node}/firewall/rules",
-                        "text" : "rules"
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/firewall/options",
+                        "text" : "options"
                      },
                      {
                         "info" : {
                            "GET" : {
-                              "description" : "Get host firewall options.",
+                              "description" : "Read firewall log",
                               "method" : "GET",
-                              "name" : "get_options",
+                              "name" : "log",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
+                                    "limit" : {
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (0 - N)"
+                                    },
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "start" : {
+                                       "minimum" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (0 - N)"
                                     }
                                  }
                               },
@@ -20160,305 +25448,514 @@ var pveapi = [
                                     "perm",
                                     "/nodes/{node}",
                                     [
-                                       "Sys.Audit"
+                                       "Sys.Syslog"
                                     ]
                                  ]
                               },
+                              "protected" : 1,
                               "proxyto" : "node",
                               "returns" : {
-                                 "properties" : {
-                                    "enable" : {
-                                       "description" : "Enable host firewall rules.",
-                                       "optional" : 1,
-                                       "type" : "boolean"
-                                    },
-                                    "log_level_in" : {
-                                       "description" : "Log level for incoming traffic.",
-                                       "enum" : [
-                                          "emerg",
-                                          "alert",
-                                          "crit",
-                                          "err",
-                                          "warning",
-                                          "notice",
-                                          "info",
-                                          "debug",
-                                          "nolog"
-                                       ],
-                                       "optional" : 1,
-                                       "type" : "string"
+                                 "items" : {
+                                    "properties" : {
+                                       "n" : {
+                                          "description" : "Line number",
+                                          "type" : "integer"
+                                       },
+                                       "t" : {
+                                          "description" : "Line text",
+                                          "type" : "string"
+                                       }
                                     },
-                                    "log_level_out" : {
-                                       "description" : "Log level for outgoing traffic.",
-                                       "enum" : [
-                                          "emerg",
-                                          "alert",
-                                          "crit",
-                                          "err",
-                                          "warning",
-                                          "notice",
-                                          "info",
-                                          "debug",
-                                          "nolog"
-                                       ],
-                                       "optional" : 1,
-                                       "type" : "string"
+                                    "type" : "object"
+                                 },
+                                 "type" : "array"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/firewall/log",
+                        "text" : "log"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "description" : "Directory index.",
+                        "method" : "GET",
+                        "name" : "index",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "node" : {
+                                 "description" : "The cluster node name.",
+                                 "format" : "pve-node",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "user" : "all"
+                        },
+                        "returns" : {
+                           "items" : {
+                              "properties" : {},
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{name}",
+                                 "rel" : "child"
+                              }
+                           ],
+                           "type" : "array"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/nodes/{node}/firewall",
+                  "text" : "firewall"
+               },
+               {
+                  "children" : [
+                     {
+                        "children" : [
+                           {
+                              "info" : {
+                                 "GET" : {
+                                    "description" : "Get replication job status.",
+                                    "method" : "GET",
+                                    "name" : "job_status",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "id" : {
+                                             "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
+                                             "format" : "pve-replication-job-id",
+                                             "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
+                                             "type" : "string"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
                                     },
-                                    "ndp" : {
-                                       "description" : "Enable NDP.",
-                                       "optional" : 1,
-                                       "type" : "boolean"
+                                    "permissions" : {
+                                       "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
+                                       "user" : "all"
                                     },
-                                    "nf_conntrack_max" : {
-                                       "description" : "Maximum number of tracked connections.",
-                                       "minimum" : 32768,
-                                       "optional" : 1,
-                                       "type" : "integer"
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "properties" : {},
+                                       "type" : "object"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/replication/{id}/status",
+                              "text" : "status"
+                           },
+                           {
+                              "info" : {
+                                 "GET" : {
+                                    "description" : "Read replication job log.",
+                                    "method" : "GET",
+                                    "name" : "read_job_log",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "id" : {
+                                             "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
+                                             "format" : "pve-replication-job-id",
+                                             "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
+                                             "type" : "string"
+                                          },
+                                          "limit" : {
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (0 - N)"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "start" : {
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (0 - N)"
+                                          }
+                                       }
                                     },
-                                    "nf_conntrack_tcp_timeout_established" : {
-                                       "description" : "Conntrack established timeout.",
-                                       "minimum" : 7875,
-                                       "optional" : 1,
-                                       "type" : "integer"
+                                    "permissions" : {
+                                       "description" : "Requires the VM.Audit permission on /vms/<vmid>, or 'Sys.Audit' on '/nodes/<node>'",
+                                       "user" : "all"
                                     },
-                                    "nosmurfs" : {
-                                       "description" : "Enable SMURFS filter.",
-                                       "optional" : 1,
-                                       "type" : "boolean"
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "items" : {
+                                          "properties" : {
+                                             "n" : {
+                                                "description" : "Line number",
+                                                "type" : "integer"
+                                             },
+                                             "t" : {
+                                                "description" : "Line text",
+                                                "type" : "string"
+                                             }
+                                          },
+                                          "type" : "object"
+                                       },
+                                       "type" : "array"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/replication/{id}/log",
+                              "text" : "log"
+                           },
+                           {
+                              "info" : {
+                                 "POST" : {
+                                    "description" : "Schedule replication job to start as soon as possible.",
+                                    "method" : "POST",
+                                    "name" : "schedule_now",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "id" : {
+                                             "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
+                                             "format" : "pve-replication-job-id",
+                                             "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
+                                             "type" : "string"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
                                     },
-                                    "smurf_log_level" : {
-                                       "description" : "Log level for SMURFS filter.",
-                                       "enum" : [
-                                          "emerg",
-                                          "alert",
-                                          "crit",
-                                          "err",
-                                          "warning",
-                                          "notice",
-                                          "info",
-                                          "debug",
-                                          "nolog"
-                                       ],
-                                       "optional" : 1,
-                                       "type" : "string"
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/storage",
+                                          [
+                                             "Datastore.Allocate"
+                                          ]
+                                       ]
                                     },
-                                    "tcp_flags_log_level" : {
-                                       "description" : "Log level for illegal tcp flags filter.",
-                                       "enum" : [
-                                          "emerg",
-                                          "alert",
-                                          "crit",
-                                          "err",
-                                          "warning",
-                                          "notice",
-                                          "info",
-                                          "debug",
-                                          "nolog"
-                                       ],
-                                       "optional" : 1,
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
                                        "type" : "string"
-                                    },
-                                    "tcpflags" : {
-                                       "description" : "Filter illegal combinations of TCP flags.",
-                                       "optional" : 1,
-                                       "type" : "boolean"
                                     }
-                                 },
-                                 "type" : "object"
-                              }
-                           },
-                           "PUT" : {
-                              "description" : "Set Firewall options.",
-                              "method" : "PUT",
-                              "name" : "set_options",
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/replication/{id}/schedule_now",
+                              "text" : "schedule_now"
+                           }
+                        ],
+                        "info" : {
+                           "GET" : {
+                              "description" : "Directory index.",
+                              "method" : "GET",
+                              "name" : "index",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
-                                    "delete" : {
-                                       "description" : "A list of settings you want to delete.",
-                                       "format" : "pve-configid-list",
-                                       "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"
-                                    },
-                                    "enable" : {
-                                       "description" : "Enable host firewall rules.",
-                                       "optional" : 1,
-                                       "type" : "boolean"
-                                    },
-                                    "log_level_in" : {
-                                       "description" : "Log level for incoming traffic.",
-                                       "enum" : [
-                                          "emerg",
-                                          "alert",
-                                          "crit",
-                                          "err",
-                                          "warning",
-                                          "notice",
-                                          "info",
-                                          "debug",
-                                          "nolog"
-                                       ],
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    },
-                                    "log_level_out" : {
-                                       "description" : "Log level for outgoing traffic.",
-                                       "enum" : [
-                                          "emerg",
-                                          "alert",
-                                          "crit",
-                                          "err",
-                                          "warning",
-                                          "notice",
-                                          "info",
-                                          "debug",
-                                          "nolog"
-                                       ],
-                                       "optional" : 1,
+                                    "id" : {
+                                       "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
+                                       "format" : "pve-replication-job-id",
+                                       "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
                                        "type" : "string"
                                     },
-                                    "ndp" : {
-                                       "description" : "Enable NDP.",
-                                       "optional" : 1,
-                                       "type" : "boolean"
-                                    },
-                                    "nf_conntrack_max" : {
-                                       "description" : "Maximum number of tracked connections.",
-                                       "minimum" : 32768,
-                                       "optional" : 1,
-                                       "type" : "integer",
-                                       "typetext" : "integer (32768- N)"
-                                    },
-                                    "nf_conntrack_tcp_timeout_established" : {
-                                       "description" : "Conntrack established timeout.",
-                                       "minimum" : 7875,
-                                       "optional" : 1,
-                                       "type" : "integer",
-                                       "typetext" : "integer (7875- N)"
-                                    },
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
-                                    },
-                                    "nosmurfs" : {
-                                       "description" : "Enable SMURFS filter.",
-                                       "optional" : 1,
-                                       "type" : "boolean"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "user" : "all"
+                              },
+                              "returns" : {
+                                 "items" : {
+                                    "properties" : {},
+                                    "type" : "object"
+                                 },
+                                 "links" : [
+                                    {
+                                       "href" : "{name}",
+                                       "rel" : "child"
+                                    }
+                                 ],
+                                 "type" : "array"
+                              }
+                           }
+                        },
+                        "leaf" : 0,
+                        "path" : "/nodes/{node}/replication/{id}",
+                        "text" : "{id}"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "description" : "List status of all replication jobs on this node.",
+                        "method" : "GET",
+                        "name" : "status",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "guest" : {
+                                 "description" : "Only list replication jobs for this guest.",
+                                 "format" : "pve-vmid",
+                                 "minimum" : 1,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (1 - N)"
+                              },
+                              "node" : {
+                                 "description" : "The cluster node name.",
+                                 "format" : "pve-node",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
+                           "user" : "all"
+                        },
+                        "protected" : 1,
+                        "proxyto" : "node",
+                        "returns" : {
+                           "items" : {
+                              "properties" : {
+                                 "id" : {
+                                    "type" : "string"
+                                 }
+                              },
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{id}",
+                                 "rel" : "child"
+                              }
+                           ],
+                           "type" : "array"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/nodes/{node}/replication",
+                  "text" : "replication"
+               },
+               {
+                  "children" : [
+                     {
+                        "children" : [
+                           {
+                              "info" : {
+                                 "DELETE" : {
+                                    "description" : "Revoke existing certificate from CA.",
+                                    "method" : "DELETE",
+                                    "name" : "revoke_certificate",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
                                     },
-                                    "smurf_log_level" : {
-                                       "description" : "Log level for SMURFS filter.",
-                                       "enum" : [
-                                          "emerg",
-                                          "alert",
-                                          "crit",
-                                          "err",
-                                          "warning",
-                                          "notice",
-                                          "info",
-                                          "debug",
-                                          "nolog"
-                                       ],
-                                       "optional" : 1,
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
                                        "type" : "string"
+                                    }
+                                 },
+                                 "POST" : {
+                                    "description" : "Order a new certificate from ACME-compatible CA.",
+                                    "method" : "POST",
+                                    "name" : "new_certificate",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "force" : {
+                                             "default" : 0,
+                                             "description" : "Overwrite existing custom certificate.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
                                     },
-                                    "tcp_flags_log_level" : {
-                                       "description" : "Log level for illegal tcp flags filter.",
-                                       "enum" : [
-                                          "emerg",
-                                          "alert",
-                                          "crit",
-                                          "err",
-                                          "warning",
-                                          "notice",
-                                          "info",
-                                          "debug",
-                                          "nolog"
-                                       ],
-                                       "optional" : 1,
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
                                        "type" : "string"
+                                    }
+                                 },
+                                 "PUT" : {
+                                    "description" : "Renew existing certificate from CA.",
+                                    "method" : "PUT",
+                                    "name" : "renew_certificate",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "force" : {
+                                             "default" : 0,
+                                             "description" : "Force renewal even if expiry is more than 30 days away.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
                                     },
-                                    "tcpflags" : {
-                                       "description" : "Filter illegal combinations of TCP flags.",
-                                       "optional" : 1,
-                                       "type" : "boolean"
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/certificates/acme/certificate",
+                              "text" : "certificate"
+                           }
+                        ],
+                        "info" : {
+                           "GET" : {
+                              "description" : "ACME index.",
+                              "method" : "GET",
+                              "name" : "index",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
                               "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/nodes/{node}",
-                                    [
-                                       "Sys.Modify"
-                                    ]
-                                 ]
+                                 "user" : "all"
                               },
-                              "protected" : 1,
-                              "proxyto" : "node",
                               "returns" : {
-                                 "type" : "null"
+                                 "items" : {
+                                    "properties" : {},
+                                    "type" : "object"
+                                 },
+                                 "links" : [
+                                    {
+                                       "href" : "{name}",
+                                       "rel" : "child"
+                                    }
+                                 ],
+                                 "type" : "array"
                               }
                            }
                         },
-                        "leaf" : 1,
-                        "path" : "/nodes/{node}/firewall/options",
-                        "text" : "options"
+                        "leaf" : 0,
+                        "path" : "/nodes/{node}/certificates/acme",
+                        "text" : "acme"
                      },
                      {
                         "info" : {
                            "GET" : {
-                              "description" : "Read firewall log",
+                              "description" : "Get information about node's certificates.",
                               "method" : "GET",
-                              "name" : "log",
+                              "name" : "info",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
-                                    "limit" : {
-                                       "minimum" : 0,
-                                       "optional" : 1,
-                                       "type" : "integer",
-                                       "typetext" : "integer (0- N)"
-                                    },
                                     "node" : {
                                        "description" : "The cluster node name.",
                                        "format" : "pve-node",
-                                       "type" : "string"
-                                    },
-                                    "start" : {
-                                       "minimum" : 0,
-                                       "optional" : 1,
-                                       "type" : "integer",
-                                       "typetext" : "integer (0- N)"
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
                               "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/nodes/{node}",
-                                    [
-                                       "Sys.Syslog"
-                                    ]
-                                 ]
+                                 "user" : "all"
                               },
-                              "protected" : 1,
                               "proxyto" : "node",
                               "returns" : {
                                  "items" : {
                                     "properties" : {
-                                       "n" : {
-                                          "description" : "Line number",
+                                       "filename" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "fingerprint" : {
+                                          "description" : "Certificate SHA 256 fingerprint.",
+                                          "optional" : 1,
+                                          "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
+                                          "type" : "string"
+                                       },
+                                       "issuer" : {
+                                          "description" : "Certificate issuer name.",
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "notafter" : {
+                                          "description" : "Certificate's notAfter timestamp (UNIX epoch).",
+                                          "optional" : 1,
                                           "type" : "integer"
                                        },
-                                       "t" : {
-                                          "description" : "Line text",
+                                       "notbefore" : {
+                                          "description" : "Certificate's notBefore timestamp (UNIX epoch).",
+                                          "optional" : 1,
+                                          "type" : "integer"
+                                       },
+                                       "pem" : {
+                                          "description" : "Certificate in PEM format",
+                                          "format" : "pem-certificate",
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "san" : {
+                                          "description" : "List of Certificate's SubjectAlternativeName entries.",
+                                          "items" : {
+                                             "type" : "string"
+                                          },
+                                          "optional" : 1,
+                                          "type" : "array"
+                                       },
+                                       "subject" : {
+                                          "description" : "Certificate subject name.",
+                                          "optional" : 1,
                                           "type" : "string"
                                        }
                                     },
@@ -20469,13 +25966,142 @@ var pveapi = [
                            }
                         },
                         "leaf" : 1,
-                        "path" : "/nodes/{node}/firewall/log",
-                        "text" : "log"
+                        "path" : "/nodes/{node}/certificates/info",
+                        "text" : "info"
+                     },
+                     {
+                        "info" : {
+                           "DELETE" : {
+                              "description" : "DELETE custom certificate chain and key.",
+                              "method" : "DELETE",
+                              "name" : "remove_custom_cert",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "restart" : {
+                                       "default" : 0,
+                                       "description" : "Restart pveproxy.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    }
+                                 }
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           },
+                           "POST" : {
+                              "description" : "Upload or update custom certificate chain and key.",
+                              "method" : "POST",
+                              "name" : "upload_custom_cert",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "certificates" : {
+                                       "description" : "PEM encoded certificate (chain).",
+                                       "format" : "pem-certificate-chain",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "force" : {
+                                       "default" : 0,
+                                       "description" : "Overwrite existing custom or ACME certificate files.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "key" : {
+                                       "description" : "PEM encoded private key.",
+                                       "format" : "pem-string",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "restart" : {
+                                       "default" : 0,
+                                       "description" : "Restart pveproxy.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    }
+                                 }
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "properties" : {
+                                    "filename" : {
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "fingerprint" : {
+                                       "description" : "Certificate SHA 256 fingerprint.",
+                                       "optional" : 1,
+                                       "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
+                                       "type" : "string"
+                                    },
+                                    "issuer" : {
+                                       "description" : "Certificate issuer name.",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "notafter" : {
+                                       "description" : "Certificate's notAfter timestamp (UNIX epoch).",
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
+                                    "notbefore" : {
+                                       "description" : "Certificate's notBefore timestamp (UNIX epoch).",
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
+                                    "pem" : {
+                                       "description" : "Certificate in PEM format",
+                                       "format" : "pem-certificate",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "san" : {
+                                       "description" : "List of Certificate's SubjectAlternativeName entries.",
+                                       "items" : {
+                                          "type" : "string"
+                                       },
+                                       "optional" : 1,
+                                       "type" : "array"
+                                    },
+                                    "subject" : {
+                                       "description" : "Certificate subject name.",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "type" : "object"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/certificates/custom",
+                        "text" : "custom"
                      }
                   ],
                   "info" : {
                      "GET" : {
-                        "description" : "Directory index.",
+                        "description" : "Node index.",
                         "method" : "GET",
                         "name" : "index",
                         "parameters" : {
@@ -20484,31 +26110,141 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "user" : "all"
+                        },
+                        "returns" : {
+                           "items" : {
+                              "properties" : {},
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{name}",
+                                 "rel" : "child"
+                              }
+                           ],
+                           "type" : "array"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/nodes/{node}/certificates",
+                  "text" : "certificates"
+               },
+               {
+                  "info" : {
+                     "GET" : {
+                        "description" : "Get node configuration options.",
+                        "method" : "GET",
+                        "name" : "get_config",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "node" : {
+                                 "description" : "The cluster node name.",
+                                 "format" : "pve-node",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Audit"
+                              ]
+                           ]
+                        },
+                        "proxyto" : "node",
+                        "returns" : {
+                           "properties" : {},
+                           "type" : "object"
+                        }
+                     },
+                     "PUT" : {
+                        "description" : "Set node configuration options.",
+                        "method" : "PUT",
+                        "name" : "set_options",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "acme" : {
+                                 "description" : "Node specific ACME settings.",
+                                 "format" : {
+                                    "account" : {
+                                       "default" : "default",
+                                       "description" : "ACME account config file name.",
+                                       "format" : "pve-configid",
+                                       "format_description" : "name",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "domains" : {
+                                       "description" : "List of domains for this node's ACME certificate",
+                                       "format" : "pve-acme-domain-list",
+                                       "format_description" : "domain[;domain;...]",
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "domains=<domain[;domain;...]> [,account=<name>]"
+                              },
+                              "delete" : {
+                                 "description" : "A list of settings you want to delete.",
+                                 "format" : "pve-configid-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "description" : {
+                                 "description" : "Node description/comment.",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "digest" : {
+                                 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
+                                 "maxLength" : 40,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "node" : {
+                                 "description" : "The cluster node name.",
+                                 "format" : "pve-node",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
                         "permissions" : {
-                           "user" : "all"
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Modify"
+                              ]
+                           ]
                         },
+                        "protected" : 1,
+                        "proxyto" : "node",
                         "returns" : {
-                           "items" : {
-                              "properties" : {},
-                              "type" : "object"
-                           },
-                           "links" : [
-                              {
-                                 "href" : "{name}",
-                                 "rel" : "child"
-                              }
-                           ],
-                           "type" : "array"
+                           "type" : "null"
                         }
                      }
                   },
-                  "leaf" : 0,
-                  "path" : "/nodes/{node}/firewall",
-                  "text" : "firewall"
+                  "leaf" : 1,
+                  "path" : "/nodes/{node}/config",
+                  "text" : "config"
                },
                {
                   "info" : {
@@ -20522,7 +26258,8 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -20562,7 +26299,8 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -20599,7 +26337,8 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -20635,7 +26374,8 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -20673,12 +26413,14 @@ var pveapi = [
                            "properties" : {
                               "commands" : {
                                  "description" : "JSON encoded array of commands.",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -20724,12 +26466,14 @@ var pveapi = [
                               "ds" : {
                                  "description" : "The list of datasources you want to display.",
                                  "format" : "pve-configid-list",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "timeframe" : {
                                  "description" : "Specify the time frame you are interested in.",
@@ -20789,7 +26533,8 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "timeframe" : {
                                  "description" : "Specify the time frame you are interested in.",
@@ -20840,12 +26585,20 @@ var pveapi = [
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (0- N)"
+                                 "typetext" : "<integer> (0 - N)"
                               },
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "service" : {
+                                 "description" : "Service ID",
+                                 "maxLength" : 128,
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "since" : {
                                  "description" : "Display all log since this date-time string.",
@@ -20857,7 +26610,7 @@ var pveapi = [
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (0- N)"
+                                 "typetext" : "<integer> (0 - N)"
                               },
                               "until" : {
                                  "description" : "Display all log until this date-time string.",
@@ -20909,21 +26662,40 @@ var pveapi = [
                         "parameters" : {
                            "additionalProperties" : 0,
                            "properties" : {
+                              "height" : {
+                                 "description" : "sets the height of the console in pixels.",
+                                 "maximum" : 2160,
+                                 "minimum" : 16,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (16 - 2160)"
+                              },
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "upgrade" : {
                                  "default" : 0,
                                  "description" : "Run 'apt-get dist-upgrade' instead of normal shell.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "websocket" : {
                                  "description" : "use websocket instead of standard vnc.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "width" : {
+                                 "description" : "sets the width of the console in pixels.",
+                                 "maximum" : 4096,
+                                 "minimum" : 16,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (16 - 4096)"
                               }
                            }
                         },
@@ -20964,6 +26736,64 @@ var pveapi = [
                   "path" : "/nodes/{node}/vncshell",
                   "text" : "vncshell"
                },
+               {
+                  "info" : {
+                     "POST" : {
+                        "description" : "Creates a VNC Shell proxy.",
+                        "method" : "POST",
+                        "name" : "termproxy",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "node" : {
+                                 "description" : "The cluster node name.",
+                                 "format" : "pve-node",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "upgrade" : {
+                                 "default" : 0,
+                                 "description" : "Run 'apt-get dist-upgrade' instead of normal shell.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/nodes/{node}",
+                              [
+                                 "Sys.Console"
+                              ]
+                           ],
+                           "description" : "Restricted to users on realm 'pam'"
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "port" : {
+                                 "type" : "integer"
+                              },
+                              "ticket" : {
+                                 "type" : "string"
+                              },
+                              "upid" : {
+                                 "type" : "string"
+                              },
+                              "user" : {
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "leaf" : 1,
+                  "path" : "/nodes/{node}/termproxy",
+                  "text" : "termproxy"
+               },
                {
                   "info" : {
                      "GET" : {
@@ -20976,19 +26806,21 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "port" : {
                                  "description" : "Port number returned by previous vncproxy call.",
                                  "maximum" : 5999,
                                  "minimum" : 5900,
                                  "type" : "integer",
-                                 "typetext" : "integer (5900-5999)"
+                                 "typetext" : "<integer> (5900 - 5999)"
                               },
                               "vncticket" : {
                                  "description" : "Ticket from previous call to vncproxy.",
                                  "maxLength" : 512,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -21028,19 +26860,22 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "proxy" : {
                                  "description" : "SPICE proxy server. This can be used by the client to specify the proxy server. All nodes in a cluster runs 'spiceproxy', so it is up to the client to choose one. By default, we return the node where the VM is currently running. As resonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI).",
                                  "format" : "address",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "upgrade" : {
                                  "default" : 0,
                                  "description" : "Run 'apt-get dist-upgrade' instead of normal shell.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               }
                            }
                         },
@@ -21095,7 +26930,8 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -21147,28 +26983,33 @@ var pveapi = [
                                  "description" : "First name server IP address.",
                                  "format" : "ip",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "dns2" : {
                                  "description" : "Second name server IP address.",
                                  "format" : "ip",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "dns3" : {
                                  "description" : "Third name server IP address.",
                                  "format" : "ip",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "search" : {
                                  "description" : "Search domain for host-name lookup.",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -21204,7 +27045,8 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -21249,11 +27091,13 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "timezone" : {
                                  "description" : "Time zone. The file '/usr/share/zoneinfo/zone.tab' contains the list of valid names.",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -21289,7 +27133,8 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -21315,17 +27160,20 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "storage" : {
                                  "description" : "The storage where the template will be stored",
                                  "format" : "pve-storage-id",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "template" : {
                                  "description" : "The template wich will downloaded",
                                  "maxLength" : 255,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -21361,7 +27209,8 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -21397,12 +27246,21 @@ var pveapi = [
                               "force" : {
                                  "description" : "force if onboot=0.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "vms" : {
+                                 "description" : "Only consider Guests with these IDs.",
+                                 "format" : "pve-vmid-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -21438,7 +27296,15 @@ var pveapi = [
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "vms" : {
+                                 "description" : "Only consider Guests with these IDs.",
+                                 "format" : "pve-vmid-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -21476,17 +27342,26 @@ var pveapi = [
                                  "minimum" : 1,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (1- N)"
+                                 "typetext" : "<integer> (1 - N)"
                               },
                               "node" : {
                                  "description" : "The cluster node name.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "target" : {
                                  "description" : "Target node.",
                                  "format" : "pve-node",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "vms" : {
+                                 "description" : "Only consider Guests with these IDs.",
+                                 "format" : "pve-vmid-list",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -21522,7 +27397,8 @@ var pveapi = [
                         "node" : {
                            "description" : "The cluster node name.",
                            "format" : "pve-node",
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         }
                      }
                   },
@@ -21593,7 +27469,8 @@ var pveapi = [
                         "storage" : {
                            "description" : "The storage identifier.",
                            "format" : "pve-storage-id",
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         }
                      }
                   },
@@ -21621,7 +27498,8 @@ var pveapi = [
                         "storage" : {
                            "description" : "The storage identifier.",
                            "format" : "pve-storage-id",
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         }
                      }
                   },
@@ -21634,7 +27512,9 @@ var pveapi = [
                         ]
                      ]
                   },
-                  "returns" : {}
+                  "returns" : {
+                     "type" : "object"
+                  }
                },
                "PUT" : {
                   "description" : "Update storage configuration.",
@@ -21646,87 +27526,178 @@ var pveapi = [
                         "blocksize" : {
                            "description" : "block size",
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "bwlimit" : {
+                           "description" : "Set bandwidth/io limits various operations.",
+                           "format" : {
+                              "clone" : {
+                                 "description" : "bandwidth limit in MiB/s for cloning disks",
+                                 "format_description" : "LIMIT",
+                                 "minimum" : "0",
+                                 "optional" : 1,
+                                 "type" : "number"
+                              },
+                              "default" : {
+                                 "description" : "default bandwidth limit in MiB/s",
+                                 "format_description" : "LIMIT",
+                                 "minimum" : "0",
+                                 "optional" : 1,
+                                 "type" : "number"
+                              },
+                              "migration" : {
+                                 "description" : "bandwidth limit in MiB/s for migrating guests",
+                                 "format_description" : "LIMIT",
+                                 "minimum" : "0",
+                                 "optional" : 1,
+                                 "type" : "number"
+                              },
+                              "move" : {
+                                 "description" : "bandwidth limit in MiB/s for moving disks",
+                                 "format_description" : "LIMIT",
+                                 "minimum" : "0",
+                                 "optional" : 1,
+                                 "type" : "number"
+                              },
+                              "restore" : {
+                                 "description" : "bandwidth limit in MiB/s for restoring guests from backups",
+                                 "format_description" : "LIMIT",
+                                 "minimum" : "0",
+                                 "optional" : 1,
+                                 "type" : "number"
+                              }
+                           },
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
                         },
                         "comstar_hg" : {
                            "description" : "host group for comstar views",
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "comstar_tg" : {
                            "description" : "target group for comstar views",
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "content" : {
                            "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
                            "format" : "pve-storage-content-list",
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "delete" : {
                            "description" : "A list of settings you want to delete.",
                            "format" : "pve-configid-list",
                            "maxLength" : 4096,
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "digest" : {
                            "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
                            "maxLength" : 40,
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "disable" : {
                            "description" : "Flag to disable the storage.",
                            "optional" : 1,
-                           "type" : "boolean"
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
+                        },
+                        "domain" : {
+                           "description" : "CIFS domain.",
+                           "maxLength" : 256,
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "format" : {
                            "description" : "Default image format.",
                            "format" : "pve-storage-format",
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "fuse" : {
+                           "description" : "Mount CephFS through FUSE.",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
+                        },
+                        "is_mountpoint" : {
+                           "default" : "no",
+                           "description" : "Assume the given path is an externally managed mountpoint and consider the storage offline if it is not mounted. Using a boolean (yes/no) value serves as a shortcut to using the target path in this field.",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "krbd" : {
                            "description" : "Access rbd through krbd kernel module.",
                            "optional" : 1,
-                           "type" : "boolean"
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
                         },
                         "maxfiles" : {
                            "description" : "Maximal number of backup files per VM. Use '0' for unlimted.",
                            "minimum" : 0,
                            "optional" : 1,
                            "type" : "integer",
-                           "typetext" : "integer (0- N)"
+                           "typetext" : "<integer> (0 - N)"
                         },
                         "mkdir" : {
                            "default" : "yes",
                            "description" : "Create the directory if it doesn't exist.",
                            "optional" : 1,
-                           "type" : "boolean"
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
+                        },
+                        "monhost" : {
+                           "description" : "IP addresses of monitors (for external clusters).",
+                           "format" : "pve-storage-portal-dns-list",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "nodes" : {
                            "description" : "List of cluster node names.",
                            "format" : "pve-node-list",
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "nowritecache" : {
                            "description" : "disable write caching on the target",
                            "optional" : 1,
-                           "type" : "boolean"
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
                         },
                         "options" : {
                            "description" : "NFS mount options (see 'man nfs')",
                            "format" : "pve-storage-options",
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "password" : {
+                           "description" : "Password for CIFS share.",
+                           "maxLength" : 256,
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "pool" : {
                            "description" : "Pool.",
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "redundancy" : {
                            "default" : 2,
@@ -21735,50 +27706,75 @@ var pveapi = [
                            "minimum" : 1,
                            "optional" : 1,
                            "type" : "integer",
-                           "typetext" : "integer (1-16)"
+                           "typetext" : "<integer> (1 - 16)"
                         },
                         "saferemove" : {
                            "description" : "Zero-out data when removing LVs.",
                            "optional" : 1,
-                           "type" : "boolean"
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
                         },
                         "saferemove_throughput" : {
                            "description" : "Wipe throughput (cstream -t parameter value).",
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "server" : {
                            "description" : "Server IP or DNS name.",
                            "format" : "pve-storage-server",
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "server2" : {
                            "description" : "Backup volfile server IP or DNS name.",
                            "format" : "pve-storage-server",
                            "optional" : 1,
                            "requires" : "server",
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "shared" : {
                            "description" : "Mark storage as shared.",
                            "optional" : 1,
-                           "type" : "boolean"
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
+                        },
+                        "smbversion" : {
+                           "description" : "SMB protocol version",
+                           "enum" : [
+                              "2.0",
+                              "2.1",
+                              "3.0"
+                           ],
+                           "optional" : 1,
+                           "type" : "string"
                         },
                         "sparse" : {
                            "description" : "use sparse volumes",
                            "optional" : 1,
-                           "type" : "boolean"
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
                         },
                         "storage" : {
                            "description" : "The storage identifier.",
                            "format" : "pve-storage-id",
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "subdir" : {
+                           "description" : "Subdir to mount.",
+                           "format" : "pve-storage-path",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "tagged_only" : {
                            "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
                            "optional" : 1,
-                           "type" : "boolean"
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
                         },
                         "transport" : {
                            "description" : "Gluster transport: tcp or rdma",
@@ -21793,7 +27789,8 @@ var pveapi = [
                         "username" : {
                            "description" : "RBD Id.",
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         }
                      },
                      "type" : "object"
@@ -21829,6 +27826,8 @@ var pveapi = [
                   "type" : {
                      "description" : "Only list storage of specific type",
                      "enum" : [
+                        "cephfs",
+                        "cifs",
                         "dir",
                         "drbd",
                         "glusterfs",
@@ -21879,114 +27878,203 @@ var pveapi = [
                   "authsupported" : {
                      "description" : "Authsupported.",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "base" : {
                      "description" : "Base volume. This volume is automatically activated.",
                      "format" : "pve-volume-id",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "blocksize" : {
                      "description" : "block size",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
+                  },
+                  "bwlimit" : {
+                     "description" : "Set bandwidth/io limits various operations.",
+                     "format" : {
+                        "clone" : {
+                           "description" : "bandwidth limit in MiB/s for cloning disks",
+                           "format_description" : "LIMIT",
+                           "minimum" : "0",
+                           "optional" : 1,
+                           "type" : "number"
+                        },
+                        "default" : {
+                           "description" : "default bandwidth limit in MiB/s",
+                           "format_description" : "LIMIT",
+                           "minimum" : "0",
+                           "optional" : 1,
+                           "type" : "number"
+                        },
+                        "migration" : {
+                           "description" : "bandwidth limit in MiB/s for migrating guests",
+                           "format_description" : "LIMIT",
+                           "minimum" : "0",
+                           "optional" : 1,
+                           "type" : "number"
+                        },
+                        "move" : {
+                           "description" : "bandwidth limit in MiB/s for moving disks",
+                           "format_description" : "LIMIT",
+                           "minimum" : "0",
+                           "optional" : 1,
+                           "type" : "number"
+                        },
+                        "restore" : {
+                           "description" : "bandwidth limit in MiB/s for restoring guests from backups",
+                           "format_description" : "LIMIT",
+                           "minimum" : "0",
+                           "optional" : 1,
+                           "type" : "number"
+                        }
+                     },
+                     "optional" : 1,
+                     "type" : "string",
+                     "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
                   },
                   "comstar_hg" : {
                      "description" : "host group for comstar views",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "comstar_tg" : {
                      "description" : "target group for comstar views",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "content" : {
                      "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
                      "format" : "pve-storage-content-list",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "disable" : {
                      "description" : "Flag to disable the storage.",
                      "optional" : 1,
-                     "type" : "boolean"
+                     "type" : "boolean",
+                     "typetext" : "<boolean>"
+                  },
+                  "domain" : {
+                     "description" : "CIFS domain.",
+                     "maxLength" : 256,
+                     "optional" : 1,
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "export" : {
                      "description" : "NFS export path.",
                      "format" : "pve-storage-path",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "format" : {
                      "description" : "Default image format.",
                      "format" : "pve-storage-format",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
+                  },
+                  "fuse" : {
+                     "description" : "Mount CephFS through FUSE.",
+                     "optional" : 1,
+                     "type" : "boolean",
+                     "typetext" : "<boolean>"
+                  },
+                  "is_mountpoint" : {
+                     "default" : "no",
+                     "description" : "Assume the given path is an externally managed mountpoint and consider the storage offline if it is not mounted. Using a boolean (yes/no) value serves as a shortcut to using the target path in this field.",
+                     "optional" : 1,
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "iscsiprovider" : {
                      "description" : "iscsi provider",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "krbd" : {
                      "description" : "Access rbd through krbd kernel module.",
                      "optional" : 1,
-                     "type" : "boolean"
+                     "type" : "boolean",
+                     "typetext" : "<boolean>"
                   },
                   "maxfiles" : {
                      "description" : "Maximal number of backup files per VM. Use '0' for unlimted.",
                      "minimum" : 0,
                      "optional" : 1,
                      "type" : "integer",
-                     "typetext" : "integer (0- N)"
+                     "typetext" : "<integer> (0 - N)"
                   },
                   "mkdir" : {
                      "default" : "yes",
                      "description" : "Create the directory if it doesn't exist.",
                      "optional" : 1,
-                     "type" : "boolean"
+                     "type" : "boolean",
+                     "typetext" : "<boolean>"
                   },
                   "monhost" : {
-                     "description" : "Monitors daemon ips.",
+                     "description" : "IP addresses of monitors (for external clusters).",
                      "format" : "pve-storage-portal-dns-list",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "nodes" : {
                      "description" : "List of cluster node names.",
                      "format" : "pve-node-list",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "nowritecache" : {
                      "description" : "disable write caching on the target",
                      "optional" : 1,
-                     "type" : "boolean"
+                     "type" : "boolean",
+                     "typetext" : "<boolean>"
                   },
                   "options" : {
                      "description" : "NFS mount options (see 'man nfs')",
                      "format" : "pve-storage-options",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
+                  },
+                  "password" : {
+                     "description" : "Password for CIFS share.",
+                     "maxLength" : 256,
+                     "optional" : 1,
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "path" : {
                      "description" : "File system path.",
                      "format" : "pve-storage-path",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "pool" : {
                      "description" : "Pool.",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "portal" : {
                      "description" : "iSCSI portal (IP or DNS name with optional port).",
                      "format" : "pve-storage-portal-dns",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "redundancy" : {
                      "default" : 2,
@@ -21995,61 +28083,94 @@ var pveapi = [
                      "minimum" : 1,
                      "optional" : 1,
                      "type" : "integer",
-                     "typetext" : "integer (1-16)"
+                     "typetext" : "<integer> (1 - 16)"
                   },
                   "saferemove" : {
                      "description" : "Zero-out data when removing LVs.",
                      "optional" : 1,
-                     "type" : "boolean"
+                     "type" : "boolean",
+                     "typetext" : "<boolean>"
                   },
                   "saferemove_throughput" : {
                      "description" : "Wipe throughput (cstream -t parameter value).",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "server" : {
                      "description" : "Server IP or DNS name.",
                      "format" : "pve-storage-server",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "server2" : {
                      "description" : "Backup volfile server IP or DNS name.",
                      "format" : "pve-storage-server",
                      "optional" : 1,
                      "requires" : "server",
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
+                  },
+                  "share" : {
+                     "description" : "CIFS share.",
+                     "optional" : 1,
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "shared" : {
                      "description" : "Mark storage as shared.",
                      "optional" : 1,
-                     "type" : "boolean"
+                     "type" : "boolean",
+                     "typetext" : "<boolean>"
+                  },
+                  "smbversion" : {
+                     "description" : "SMB protocol version",
+                     "enum" : [
+                        "2.0",
+                        "2.1",
+                        "3.0"
+                     ],
+                     "optional" : 1,
+                     "type" : "string"
                   },
                   "sparse" : {
                      "description" : "use sparse volumes",
                      "optional" : 1,
-                     "type" : "boolean"
+                     "type" : "boolean",
+                     "typetext" : "<boolean>"
                   },
                   "storage" : {
                      "description" : "The storage identifier.",
                      "format" : "pve-storage-id",
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
+                  },
+                  "subdir" : {
+                     "description" : "Subdir to mount.",
+                     "format" : "pve-storage-path",
+                     "optional" : 1,
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "tagged_only" : {
                      "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
                      "optional" : 1,
-                     "type" : "boolean"
+                     "type" : "boolean",
+                     "typetext" : "<boolean>"
                   },
                   "target" : {
                      "description" : "iSCSI target.",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "thinpool" : {
                      "description" : "LVM thin pool LV name.",
                      "format" : "pve-storage-vgname",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "transport" : {
                      "description" : "Gluster transport: tcp or rdma",
@@ -22064,6 +28185,8 @@ var pveapi = [
                   "type" : {
                      "description" : "Storage type.",
                      "enum" : [
+                        "cephfs",
+                        "cifs",
                         "dir",
                         "drbd",
                         "glusterfs",
@@ -22082,18 +28205,21 @@ var pveapi = [
                   "username" : {
                      "description" : "RBD Id.",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "vgname" : {
                      "description" : "Volume group name.",
                      "format" : "pve-storage-vgname",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "volume" : {
                      "description" : "Glusterfs Volume.",
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
                   }
                },
                "type" : "object"
@@ -22134,7 +28260,8 @@ var pveapi = [
                                  "description" : "User ID",
                                  "format" : "pve-userid",
                                  "maxLength" : 64,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -22169,7 +28296,8 @@ var pveapi = [
                                  "description" : "User ID",
                                  "format" : "pve-userid",
                                  "maxLength" : 64,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -22228,52 +28356,61 @@ var pveapi = [
                               "append" : {
                                  "optional" : 1,
                                  "requires" : "groups",
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "comment" : {
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "email" : {
                                  "format" : "email-opt",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "enable" : {
                                  "description" : "Enable/disable the account.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "expire" : {
                                  "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (0- N)"
+                                 "typetext" : "<integer> (0 - N)"
                               },
                               "firstname" : {
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "groups" : {
                                  "format" : "pve-groupid-list",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "keys" : {
                                  "description" : "Keys for two factor auth (yubico).",
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "lastname" : {
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "userid" : {
                                  "description" : "User ID",
                                  "format" : "pve-userid",
                                  "maxLength" : 64,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -22309,7 +28446,8 @@ var pveapi = [
                         "enabled" : {
                            "description" : "Optional filter for enable property.",
                            "optional" : 1,
-                           "type" : "boolean"
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
                         }
                      }
                   },
@@ -22344,56 +28482,65 @@ var pveapi = [
                      "properties" : {
                         "comment" : {
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "email" : {
                            "format" : "email-opt",
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "enable" : {
                            "default" : 1,
                            "description" : "Enable the account (default). You can set this to '0' to disable the accout",
                            "optional" : 1,
-                           "type" : "boolean"
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
                         },
                         "expire" : {
                            "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
                            "minimum" : 0,
                            "optional" : 1,
                            "type" : "integer",
-                           "typetext" : "integer (0- N)"
+                           "typetext" : "<integer> (0 - N)"
                         },
                         "firstname" : {
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "groups" : {
                            "format" : "pve-groupid-list",
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "keys" : {
                            "description" : "Keys for two factor auth (yubico).",
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "lastname" : {
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "password" : {
                            "description" : "Initial password.",
                            "maxLength" : 64,
                            "minLength" : 5,
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "userid" : {
                            "description" : "User ID",
                            "format" : "pve-userid",
                            "maxLength" : 64,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         }
                      }
                   },
@@ -22438,7 +28585,8 @@ var pveapi = [
                            "properties" : {
                               "groupid" : {
                                  "format" : "pve-groupid",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -22465,7 +28613,8 @@ var pveapi = [
                            "properties" : {
                               "groupid" : {
                                  "format" : "pve-groupid",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -22507,11 +28656,13 @@ var pveapi = [
                            "properties" : {
                               "comment" : {
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "groupid" : {
                                  "format" : "pve-groupid",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -22574,11 +28725,13 @@ var pveapi = [
                      "properties" : {
                         "comment" : {
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "groupid" : {
                            "format" : "pve-groupid",
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         }
                      }
                   },
@@ -22614,7 +28767,8 @@ var pveapi = [
                            "properties" : {
                               "roleid" : {
                                  "format" : "pve-roleid",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -22641,7 +28795,8 @@ var pveapi = [
                            "properties" : {
                               "roleid" : {
                                  "format" : "pve-roleid",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -22660,15 +28815,18 @@ var pveapi = [
                               "append" : {
                                  "optional" : 1,
                                  "requires" : "privs",
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "privs" : {
                                  "format" : "pve-priv-list",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "roleid" : {
                                  "format" : "pve-roleid",
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -22731,11 +28889,13 @@ var pveapi = [
                         "privs" : {
                            "format" : "pve-priv-list",
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "roleid" : {
                            "format" : "pve-roleid",
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         }
                      }
                   },
@@ -22810,34 +28970,40 @@ var pveapi = [
                         "delete" : {
                            "description" : "Remove permissions (instead of adding it).",
                            "optional" : 1,
-                           "type" : "boolean"
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
                         },
                         "groups" : {
                            "description" : "List of groups.",
                            "format" : "pve-groupid-list",
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "path" : {
                            "description" : "Access control path",
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "propagate" : {
                            "default" : 1,
                            "description" : "Allow to propagate (inherit) permissions.",
                            "optional" : 1,
-                           "type" : "boolean"
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
                         },
                         "roles" : {
                            "description" : "List of roles.",
                            "format" : "pve-roleid-list",
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "users" : {
                            "description" : "List of users.",
                            "format" : "pve-userid-list",
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         }
                      }
                   },
@@ -22872,7 +29038,8 @@ var pveapi = [
                                  "description" : "Authentication domain ID",
                                  "format" : "pve-realm",
                                  "maxLength" : 32,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -22901,7 +29068,8 @@ var pveapi = [
                                  "description" : "Authentication domain ID",
                                  "format" : "pve-realm",
                                  "maxLength" : 32,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            }
                         },
@@ -22940,29 +29108,52 @@ var pveapi = [
                                  "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
                                  "type" : "string"
                               },
+                              "capath" : {
+                                 "default" : "/etc/ssl/certs",
+                                 "description" : "Path to the CA certificate store",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "cert" : {
+                                 "description" : "Path to the client certificate",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "certkey" : {
+                                 "description" : "Path to the client certificate key",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
                               "comment" : {
                                  "description" : "Description.",
                                  "maxLength" : 4096,
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "default" : {
                                  "description" : "Use this as default realm",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "delete" : {
                                  "description" : "A list of settings you want to delete.",
                                  "format" : "pve-configid-list",
                                  "maxLength" : 4096,
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "digest" : {
                                  "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
                                  "maxLength" : 40,
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "domain" : {
                                  "description" : "AD domain name",
@@ -22977,39 +29168,44 @@ var pveapi = [
                                  "minimum" : 1,
                                  "optional" : 1,
                                  "type" : "integer",
-                                 "typetext" : "integer (1-65535)"
+                                 "typetext" : "<integer> (1 - 65535)"
                               },
                               "realm" : {
                                  "description" : "Authentication domain ID",
                                  "format" : "pve-realm",
                                  "maxLength" : 32,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "secure" : {
                                  "description" : "Use secure LDAPS protocol.",
                                  "optional" : 1,
-                                 "type" : "boolean"
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               },
                               "server1" : {
                                  "description" : "Server IP address (or DNS name)",
                                  "format" : "address",
                                  "maxLength" : 256,
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "server2" : {
                                  "description" : "Fallback Server IP address (or DNS name)",
                                  "format" : "address",
                                  "maxLength" : 256,
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "tfa" : {
                                  "description" : "Use Two-factor authentication.",
                                  "format" : "pve-tfa-config",
                                  "maxLength" : 128,
                                  "optional" : 1,
-                                 "type" : "string"
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               },
                               "user_attr" : {
                                  "description" : "LDAP user attribute name",
@@ -23017,6 +29213,13 @@ var pveapi = [
                                  "optional" : 1,
                                  "pattern" : "\\S{2,}",
                                  "type" : "string"
+                              },
+                              "verify" : {
+                                 "default" : 0,
+                                 "description" : "Verify the server's SSL certificate",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
                               }
                            },
                            "type" : "object"
@@ -23057,6 +29260,7 @@ var pveapi = [
                      "items" : {
                         "properties" : {
                            "comment" : {
+                              "description" : "A comment. The GUI use this text when you select a domain (Realm) on the login window.",
                               "optional" : 1,
                               "type" : "string"
                            },
@@ -23105,16 +29309,37 @@ var pveapi = [
                            "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
                            "type" : "string"
                         },
+                        "capath" : {
+                           "default" : "/etc/ssl/certs",
+                           "description" : "Path to the CA certificate store",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "cert" : {
+                           "description" : "Path to the client certificate",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
+                        "certkey" : {
+                           "description" : "Path to the client certificate key",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
                         "comment" : {
                            "description" : "Description.",
                            "maxLength" : 4096,
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "default" : {
                            "description" : "Use this as default realm",
                            "optional" : 1,
-                           "type" : "boolean"
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
                         },
                         "domain" : {
                            "description" : "AD domain name",
@@ -23129,39 +29354,44 @@ var pveapi = [
                            "minimum" : 1,
                            "optional" : 1,
                            "type" : "integer",
-                           "typetext" : "integer (1-65535)"
+                           "typetext" : "<integer> (1 - 65535)"
                         },
                         "realm" : {
                            "description" : "Authentication domain ID",
                            "format" : "pve-realm",
                            "maxLength" : 32,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "secure" : {
                            "description" : "Use secure LDAPS protocol.",
                            "optional" : 1,
-                           "type" : "boolean"
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
                         },
                         "server1" : {
                            "description" : "Server IP address (or DNS name)",
                            "format" : "address",
                            "maxLength" : 256,
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "server2" : {
                            "description" : "Fallback Server IP address (or DNS name)",
                            "format" : "address",
                            "maxLength" : 256,
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "tfa" : {
                            "description" : "Use Two-factor authentication.",
                            "format" : "pve-tfa-config",
                            "maxLength" : 128,
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "type" : {
                            "description" : "Realm type.",
@@ -23179,6 +29409,13 @@ var pveapi = [
                            "optional" : 1,
                            "pattern" : "\\S{2,}",
                            "type" : "string"
+                        },
+                        "verify" : {
+                           "default" : 0,
+                           "description" : "Verify the server's SSL certificate",
+                           "optional" : 1,
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
                         }
                      },
                      "type" : "object"
@@ -23205,7 +29442,7 @@ var pveapi = [
          {
             "info" : {
                "GET" : {
-                  "description" : "Dummy. Useful for formaters which want to priovde a login page.",
+                  "description" : "Dummy. Useful for formatters which want to provide a login page.",
                   "method" : "GET",
                   "name" : "get_ticket",
                   "parameters" : {
@@ -23228,18 +29465,21 @@ var pveapi = [
                         "otp" : {
                            "description" : "One-time password for Two-factor authentication.",
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "password" : {
                            "description" : "The secret password. This can also be a valid ticket.",
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "path" : {
                            "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
                            "maxLength" : 64,
                            "optional" : 1,
                            "requires" : "privs",
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "privs" : {
                            "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
@@ -23247,19 +29487,22 @@ var pveapi = [
                            "maxLength" : 64,
                            "optional" : 1,
                            "requires" : "path",
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "realm" : {
                            "description" : "You can optionally pass the realm using this parameter. Normally the realm is simply added to the username <username>@<relam>.",
                            "format" : "pve-realm",
                            "maxLength" : 32,
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "username" : {
                            "description" : "User name",
                            "maxLength" : 64,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         }
                      }
                   },
@@ -23303,13 +29546,15 @@ var pveapi = [
                            "description" : "The new password.",
                            "maxLength" : 64,
                            "minLength" : 5,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "userid" : {
                            "description" : "User ID",
                            "format" : "pve-userid",
                            "maxLength" : 64,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         }
                      }
                   },
@@ -23394,7 +29639,8 @@ var pveapi = [
                      "properties" : {
                         "poolid" : {
                            "format" : "pve-poolid",
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         }
                      }
                   },
@@ -23422,7 +29668,8 @@ var pveapi = [
                      "properties" : {
                         "poolid" : {
                            "format" : "pve-poolid",
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         }
                      }
                   },
@@ -23487,28 +29734,33 @@ var pveapi = [
                      "properties" : {
                         "comment" : {
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "delete" : {
                            "description" : "Remove vms/storage (instead of adding it).",
                            "optional" : 1,
-                           "type" : "boolean"
+                           "type" : "boolean",
+                           "typetext" : "<boolean>"
                         },
                         "poolid" : {
                            "format" : "pve-poolid",
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "storage" : {
                            "description" : "List of storage IDs.",
                            "format" : "pve-storage-id-list",
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         },
                         "vms" : {
                            "description" : "List of virtual machines.",
                            "format" : "pve-vmid-list",
                            "optional" : 1,
-                           "type" : "string"
+                           "type" : "string",
+                           "typetext" : "<string>"
                         }
                      }
                   },
@@ -23572,11 +29824,13 @@ var pveapi = [
                "properties" : {
                   "comment" : {
                      "optional" : 1,
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
                   },
                   "poolid" : {
                      "format" : "pve-poolid",
-                     "type" : "string"
+                     "type" : "string",
+                     "typetext" : "<string>"
                   }
                }
             },