]> git.proxmox.com Git - pve-docs.git/blobdiff - api-viewer/apidata.js
Precise certificate generation
[pve-docs.git] / api-viewer / apidata.js
index a8916dd57e78d8fd92244d3027108505b4e58956..60e0a238d8076d5371992170673939d2de9ab18b 100644 (file)
@@ -136,6 +136,13 @@ var pveapi = [
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
+                              },
+                              "source" : {
+                                 "description" : "Source of the replication.",
+                                 "format" : "pve-node",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
                               }
                            },
                            "type" : "object"
@@ -237,6 +244,13 @@ var pveapi = [
                            "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",
@@ -276,6 +290,98 @@ var pveapi = [
          {
             "children" : [
                {
+                  "children" : [
+                     {
+                        "info" : {
+                           "DELETE" : {
+                              "description" : "Removes a node from the cluster configuration.",
+                              "method" : "DELETE",
+                              "name" : "delnode",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "type" : "null"
+                              }
+                           },
+                           "POST" : {
+                              "description" : "Adds a node to the cluster configuration. This call is for internal use.",
+                              "method" : "POST",
+                              "name" : "addnode",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "force" : {
+                                       "description" : "Do not throw error if node already exists.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "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" : 0,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (0 - N)"
+                                    }
+                                 }
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "properties" : {
+                                    "corosync_authkey" : {
+                                       "type" : "string"
+                                    },
+                                    "corosync_conf" : {
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "type" : "object"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/cluster/config/nodes/{node}",
+                        "text" : "{node}"
+                     }
+                  ],
                   "info" : {
                      "GET" : {
                         "description" : "Corosync node list.",
@@ -312,10 +418,166 @@ var pveapi = [
                         }
                      }
                   },
-                  "leaf" : 1,
+                  "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" : {
+                              "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"
+                              },
+                              "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"
+                              },
+                              "preferred_node" : {
+                                 "description" : "The cluster node name.",
+                                 "format" : "pve-node",
+                                 "type" : "string"
+                              },
+                              "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"
+                              },
+                              "force" : {
+                                 "description" : "Do not throw error if node already exists.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
+                              "hostname" : {
+                                 "description" : "Hostname (or IP) of an existing cluster member.",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "nodeid" : {
+                                 "description" : "Node id for this node.",
+                                 "minimum" : 1,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (1 - N)"
+                              },
+                              "password" : {
+                                 "description" : "Superuser (root) password of peer node.",
+                                 "maxLength" : 128,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "ring0_addr" : {
+                                 "default" : "IP resolved by node's hostname",
+                                 "description" : "Hostname (or IP) of the corosync ring0 address of this node.",
+                                 "format" : "address",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "ring1_addr" : {
+                                 "description" : "Hostname (or IP) of the corosync ring1 address of this node. Requires a valid configured ring 1 (bindnet1_addr) in the cluster.",
+                                 "format" : "address",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              },
+                              "votes" : {
+                                 "description" : "Number of votes for this node",
+                                 "minimum" : 0,
+                                 "optional" : 1,
+                                 "type" : "integer",
+                                 "typetext" : "<integer> (0 - N)"
+                              }
+                           }
+                        },
+                        "protected" : 1,
+                        "returns" : {
+                           "type" : "string"
+                        }
+                     }
+                  },
+                  "leaf" : 1,
+                  "path" : "/cluster/config/join",
+                  "text" : "join"
+               },
                {
                   "info" : {
                      "GET" : {
@@ -335,7 +597,6 @@ var pveapi = [
                            ]
                         },
                         "returns" : {
-                           "properties" : {},
                            "type" : "object"
                         }
                      }
@@ -375,6 +636,70 @@ var pveapi = [
                      ],
                      "type" : "array"
                   }
+               },
+               "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,
@@ -468,23 +793,69 @@ var pveapi = [
                                     },
                                     "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.",
+                                             "type" : "string"
+                                          },
+                                          "comment" : {
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "dest" : {
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "dport" : {
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "enable" : {
+                                             "optional" : 1,
+                                             "type" : "integer"
+                                          },
+                                          "iface" : {
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "ipversion" : {
+                                             "optional" : 1,
+                                             "type" : "integer"
+                                          },
+                                          "macro" : {
+                                             "optional" : 1,
+                                             "type" : "integer"
+                                          },
+                                          "pos" : {
+                                             "type" : "integer"
+                                          },
+                                          "proto" : {
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "source" : {
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "sport" : {
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "type" : {
+                                             "type" : "string"
+                                          }
+                                       },
+                                       "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,
@@ -999,8 +1370,54 @@ var pveapi = [
                               "proxyto" : null,
                               "returns" : {
                                  "properties" : {
+                                    "action" : {
+                                       "type" : "string"
+                                    },
+                                    "comment" : {
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "dest" : {
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "dport" : {
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "enable" : {
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
+                                    "iface" : {
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "ipversion" : {
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
+                                    "macro" : {
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
                                     "pos" : {
                                        "type" : "integer"
+                                    },
+                                    "proto" : {
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "source" : {
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "sport" : {
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "type" : {
+                                       "type" : "string"
                                     }
                                  },
                                  "type" : "object"
@@ -1941,6 +2358,12 @@ var pveapi = [
                         },
                         "returns" : {
                            "properties" : {
+                              "ebtables" : {
+                                 "default" : 1,
+                                 "description" : "Enable ebtables rules cluster wide.",
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
                               "enable" : {
                                  "description" : "Enable or disable the firewall cluster wide.",
                                  "minimum" : 0,
@@ -1992,6 +2415,13 @@ var pveapi = [
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
+                              "ebtables" : {
+                                 "default" : 1,
+                                 "description" : "Enable ebtables rules cluster wide.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
                               "enable" : {
                                  "description" : "Enable or disable the firewall cluster wide.",
                                  "minimum" : 0,
@@ -2953,11 +3383,12 @@ var pveapi = [
                                           "started",
                                           "stopped",
                                           "enabled",
-                                          "disabled"
+                                          "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"
+                                       "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"
@@ -3078,11 +3509,12 @@ var pveapi = [
                                     "started",
                                     "stopped",
                                     "enabled",
-                                    "disabled"
+                                    "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"
+                                 "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.",
@@ -3492,48 +3924,328 @@ var pveapi = [
             "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)"
-                        }
+            "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,
+                                       "renderer" : "yaml",
+                                       "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}"
                      }
-                  },
-                  "permissions" : {
-                     "user" : "all"
-                  },
-                  "returns" : {
-                     "items" : {
-                        "properties" : {},
-                        "type" : "object"
+                  ],
+                  "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"
+                        }
                      },
-                     "type" : "array"
-                  }
-               }
-            },
-            "leaf" : 1,
-            "path" : "/cluster/log",
-            "text" : "log"
-         },
-         {
-            "info" : {
-               "GET" : {
-                  "description" : "Resources index (cluster wide).",
-                  "method" : "GET",
-                  "name" : "resources",
-                  "parameters" : {
-                     "additionalProperties" : 0,
-                     "properties" : {
+                     "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",
@@ -3550,7 +4262,96 @@ var pveapi = [
                   },
                   "returns" : {
                      "items" : {
-                        "properties" : {},
+                        "properties" : {
+                           "cpu" : {
+                              "description" : "CPU utilization (when type in node,qemu,lxc).",
+                              "optional" : 1,
+                              "renderer" : "fraction_as_percentage",
+                              "type" : "number"
+                           },
+                           "disk" : {
+                              "description" : "Used disk space in bytes (when type in storage), used root image spave for VMs (type in qemu,lxc).",
+                              "optional" : 1,
+                              "renderer" : "bytes",
+                              "type" : "string"
+                           },
+                           "hastate" : {
+                              "description" : "HA service status (for HA managed VMs).",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "id" : {
+                              "type" : "string"
+                           },
+                           "level" : {
+                              "description" : "Support level (when type == node).",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "maxcpu" : {
+                              "description" : "Number of available CPUs (when type in node,qemu,lxc).",
+                              "optional" : 1,
+                              "type" : "number"
+                           },
+                           "maxdisk" : {
+                              "description" : "Storage size in bytes (when type in storage), root image size for VMs (type in qemu,lxc).",
+                              "optional" : 1,
+                              "renderer" : "bytes",
+                              "type" : "integer"
+                           },
+                           "maxmem" : {
+                              "description" : "Number of available memory in bytes (when type in node,qemu,lxc).",
+                              "optional" : 1,
+                              "renderer" : "bytes",
+                              "type" : "integer"
+                           },
+                           "mem" : {
+                              "description" : "Used memory in bytes (when type in node,qemu,lxc).",
+                              "optional" : 1,
+                              "renderer" : "bytes",
+                              "type" : "string"
+                           },
+                           "node" : {
+                              "description" : "The cluster node name (when type in node,storage,qemu,lxc).",
+                              "format" : "pve-node",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "pool" : {
+                              "description" : "The pool name (when type in pool,qemu,lxc).",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "status" : {
+                              "description" : "Resource type dependent status.",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "storage" : {
+                              "description" : "The storage identifier (when type == storage).",
+                              "format" : "pve-storage-id",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "type" : {
+                              "description" : "Resource type.",
+                              "enum" : [
+                                 "node",
+                                 "storage",
+                                 "pool",
+                                 "qemu",
+                                 "lxc",
+                                 "openvz"
+                              ],
+                              "type" : "string"
+                           },
+                           "uptime" : {
+                              "description" : "Node uptime in seconds (when type in node,qemu,lxc).",
+                              "optional" : 1,
+                              "renderer" : "duration",
+                              "type" : "integer"
+                           }
+                        },
                         "type" : "object"
                      },
                      "type" : "array"
@@ -3609,7 +4410,6 @@ var pveapi = [
                      ]
                   },
                   "returns" : {
-                     "properties" : {},
                      "type" : "object"
                   }
                },
@@ -3620,12 +4420,56 @@ var pveapi = [
                   "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), an external virt-viewer comtatible application (SPICE), or an HTML5 based viewer (noVNC).",
+                           "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"
+                              "html5",
+                              "xtermjs"
                            ],
                            "optional" : 1,
                            "type" : "string"
@@ -3696,8 +4540,25 @@ var pveapi = [
                         "language" : {
                            "description" : "Default GUI language.",
                            "enum" : [
+                              "zh_CN",
+                              "zh_TW",
+                              "ca",
                               "en",
-                              "de"
+                              "eu",
+                              "fr",
+                              "de",
+                              "it",
+                              "es",
+                              "ja",
+                              "nb",
+                              "nn",
+                              "fa",
+                              "pl",
+                              "pt_BR",
+                              "ru",
+                              "sl",
+                              "sv",
+                              "tr"
                            ],
                            "optional" : 1,
                            "type" : "string"
@@ -3971,45 +4832,91 @@ var pveapi = [
                                                 },
                                                 "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>"
+                                                         "type" : "string"
                                                       },
-                                                      "delete" : {
-                                                         "description" : "A list of settings you want to delete.",
-                                                         "format" : "pve-configid-list",
+                                                      "dest" : {
                                                          "optional" : 1,
-                                                         "type" : "string",
-                                                         "typetext" : "<string>"
+                                                         "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",
+                                                      "dport" : {
+                                                         "optional" : 1,
+                                                         "type" : "string"
+                                                      },
+                                                      "enable" : {
+                                                         "optional" : 1,
+                                                         "type" : "integer"
+                                                      },
+                                                      "iface" : {
+                                                         "optional" : 1,
+                                                         "type" : "string"
+                                                      },
+                                                      "ipversion" : {
+                                                         "optional" : 1,
+                                                         "type" : "integer"
+                                                      },
+                                                      "macro" : {
+                                                         "optional" : 1,
+                                                         "type" : "integer"
+                                                      },
+                                                      "pos" : {
+                                                         "type" : "integer"
+                                                      },
+                                                      "proto" : {
+                                                         "optional" : 1,
+                                                         "type" : "string"
+                                                      },
+                                                      "source" : {
+                                                         "optional" : 1,
+                                                         "type" : "string"
+                                                      },
+                                                      "sport" : {
+                                                         "optional" : 1,
+                                                         "type" : "string"
+                                                      },
+                                                      "type" : {
+                                                         "type" : "string"
+                                                      }
+                                                   },
+                                                   "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>"
@@ -5560,946 +6467,1431 @@ var pveapi = [
                               "text" : "firewall"
                            },
                            {
-                              "info" : {
-                                 "GET" : {
-                                    "description" : "Read VM RRD statistics (returns PNG)",
-                                    "method" : "GET",
-                                    "name" : "rrd",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "cf" : {
-                                             "description" : "The RRD consolidation function",
-                                             "enum" : [
-                                                "AVERAGE",
-                                                "MAX"
-                                             ],
-                                             "optional" : 1,
-                                             "type" : "string"
-                                          },
-                                          "ds" : {
-                                             "description" : "The list of datasources you want to display.",
-                                             "format" : "pve-configid-list",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
+                              "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>"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
                                           },
-                                          "timeframe" : {
-                                             "description" : "Specify the time frame you are interested in.",
-                                             "enum" : [
-                                                "hour",
-                                                "day",
-                                                "week",
-                                                "month",
-                                                "year"
-                                             ],
-                                             "type" : "string"
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
                                           },
-                                          "vmid" : {
-                                             "description" : "The (unique) ID of the VM.",
-                                             "format" : "pve-vmid",
-                                             "minimum" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (1 - N)"
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
                                           }
                                        }
                                     },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/vms/{vmid}",
-                                          [
-                                             "VM.Audit"
-                                          ]
-                                       ]
-                                    },
-                                    "protected" : 1,
-                                    "returns" : {
-                                       "properties" : {
-                                          "filename" : {
-                                             "type" : "string"
-                                          }
-                                       },
-                                       "type" : "object"
-                                    }
-                                 }
-                              },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/qemu/{vmid}/rrd",
-                              "text" : "rrd"
-                           },
-                           {
-                              "info" : {
-                                 "GET" : {
-                                    "description" : "Read VM RRD statistics",
-                                    "method" : "GET",
-                                    "name" : "rrddata",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "cf" : {
-                                             "description" : "The RRD consolidation function",
-                                             "enum" : [
-                                                "AVERAGE",
-                                                "MAX"
-                                             ],
-                                             "optional" : 1,
-                                             "type" : "string"
-                                          },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
+                                    "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>"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
                                           },
-                                          "timeframe" : {
-                                             "description" : "Specify the time frame you are interested in.",
-                                             "enum" : [
-                                                "hour",
-                                                "day",
-                                                "week",
-                                                "month",
-                                                "year"
-                                             ],
-                                             "type" : "string"
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
                                           },
-                                          "vmid" : {
-                                             "description" : "The (unique) ID of the VM.",
-                                             "format" : "pve-vmid",
-                                             "minimum" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (1 - N)"
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
                                           }
                                        }
                                     },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/vms/{vmid}",
-                                          [
-                                             "VM.Audit"
-                                          ]
-                                       ]
-                                    },
-                                    "protected" : 1,
-                                    "returns" : {
-                                       "items" : {
-                                          "properties" : {},
-                                          "type" : "object"
-                                       },
-                                       "type" : "array"
-                                    }
-                                 }
-                              },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/qemu/{vmid}/rrddata",
-                              "text" : "rrddata"
-                           },
-                           {
-                              "info" : {
-                                 "GET" : {
-                                    "description" : "Get current virtual machine configuration. This does not include pending configuration changes (see 'pending' API).",
-                                    "method" : "GET",
-                                    "name" : "vm_config",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "current" : {
-                                             "default" : 0,
-                                             "description" : "Get current values (instead of pending values).",
-                                             "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-status",
+                                    "text" : "fsfreeze-status"
+                                 },
+                                 {
+                                    "info" : {
+                                       "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",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
                                           },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
                                           },
-                                          "vmid" : {
-                                             "description" : "The (unique) ID of the VM.",
-                                             "format" : "pve-vmid",
-                                             "minimum" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (1 - N)"
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "description" : "Returns an object with a single `result` property.",
+                                             "type" : "object"
                                           }
                                        }
                                     },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/vms/{vmid}",
-                                          [
-                                             "VM.Audit"
-                                          ]
-                                       ]
-                                    },
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "properties" : {
-                                          "digest" : {
-                                             "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
-                                             "type" : "string"
-                                          }
-                                       },
-                                       "type" : "object"
-                                    }
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-thaw",
+                                    "text" : "fsfreeze-thaw"
                                  },
-                                 "POST" : {
-                                    "description" : "Set virtual machine options (asynchrounous API).",
-                                    "method" : "POST",
-                                    "name" : "update_vm_async",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "acpi" : {
-                                             "default" : 1,
-                                             "description" : "Enable/disable ACPI.",
-                                             "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
-                                          },
-                                          "agent" : {
-                                             "default" : 0,
-                                             "description" : "Enable/disable Qemu GuestAgent.",
-                                             "optional" : 1,
-                                             "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"
+                                 {
+                                    "info" : {
+                                       "POST" : {
+                                          "description" : "Execute fstrim.",
+                                          "method" : "POST",
+                                          "name" : "fstrim",
+                                          "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)"
+                                                }
+                                             }
                                           },
-                                          "autostart" : {
-                                             "default" : 0,
-                                             "description" : "Automatic restart after crash (currently ignored).",
-                                             "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
                                           },
-                                          "background_delay" : {
-                                             "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
-                                             "maximum" : 30,
-                                             "minimum" : 1,
-                                             "optional" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (1 - 30)"
+                                          "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",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
                                           },
-                                          "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)"
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
                                           },
-                                          "bios" : {
-                                             "default" : "seabios",
-                                             "description" : "Select BIOS implementation.",
-                                             "enum" : [
-                                                "seabios",
-                                                "ovmf"
-                                             ],
-                                             "optional" : 1,
-                                             "type" : "string"
+                                          "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>"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
                                           },
-                                          "boot" : {
-                                             "default" : "cdn",
-                                             "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
-                                             "optional" : 1,
-                                             "pattern" : "[acdn]{1,4}",
-                                             "type" : "string"
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
                                           },
-                                          "bootdisk" : {
-                                             "description" : "Enable booting from specified disk.",
-                                             "format" : "pve-qm-bootdisk",
-                                             "optional" : 1,
-                                             "pattern" : "(ide|sata|scsi|virtio)\\d+",
-                                             "type" : "string"
-                                          },
-                                          "cdrom" : {
-                                             "description" : "This is an alias for option -ide2",
-                                             "format" : "pve-qm-ide",
-                                             "optional" : 1,
-                                             "type" : "string",
-                                             "typetext" : "<volume>"
-                                          },
-                                          "cores" : {
-                                             "default" : 1,
-                                             "description" : "The number of cores per socket.",
-                                             "minimum" : 1,
-                                             "optional" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (1 - N)"
-                                          },
-                                          "cpu" : {
-                                             "description" : "Emulated CPU type.",
-                                             "format" : {
-                                                "cputype" : {
-                                                   "default" : "kvm64",
-                                                   "default_key" : 1,
-                                                   "description" : "Emulated CPU type.",
-                                                   "enum" : [
-                                                      "486",
-                                                      "athlon",
-                                                      "Broadwell",
-                                                      "Broadwell-noTSX",
-                                                      "Conroe",
-                                                      "core2duo",
-                                                      "coreduo",
-                                                      "Haswell",
-                                                      "Haswell-noTSX",
-                                                      "host",
-                                                      "IvyBridge",
-                                                      "kvm32",
-                                                      "kvm64",
-                                                      "Nehalem",
-                                                      "Opteron_G1",
-                                                      "Opteron_G2",
-                                                      "Opteron_G3",
-                                                      "Opteron_G4",
-                                                      "Opteron_G5",
-                                                      "Penryn",
-                                                      "pentium",
-                                                      "pentium2",
-                                                      "pentium3",
-                                                      "phenom",
-                                                      "qemu32",
-                                                      "qemu64",
-                                                      "SandyBridge",
-                                                      "Skylake-Client",
-                                                      "Westmere"
-                                                   ],
-                                                   "type" : "string"
+                                          "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>"
                                                 },
-                                                "hidden" : {
-                                                   "default" : 0,
-                                                   "description" : "Do not identify as a KVM virtual machine.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
-                                             },
-                                             "optional" : 1,
-                                             "type" : "string",
-                                             "typetext" : "[cputype=]<enum> [,hidden=<1|0>]"
+                                             }
                                           },
-                                          "cpulimit" : {
-                                             "default" : 0,
-                                             "description" : "Limit of CPU usage.",
-                                             "maximum" : 128,
-                                             "minimum" : 0,
-                                             "optional" : 1,
-                                             "type" : "number",
-                                             "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."
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
                                           },
-                                          "cpuunits" : {
-                                             "default" : 1024,
-                                             "description" : "CPU weight for a VM.",
-                                             "maximum" : 500000,
-                                             "minimum" : 0,
-                                             "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."
+                                          "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)"
+                                                }
+                                             }
                                           },
-                                          "delete" : {
-                                             "description" : "A list of settings you want to delete.",
-                                             "format" : "pve-configid-list",
-                                             "optional" : 1,
-                                             "type" : "string",
-                                             "typetext" : "<string>"
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
                                           },
-                                          "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",
-                                             "typetext" : "<string>"
+                                          "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-blocks",
+                                    "text" : "get-memory-blocks"
+                                 },
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "Execute get-osinfo.",
+                                          "method" : "GET",
+                                          "name" : "get-osinfo",
+                                          "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)"
+                                                }
+                                             }
                                           },
-                                          "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>"
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
                                           },
-                                          "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",
-                                             "typetext" : "<boolean>"
+                                          "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-osinfo",
+                                    "text" : "get-osinfo"
+                                 },
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "Execute get-time.",
+                                          "method" : "GET",
+                                          "name" : "get-time",
+                                          "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)"
+                                                }
+                                             }
                                           },
-                                          "freeze" : {
-                                             "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
-                                             "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
                                           },
-                                          "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>] [,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" : {
-                                             "default" : "network,disk,usb",
-                                             "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Value '1' is an alias for the default 'network,disk,usb'.",
-                                             "format" : "pve-hotplug-features",
-                                             "optional" : 1,
-                                             "type" : "string",
-                                             "typetext" : "<string>"
+                                          "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-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>"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
                                           },
-                                          "hugepages" : {
-                                             "description" : "Enable/disable hugepages memory.",
-                                             "enum" : [
-                                                "any",
-                                                "2",
-                                                "1024"
-                                             ],
-                                             "optional" : 1,
-                                             "type" : "string"
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
                                           },
-                                          "ide[n]" : {
-                                             "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
-                                             "format" : {
-                                                "aio" : {
-                                                   "description" : "AIO type to use.",
-                                                   "enum" : [
-                                                      "native",
-                                                      "threads"
-                                                   ],
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "backup" : {
-                                                   "description" : "Whether the drive should be included when making backups.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                },
-                                                "bps" : {
-                                                   "description" : "Maximum r/w speed in bytes per second.",
-                                                   "format_description" : "bps",
-                                                   "optional" : 1,
-                                                   "type" : "integer"
+                                          "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>"
                                                 },
-                                                "bps_max_length" : {
-                                                   "description" : "Maximum length of I/O bursts in seconds.",
-                                                   "format_description" : "seconds",
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
                                                    "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_length" : {
-                                                   "alias" : "bps_rd_max_length"
+                                                   "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>"
                                                 },
-                                                "bps_rd_max_length" : {
-                                                   "description" : "Maximum length of read I/O bursts in seconds.",
-                                                   "format_description" : "seconds",
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
                                                    "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_length" : {
-                                                   "alias" : "bps_wr_max_length"
+                                                   "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-vcpus",
+                                    "text" : "get-vcpus"
+                                 },
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "Execute info.",
+                                          "method" : "GET",
+                                          "name" : "info",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "bps_wr_max_length" : {
-                                                   "description" : "Maximum length of write I/O bursts in seconds.",
-                                                   "format_description" : "seconds",
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
                                                    "minimum" : 1,
-                                                   "optional" : 1,
-                                                   "type" : "integer"
+                                                   "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/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>"
                                                 },
-                                                "cache" : {
-                                                   "description" : "The drive's cache mode",
-                                                   "enum" : [
-                                                      "none",
-                                                      "writethrough",
-                                                      "writeback",
-                                                      "unsafe",
-                                                      "directsync"
-                                                   ],
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "cyls" : {
-                                                   "description" : "Force the drive's physical geometry to have a specific cylinder count.",
-                                                   "optional" : 1,
-                                                   "type" : "integer"
-                                                },
-                                                "detect_zeroes" : {
-                                                   "description" : "Controls whether to detect and try to optimize writes of zeroes.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                },
-                                                "discard" : {
-                                                   "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
-                                                   "enum" : [
-                                                      "ignore",
-                                                      "on"
-                                                   ],
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "file" : {
-                                                   "default_key" : 1,
-                                                   "description" : "The drive's backing volume.",
-                                                   "format" : "pve-volume-id-or-qm-path",
-                                                   "format_description" : "volume",
-                                                   "type" : "string"
-                                                },
-                                                "format" : {
-                                                   "description" : "The drive's backing file's data format.",
-                                                   "enum" : [
-                                                      "raw",
-                                                      "cow",
-                                                      "qcow",
-                                                      "qed",
-                                                      "qcow2",
-                                                      "vmdk",
-                                                      "cloop"
-                                                   ],
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "heads" : {
-                                                   "description" : "Force the drive's physical geometry to have a specific head count.",
-                                                   "optional" : 1,
-                                                   "type" : "integer"
-                                                },
-                                                "iops" : {
-                                                   "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 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",
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
                                                    "minimum" : 1,
-                                                   "optional" : 1,
-                                                   "type" : "integer"
-                                                },
-                                                "iops_rd" : {
-                                                   "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 in operations per second.",
-                                                   "format_description" : "iops",
-                                                   "optional" : 1,
-                                                   "type" : "integer"
+                                                   "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/network-get-interfaces",
+                                    "text" : "network-get-interfaces"
+                                 },
+                                 {
+                                    "info" : {
+                                       "POST" : {
+                                          "description" : "Execute ping.",
+                                          "method" : "POST",
+                                          "name" : "ping",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "iops_rd_max_length" : {
-                                                   "description" : "Maximum length of read I/O bursts in seconds.",
-                                                   "format_description" : "seconds",
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
                                                    "minimum" : 1,
-                                                   "optional" : 1,
-                                                   "type" : "integer"
-                                                },
-                                                "iops_wr" : {
-                                                   "description" : "Maximum write I/O in operations per second.",
-                                                   "format_description" : "iops",
-                                                   "optional" : 1,
-                                                   "type" : "integer"
-                                                },
-                                                "iops_wr_length" : {
-                                                   "alias" : "iops_wr_max_length"
+                                                   "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/ping",
+                                    "text" : "ping"
+                                 },
+                                 {
+                                    "info" : {
+                                       "POST" : {
+                                          "description" : "Execute shutdown.",
+                                          "method" : "POST",
+                                          "name" : "shutdown",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "iops_wr_max" : {
-                                                   "description" : "Maximum unthrottled write I/O pool in operations per second.",
-                                                   "format_description" : "iops",
-                                                   "optional" : 1,
-                                                   "type" : "integer"
+                                                "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/shutdown",
+                                    "text" : "shutdown"
+                                 },
+                                 {
+                                    "info" : {
+                                       "POST" : {
+                                          "description" : "Execute suspend-disk.",
+                                          "method" : "POST",
+                                          "name" : "suspend-disk",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "iops_wr_max_length" : {
-                                                   "description" : "Maximum length of write I/O bursts in seconds.",
-                                                   "format_description" : "seconds",
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
                                                    "minimum" : 1,
-                                                   "optional" : 1,
-                                                   "type" : "integer"
+                                                   "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/suspend-disk",
+                                    "text" : "suspend-disk"
+                                 },
+                                 {
+                                    "info" : {
+                                       "POST" : {
+                                          "description" : "Execute suspend-hybrid.",
+                                          "method" : "POST",
+                                          "name" : "suspend-hybrid",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "mbps" : {
-                                                   "description" : "Maximum r/w speed in megabytes per second.",
-                                                   "format_description" : "mbps",
-                                                   "optional" : 1,
-                                                   "type" : "number"
+                                                "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/suspend-hybrid",
+                                    "text" : "suspend-hybrid"
+                                 },
+                                 {
+                                    "info" : {
+                                       "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",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "mbps_max" : {
-                                                   "description" : "Maximum unthrottled r/w pool in megabytes per second.",
-                                                   "format_description" : "mbps",
+                                                "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/suspend-ram",
+                                    "text" : "suspend-ram"
+                                 },
+                                 {
+                                    "info" : {
+                                       "POST" : {
+                                          "description" : "Sets the password for the given user to the given password",
+                                          "method" : "POST",
+                                          "name" : "set-user-password",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "crypted" : {
+                                                   "default" : 0,
+                                                   "description" : "set to 1 if the password has already been passed through crypt()",
                                                    "optional" : 1,
-                                                   "type" : "number"
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
                                                 },
-                                                "mbps_rd" : {
-                                                   "description" : "Maximum read speed in megabytes per second.",
-                                                   "format_description" : "mbps",
-                                                   "optional" : 1,
-                                                   "type" : "number"
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "mbps_rd_max" : {
-                                                   "description" : "Maximum unthrottled read pool in megabytes per second.",
-                                                   "format_description" : "mbps",
-                                                   "optional" : 1,
-                                                   "type" : "number"
+                                                "password" : {
+                                                   "description" : "The new password.",
+                                                   "maxLength" : 64,
+                                                   "minLength" : 5,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "mbps_wr" : {
-                                                   "description" : "Maximum write speed in megabytes per second.",
-                                                   "format_description" : "mbps",
-                                                   "optional" : 1,
-                                                   "type" : "number"
+                                                "username" : {
+                                                   "description" : "The user to set the password for.",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "mbps_wr_max" : {
-                                                   "description" : "Maximum unthrottled write pool in megabytes per second.",
-                                                   "format_description" : "mbps",
-                                                   "optional" : 1,
-                                                   "type" : "number"
+                                                "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/set-user-password",
+                                    "text" : "set-user-password"
+                                 },
+                                 {
+                                    "info" : {
+                                       "POST" : {
+                                          "description" : "Executes the given command in the vm via the guest-agent and returns an object with the pid.",
+                                          "method" : "POST",
+                                          "name" : "exec",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "command" : {
+                                                   "description" : "The command as a list of program + arguments",
+                                                   "format" : "string-alist",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "media" : {
-                                                   "default" : "disk",
-                                                   "description" : "The drive's media type.",
-                                                   "enum" : [
-                                                      "cdrom",
-                                                      "disk"
-                                                   ],
+                                                "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" : {
+                                             "properties" : {
+                                                "pid" : {
+                                                   "description" : "The PID of the process started by the guest-agent.",
+                                                   "type" : "integer"
+                                                }
+                                             },
+                                             "type" : "object"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/exec",
+                                    "text" : "exec"
+                                 },
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "Gets the status of the given pid started by the guest-agent",
+                                          "method" : "GET",
+                                          "name" : "exec-status",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "pid" : {
+                                                   "description" : "The PID to query",
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer>"
+                                                },
+                                                "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" : {
+                                             "properties" : {
+                                                "err-data" : {
+                                                   "description" : "stderr of the process",
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
-                                                "model" : {
-                                                   "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
-                                                   "format" : "urlencoded",
-                                                   "format_description" : "model",
-                                                   "maxLength" : 120,
+                                                "err-truncated" : {
+                                                   "description" : "true if stderr was not fully captured",
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "boolean"
                                                 },
-                                                "replicate" : {
-                                                   "default" : 1,
-                                                   "description" : "Whether the drive should considered for replication jobs.",
+                                                "exitcode" : {
+                                                   "description" : "process exit code if it was normally terminated.",
                                                    "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "exited" : {
+                                                   "description" : "Tells if the given command has exited yet.",
                                                    "type" : "boolean"
                                                 },
-                                                "rerror" : {
-                                                   "description" : "Read error action.",
-                                                   "enum" : [
-                                                      "ignore",
-                                                      "report",
-                                                      "stop"
-                                                   ],
+                                                "out-data" : {
+                                                   "description" : "stdout of the process",
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
-                                                "secs" : {
-                                                   "description" : "Force the drive's physical geometry to have a specific sector count.",
+                                                "out-truncated" : {
+                                                   "description" : "true if stdout was not fully captured",
                                                    "optional" : 1,
-                                                   "type" : "integer"
+                                                   "type" : "boolean"
                                                 },
-                                                "serial" : {
-                                                   "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
-                                                   "format" : "urlencoded",
-                                                   "format_description" : "serial",
-                                                   "maxLength" : 60,
+                                                "signal" : {
+                                                   "description" : "signal number or exception code if the process was abnormally terminated.",
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "integer"
+                                                }
+                                             },
+                                             "type" : "object"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/exec-status",
+                                    "text" : "exec-status"
+                                 },
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "Reads the given file via guest agent. Is limited to 16777216 bytes.",
+                                          "method" : "GET",
+                                          "name" : "file-read",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "file" : {
+                                                   "description" : "The path to the file",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "size" : {
-                                                   "description" : "Disk size. This is purely informational and has no effect.",
-                                                   "format" : "disk-size",
-                                                   "format_description" : "DiskSize",
-                                                   "optional" : 1,
+                                                "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 `content` property.",
+                                             "properties" : {
+                                                "content" : {
+                                                   "description" : "The content of the file, maximum 16777216",
                                                    "type" : "string"
                                                 },
-                                                "snapshot" : {
-                                                   "description" : "Whether the drive should be included when making snapshots.",
+                                                "truncated" : {
+                                                   "description" : "If set to 1, the output is truncated and not complete",
                                                    "optional" : 1,
                                                    "type" : "boolean"
+                                                }
+                                             },
+                                             "type" : "object"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/file-read",
+                                    "text" : "file-read"
+                                 },
+                                 {
+                                    "info" : {
+                                       "POST" : {
+                                          "description" : "Writes the given file via guest agent.",
+                                          "method" : "POST",
+                                          "name" : "file-write",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "content" : {
+                                                   "description" : "The content to write into the file.",
+                                                   "maxLength" : 61440,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "trans" : {
-                                                   "description" : "Force disk geometry bios translation mode.",
-                                                   "enum" : [
-                                                      "none",
-                                                      "lba",
-                                                      "auto"
-                                                   ],
-                                                   "optional" : 1,
-                                                   "type" : "string"
+                                                "file" : {
+                                                   "description" : "The path to the file.",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "volume" : {
-                                                   "alias" : "file"
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
                                                 },
-                                                "werror" : {
-                                                   "description" : "Write error action.",
-                                                   "enum" : [
-                                                      "enospc",
-                                                      "ignore",
-                                                      "report",
-                                                      "stop"
-                                                   ],
-                                                   "optional" : 1,
-                                                   "type" : "string"
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
                                                 }
-                                             },
-                                             "optional" : 1,
-                                             "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
-                                          },
-                                          "keyboard" : {
-                                             "default" : "en-us",
-                                             "description" : "Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.conf' configuration file.",
-                                             "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"
+                                             }
                                           },
-                                          "kvm" : {
-                                             "default" : 1,
-                                             "description" : "Enable/disable KVM hardware virtualization.",
-                                             "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.Monitor"
+                                                ]
+                                             ]
                                           },
-                                          "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",
-                                             "typetext" : "<boolean>"
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "type" : "null"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/agent/file-write",
+                                    "text" : "file-write"
+                                 }
+                              ],
+                              "info" : {
+                                 "GET" : {
+                                    "description" : "Qemu Agent command index.",
+                                    "method" : "GET",
+                                    "name" : "index",
+                                    "parameters" : {
+                                       "additionalProperties" : 1,
+                                       "properties" : {
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
-                                          "lock" : {
-                                             "description" : "Lock/unlock the VM.",
+                                          "vmid" : {
+                                             "description" : "The (unique) ID of the VM.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "user" : "all"
+                                    },
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "description" : "Returns the list of Qemu Agent commands",
+                                       "items" : {
+                                          "properties" : {},
+                                          "type" : "object"
+                                       },
+                                       "links" : [
+                                          {
+                                             "href" : "{name}",
+                                             "rel" : "child"
+                                          }
+                                       ],
+                                       "type" : "array"
+                                    }
+                                 },
+                                 "POST" : {
+                                    "description" : "Execute Qemu Guest Agent commands.",
+                                    "method" : "POST",
+                                    "name" : "agent",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "command" : {
+                                             "description" : "The QGA command.",
                                              "enum" : [
-                                                "migrate",
-                                                "backup",
-                                                "snapshot",
-                                                "rollback"
+                                                "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"
                                              ],
-                                             "optional" : 1,
                                              "type" : "string"
                                           },
-                                          "machine" : {
-                                             "description" : "Specific the Qemu machine type.",
-                                             "maxLength" : 40,
-                                             "optional" : 1,
-                                             "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)",
-                                             "type" : "string"
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
-                                          "memory" : {
-                                             "default" : 512,
-                                             "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
-                                             "minimum" : 16,
-                                             "optional" : 1,
+                                          "vmid" : {
+                                             "description" : "The (unique) ID of the VM.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
                                              "type" : "integer",
-                                             "typetext" : "<integer> (16 - N)"
-                                          },
-                                          "migrate_downtime" : {
-                                             "default" : 0.1,
-                                             "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
-                                             "minimum" : 0,
+                                             "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}/agent",
+                              "text" : "agent"
+                           },
+                           {
+                              "info" : {
+                                 "GET" : {
+                                    "description" : "Read VM RRD statistics (returns PNG)",
+                                    "method" : "GET",
+                                    "name" : "rrd",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "cf" : {
+                                             "description" : "The RRD consolidation function",
+                                             "enum" : [
+                                                "AVERAGE",
+                                                "MAX"
+                                             ],
                                              "optional" : 1,
-                                             "type" : "number",
-                                             "typetext" : "<number> (0 - N)"
+                                             "type" : "string"
                                           },
-                                          "migrate_speed" : {
-                                             "default" : 0,
-                                             "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
-                                             "minimum" : 0,
-                                             "optional" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (0 - N)"
+                                          "ds" : {
+                                             "description" : "The list of datasources you want to display.",
+                                             "format" : "pve-configid-list",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
-                                          "name" : {
-                                             "description" : "Set a name for the VM. Only used on the configuration web interface.",
-                                             "format" : "dns-name",
-                                             "optional" : 1,
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           },
-                                          "net[n]" : {
-                                             "description" : "Specify network devices.",
-                                             "format" : {
-                                                "bridge" : {
-                                                   "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2   Gateway\n 10.0.2.3   DNS Server\n 10.0.2.4   SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n",
-                                                   "format_description" : "bridge",
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "e1000" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "e1000-82540em" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "e1000-82544gc" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "e1000-82545em" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "firewall" : {
-                                                   "description" : "Whether this interface should be protected by the firewall.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                },
-                                                "i82551" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "i82557b" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "i82559er" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "link_down" : {
-                                                   "description" : "Whether this interface should be disconnected (like pulling the plug).",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                },
-                                                "macaddr" : {
-                                                   "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
-                                                   "format_description" : "XX:XX:XX:XX:XX:XX",
-                                                   "optional" : 1,
-                                                   "pattern" : "(?^i:[0-9a-f]{2}(?::[0-9a-f]{2}){5})",
-                                                   "type" : "string"
-                                                },
-                                                "model" : {
-                                                   "default_key" : 1,
-                                                   "description" : "Network Card Model. The 'virtio' model provides the best performance with very low CPU overhead. If your guest does not support this driver, it is usually best to use 'e1000'.",
-                                                   "enum" : [
-                                                      "rtl8139",
-                                                      "ne2k_pci",
-                                                      "e1000",
-                                                      "pcnet",
-                                                      "virtio",
-                                                      "ne2k_isa",
-                                                      "i82551",
-                                                      "i82557b",
-                                                      "i82559er",
-                                                      "vmxnet3",
-                                                      "e1000-82540em",
-                                                      "e1000-82544gc",
-                                                      "e1000-82545em"
-                                                   ],
-                                                   "type" : "string"
-                                                },
-                                                "ne2k_isa" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "ne2k_pci" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "pcnet" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "queues" : {
-                                                   "description" : "Number of packet queues to be used on the device.",
-                                                   "maximum" : 16,
-                                                   "minimum" : 0,
-                                                   "optional" : 1,
-                                                   "type" : "integer"
-                                                },
-                                                "rate" : {
-                                                   "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
-                                                   "minimum" : 0,
-                                                   "optional" : 1,
-                                                   "type" : "number"
-                                                },
-                                                "rtl8139" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "tag" : {
-                                                   "description" : "VLAN tag to apply to packets on this interface.",
-                                                   "maximum" : 4094,
-                                                   "minimum" : 1,
-                                                   "optional" : 1,
-                                                   "type" : "integer"
-                                                },
-                                                "trunks" : {
-                                                   "description" : "VLAN trunks to pass through this interface.",
-                                                   "format_description" : "vlanid[;vlanid...]",
-                                                   "optional" : 1,
-                                                   "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
-                                                   "type" : "string"
-                                                },
-                                                "virtio" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "vmxnet3" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                }
-                                             },
+                                          "timeframe" : {
+                                             "description" : "Specify the time frame you are interested in.",
+                                             "enum" : [
+                                                "hour",
+                                                "day",
+                                                "week",
+                                                "month",
+                                                "year"
+                                             ],
+                                             "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" : {
+                                       "properties" : {
+                                          "filename" : {
+                                             "type" : "string"
+                                          }
+                                       },
+                                       "type" : "object"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/qemu/{vmid}/rrd",
+                              "text" : "rrd"
+                           },
+                           {
+                              "info" : {
+                                 "GET" : {
+                                    "description" : "Read VM RRD statistics",
+                                    "method" : "GET",
+                                    "name" : "rrddata",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "cf" : {
+                                             "description" : "The RRD consolidation function",
+                                             "enum" : [
+                                                "AVERAGE",
+                                                "MAX"
+                                             ],
                                              "optional" : 1,
-                                             "type" : "string",
-                                             "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
+                                             "type" : "string"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
@@ -6507,139 +7899,402 @@ var pveapi = [
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           },
-                                          "numa" : {
-                                             "default" : 0,
-                                             "description" : "Enable/disable NUMA.",
+                                          "timeframe" : {
+                                             "description" : "Specify the time frame you are interested in.",
+                                             "enum" : [
+                                                "hour",
+                                                "day",
+                                                "week",
+                                                "month",
+                                                "year"
+                                             ],
+                                             "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" : {
+                                       "items" : {
+                                          "properties" : {},
+                                          "type" : "object"
+                                       },
+                                       "type" : "array"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/qemu/{vmid}/rrddata",
+                              "text" : "rrddata"
+                           },
+                           {
+                              "info" : {
+                                 "GET" : {
+                                    "description" : "Get current virtual machine configuration. This does not include pending configuration changes (see 'pending' API).",
+                                    "method" : "GET",
+                                    "name" : "vm_config",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "current" : {
+                                             "default" : 0,
+                                             "description" : "Get current values (instead of pending values).",
                                              "optional" : 1,
                                              "type" : "boolean",
                                              "typetext" : "<boolean>"
                                           },
-                                          "numa[n]" : {
-                                             "description" : "NUMA topology.",
+                                          "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" : {
+                                       "description" : "The current VM configuration.",
+                                       "properties" : {
+                                          "acpi" : {
+                                             "default" : 1,
+                                             "description" : "Enable/disable ACPI.",
+                                             "optional" : 1,
+                                             "type" : "boolean"
+                                          },
+                                          "agent" : {
+                                             "description" : "Enable/disable Qemu GuestAgent and its properties.",
                                              "format" : {
-                                                "cpus" : {
-                                                   "description" : "CPUs accessing this NUMA node.",
-                                                   "format_description" : "id[-id];...",
-                                                   "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
-                                                   "type" : "string"
-                                                },
-                                                "hostnodes" : {
-                                                   "description" : "Host NUMA nodes to use.",
-                                                   "format_description" : "id[-id];...",
-                                                   "optional" : 1,
-                                                   "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
-                                                   "type" : "string"
-                                                },
-                                                "memory" : {
-                                                   "description" : "Amount of memory this NUMA node provides.",
-                                                   "optional" : 1,
-                                                   "type" : "number"
+                                                "enabled" : {
+                                                   "default" : 0,
+                                                   "default_key" : 1,
+                                                   "description" : "Enable/disable Qemu GuestAgent.",
+                                                   "type" : "boolean"
                                                 },
-                                                "policy" : {
-                                                   "description" : "NUMA allocation policy.",
-                                                   "enum" : [
-                                                      "preferred",
-                                                      "bind",
-                                                      "interleave"
-                                                   ],
+                                                "fstrim_cloned_disks" : {
+                                                   "default" : 0,
+                                                   "description" : "Run fstrim after cloning/moving a disk.",
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "boolean"
                                                 }
                                              },
                                              "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "arch" : {
+                                             "description" : "Virtual processor architecture. Defaults to the host.",
+                                             "enum" : [
+                                                "x86_64",
+                                                "aarch64"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "args" : {
+                                             "description" : "Arbitrary arguments passed to kvm.",
+                                             "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
+                                             "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
                                           },
-                                          "onboot" : {
+                                          "autostart" : {
                                              "default" : 0,
-                                             "description" : "Specifies whether a VM will be started during system bootup.",
+                                             "description" : "Automatic restart after crash (currently ignored).",
                                              "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
+                                             "type" : "boolean"
                                           },
-                                          "ostype" : {
-                                             "description" : "Specify guest operating system.",
+                                          "balloon" : {
+                                             "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer"
+                                          },
+                                          "bios" : {
+                                             "default" : "seabios",
+                                             "description" : "Select BIOS implementation.",
                                              "enum" : [
-                                                "other",
-                                                "wxp",
-                                                "w2k",
-                                                "w2k3",
-                                                "w2k8",
-                                                "wvista",
-                                                "win7",
-                                                "win8",
-                                                "win10",
-                                                "l24",
-                                                "l26",
-                                                "solaris"
+                                                "seabios",
+                                                "ovmf"
                                              ],
                                              "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"
+                                             "type" : "string"
                                           },
-                                          "parallel[n]" : {
-                                             "description" : "Map host parallel devices (n is 0 to 2).",
+                                          "boot" : {
+                                             "default" : "cdn",
+                                             "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
+                                             "optional" : 1,
+                                             "pattern" : "[acdn]{1,4}",
+                                             "type" : "string"
+                                          },
+                                          "bootdisk" : {
+                                             "description" : "Enable booting from specified disk.",
+                                             "format" : "pve-qm-bootdisk",
+                                             "optional" : 1,
+                                             "pattern" : "(ide|sata|scsi|virtio)\\d+",
+                                             "type" : "string"
+                                          },
+                                          "cdrom" : {
+                                             "description" : "This is an alias for option -ide2",
+                                             "format" : "pve-qm-ide",
                                              "optional" : 1,
-                                             "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
                                              "type" : "string",
-                                             "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+                                             "typetext" : "<volume>"
                                           },
-                                          "protection" : {
-                                             "default" : 0,
-                                             "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
+                                          "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" : "boolean",
-                                             "typetext" : "<boolean>"
+                                             "type" : "string"
                                           },
-                                          "reboot" : {
-                                             "default" : 1,
-                                             "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
+                                          "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" : "boolean",
-                                             "typetext" : "<boolean>"
+                                             "type" : "string"
                                           },
-                                          "revert" : {
-                                             "description" : "Revert a pending change.",
-                                             "format" : "pve-configid-list",
+                                          "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" : "<string>"
+                                             "type" : "string"
                                           },
-                                          "sata[n]" : {
-                                             "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
+                                          "cores" : {
+                                             "default" : 1,
+                                             "description" : "The number of cores per socket.",
+                                             "minimum" : 1,
+                                             "optional" : 1,
+                                             "type" : "integer"
+                                          },
+                                          "cpu" : {
+                                             "description" : "Emulated CPU type.",
                                              "format" : {
-                                                "aio" : {
-                                                   "description" : "AIO type to use.",
+                                                "cputype" : {
+                                                   "default" : "kvm64",
+                                                   "default_key" : 1,
+                                                   "description" : "Emulated CPU type.",
                                                    "enum" : [
-                                                      "native",
-                                                      "threads"
-                                                   ],
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "backup" : {
-                                                   "description" : "Whether the drive should be included when making backups.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                },
-                                                "bps" : {
-                                                   "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"
+                                                      "486",
+                                                      "athlon",
+                                                      "Broadwell",
+                                                      "Broadwell-IBRS",
+                                                      "Broadwell-noTSX",
+                                                      "Broadwell-noTSX-IBRS",
+                                                      "Conroe",
+                                                      "core2duo",
+                                                      "coreduo",
+                                                      "EPYC",
+                                                      "EPYC-IBPB",
+                                                      "Haswell",
+                                                      "Haswell-IBRS",
+                                                      "Haswell-noTSX",
+                                                      "Haswell-noTSX-IBRS",
+                                                      "host",
+                                                      "IvyBridge",
+                                                      "IvyBridge-IBRS",
+                                                      "kvm32",
+                                                      "kvm64",
+                                                      "max",
+                                                      "Nehalem",
+                                                      "Nehalem-IBRS",
+                                                      "Opteron_G1",
+                                                      "Opteron_G2",
+                                                      "Opteron_G3",
+                                                      "Opteron_G4",
+                                                      "Opteron_G5",
+                                                      "Penryn",
+                                                      "pentium",
+                                                      "pentium2",
+                                                      "pentium3",
+                                                      "phenom",
+                                                      "qemu32",
+                                                      "qemu64",
+                                                      "SandyBridge",
+                                                      "SandyBridge-IBRS",
+                                                      "Skylake-Client",
+                                                      "Skylake-Client-IBRS",
+                                                      "Skylake-Server",
+                                                      "Skylake-Server-IBRS",
+                                                      "Westmere",
+                                                      "Westmere-IBRS"
+                                                   ],
+                                                   "type" : "string"
+                                                },
+                                                "flags" : {
+                                                   "description" : "List of additional CPU flags separated by ';'. Use '+FLAG' to enable, '-FLAG' to disable a flag. Currently supported flags: 'pcid', 'spec-ctrl', 'ibpb', 'ssbd', 'virt-ssbd', 'amd-ssbd', 'amd-no-ssb', 'pdpe1gb'.",
+                                                   "format_description" : "+FLAG[;-FLAG...]",
+                                                   "optional" : 1,
+                                                   "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb))(;(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb)))*)",
+                                                   "type" : "string"
+                                                },
+                                                "hidden" : {
+                                                   "default" : 0,
+                                                   "description" : "Do not identify as a KVM virtual machine.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "cpulimit" : {
+                                             "default" : 0,
+                                             "description" : "Limit of CPU usage.",
+                                             "maximum" : 128,
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "number",
+                                             "verbose_description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit."
+                                          },
+                                          "cpuunits" : {
+                                             "default" : 1024,
+                                             "description" : "CPU weight for a VM.",
+                                             "maximum" : 262144,
+                                             "minimum" : 2,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs."
+                                          },
+                                          "description" : {
+                                             "description" : "Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file.",
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "digest" : {
+                                             "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
+                                             "type" : "string"
+                                          },
+                                          "efidisk0" : {
+                                             "description" : "Configure a Disk for storing EFI vars",
+                                             "format" : {
+                                                "file" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The drive's backing volume.",
+                                                   "format" : "pve-volume-id-or-qm-path",
+                                                   "format_description" : "volume",
+                                                   "type" : "string"
+                                                },
+                                                "format" : {
+                                                   "description" : "The drive's backing file's data format.",
+                                                   "enum" : [
+                                                      "raw",
+                                                      "cow",
+                                                      "qcow",
+                                                      "qed",
+                                                      "qcow2",
+                                                      "vmdk",
+                                                      "cloop"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "size" : {
+                                                   "description" : "Disk size. This is purely informational and has no effect.",
+                                                   "format" : "disk-size",
+                                                   "format_description" : "DiskSize",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "volume" : {
+                                                   "alias" : "file"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "freeze" : {
+                                             "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
+                                             "optional" : 1,
+                                             "type" : "boolean"
+                                          },
+                                          "hostpci[n]" : {
+                                             "description" : "Map host PCI devices into guest.",
+                                             "format" : "pve-qm-hostpci",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "verbose_description" : "Map host PCI devices into guest.\n\nNOTE: This option allows direct access to host hardware. So it is no longer \npossible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+                                          },
+                                          "hotplug" : {
+                                             "default" : "network,disk,usb",
+                                             "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Value '1' is an alias for the default 'network,disk,usb'.",
+                                             "format" : "pve-hotplug-features",
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "hugepages" : {
+                                             "description" : "Enable/disable hugepages memory.",
+                                             "enum" : [
+                                                "any",
+                                                "2",
+                                                "1024"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "ide[n]" : {
+                                             "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
+                                             "format" : {
+                                                "aio" : {
+                                                   "description" : "AIO type to use.",
+                                                   "enum" : [
+                                                      "native",
+                                                      "threads"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "backup" : {
+                                                   "description" : "Whether the drive should be included when making backups.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "bps" : {
+                                                   "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_length" : {
                                                    "alias" : "bps_rd_max_length"
@@ -6833,6 +8488,14 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "model" : {
+                                                   "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
+                                                   "format" : "urlencoded",
+                                                   "format_description" : "model",
+                                                   "maxLength" : 120,
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
                                                 "replicate" : {
                                                    "default" : 1,
                                                    "description" : "Whether the drive should considered for replication jobs.",
@@ -6862,6 +8525,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",
@@ -6870,7 +8540,12 @@ 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"
+                                                },
+                                                "ssd" : {
+                                                   "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
@@ -6900,568 +8575,725 @@ var pveapi = [
                                                 }
                                              },
                                              "optional" : 1,
-                                             "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+                                             "type" : "string"
                                           },
-                                          "scsi[n]" : {
-                                             "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
-                                             "format" : {
-                                                "aio" : {
-                                                   "description" : "AIO type to use.",
-                                                   "enum" : [
-                                                      "native",
-                                                      "threads"
-                                                   ],
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "backup" : {
-                                                   "description" : "Whether the drive should be included when making backups.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                },
-                                                "bps" : {
-                                                   "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_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_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" : [
-                                                      "none",
-                                                      "writethrough",
-                                                      "writeback",
-                                                      "unsafe",
-                                                      "directsync"
-                                                   ],
+                                          "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"
+                                          },
+                                          "keyboard" : {
+                                             "default" : null,
+                                             "description" : "Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.cfg' configuration file.It should not be necessary to set it.",
+                                             "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"
+                                          },
+                                          "kvm" : {
+                                             "default" : 1,
+                                             "description" : "Enable/disable KVM hardware virtualization.",
+                                             "optional" : 1,
+                                             "type" : "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"
+                                          },
+                                          "lock" : {
+                                             "description" : "Lock/unlock the VM.",
+                                             "enum" : [
+                                                "migrate",
+                                                "backup",
+                                                "snapshot",
+                                                "rollback"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "machine" : {
+                                             "description" : "Specifies the Qemu machine type.",
+                                             "maxLength" : 40,
+                                             "optional" : 1,
+                                             "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?|virt(?:-\\d+\\.\\d+)?)",
+                                             "type" : "string"
+                                          },
+                                          "memory" : {
+                                             "default" : 512,
+                                             "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
+                                             "minimum" : 16,
+                                             "optional" : 1,
+                                             "type" : "integer"
+                                          },
+                                          "migrate_downtime" : {
+                                             "default" : 0.1,
+                                             "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "number"
+                                          },
+                                          "migrate_speed" : {
+                                             "default" : 0,
+                                             "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer"
+                                          },
+                                          "name" : {
+                                             "description" : "Set a name for the VM. Only used on the configuration web interface.",
+                                             "format" : "dns-name",
+                                             "optional" : 1,
+                                             "type" : "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"
+                                          },
+                                          "net[n]" : {
+                                             "description" : "Specify network devices.",
+                                             "format" : {
+                                                "bridge" : {
+                                                   "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2   Gateway\n 10.0.2.3   DNS Server\n 10.0.2.4   SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n",
+                                                   "format_description" : "bridge",
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
-                                                "cyls" : {
-                                                   "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+                                                "e1000" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "e1000-82540em" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "e1000-82544gc" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "e1000-82545em" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "firewall" : {
+                                                   "description" : "Whether this interface should be protected by the firewall.",
                                                    "optional" : 1,
-                                                   "type" : "integer"
+                                                   "type" : "boolean"
                                                 },
-                                                "detect_zeroes" : {
-                                                   "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+                                                "i82551" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "i82557b" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "i82559er" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "link_down" : {
+                                                   "description" : "Whether this interface should be disconnected (like pulling the plug).",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
-                                                "discard" : {
-                                                   "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
-                                                   "enum" : [
-                                                      "ignore",
-                                                      "on"
-                                                   ],
+                                                "macaddr" : {
+                                                   "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
+                                                   "format_description" : "XX:XX:XX:XX:XX:XX",
                                                    "optional" : 1,
+                                                   "pattern" : "(?^i:[0-9a-f]{2}(?::[0-9a-f]{2}){5})",
                                                    "type" : "string"
                                                 },
-                                                "file" : {
+                                                "model" : {
                                                    "default_key" : 1,
-                                                   "description" : "The drive's backing volume.",
-                                                   "format" : "pve-volume-id-or-qm-path",
-                                                   "format_description" : "volume",
-                                                   "type" : "string"
-                                                },
-                                                "format" : {
-                                                   "description" : "The drive's backing file's data format.",
+                                                   "description" : "Network Card Model. The 'virtio' model provides the best performance with very low CPU overhead. If your guest does not support this driver, it is usually best to use 'e1000'.",
                                                    "enum" : [
-                                                      "raw",
-                                                      "cow",
-                                                      "qcow",
-                                                      "qed",
-                                                      "qcow2",
-                                                      "vmdk",
-                                                      "cloop"
+                                                      "rtl8139",
+                                                      "ne2k_pci",
+                                                      "e1000",
+                                                      "pcnet",
+                                                      "virtio",
+                                                      "ne2k_isa",
+                                                      "i82551",
+                                                      "i82557b",
+                                                      "i82559er",
+                                                      "vmxnet3",
+                                                      "e1000-82540em",
+                                                      "e1000-82544gc",
+                                                      "e1000-82545em"
                                                    ],
-                                                   "optional" : 1,
                                                    "type" : "string"
                                                 },
-                                                "heads" : {
-                                                   "description" : "Force the drive's physical geometry to have a specific head count.",
-                                                   "optional" : 1,
-                                                   "type" : "integer"
+                                                "ne2k_isa" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
                                                 },
-                                                "iops" : {
-                                                   "description" : "Maximum r/w I/O in operations per second.",
-                                                   "format_description" : "iops",
-                                                   "optional" : 1,
-                                                   "type" : "integer"
+                                                "ne2k_pci" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
                                                 },
-                                                "iops_max" : {
-                                                   "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
-                                                   "format_description" : "iops",
-                                                   "optional" : 1,
-                                                   "type" : "integer"
+                                                "pcnet" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
                                                 },
-                                                "iops_max_length" : {
-                                                   "description" : "Maximum length of I/O bursts in seconds.",
-                                                   "format_description" : "seconds",
-                                                   "minimum" : 1,
+                                                "queues" : {
+                                                   "description" : "Number of packet queues to be used on the device.",
+                                                   "maximum" : 16,
+                                                   "minimum" : 0,
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
-                                                "iops_rd" : {
-                                                   "description" : "Maximum read I/O in operations per second.",
-                                                   "format_description" : "iops",
+                                                "rate" : {
+                                                   "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
+                                                   "minimum" : 0,
                                                    "optional" : 1,
-                                                   "type" : "integer"
-                                                },
-                                                "iops_rd_length" : {
-                                                   "alias" : "iops_rd_max_length"
+                                                   "type" : "number"
                                                 },
-                                                "iops_rd_max" : {
-                                                   "description" : "Maximum unthrottled read I/O pool in operations per second.",
-                                                   "format_description" : "iops",
-                                                   "optional" : 1,
-                                                   "type" : "integer"
+                                                "rtl8139" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
                                                 },
-                                                "iops_rd_max_length" : {
-                                                   "description" : "Maximum length of read I/O bursts in seconds.",
-                                                   "format_description" : "seconds",
+                                                "tag" : {
+                                                   "description" : "VLAN tag to apply to packets on this interface.",
+                                                   "maximum" : 4094,
                                                    "minimum" : 1,
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
-                                                "iops_wr" : {
-                                                   "description" : "Maximum write I/O in operations per second.",
-                                                   "format_description" : "iops",
+                                                "trunks" : {
+                                                   "description" : "VLAN trunks to pass through this interface.",
+                                                   "format_description" : "vlanid[;vlanid...]",
                                                    "optional" : 1,
-                                                   "type" : "integer"
-                                                },
-                                                "iops_wr_length" : {
-                                                   "alias" : "iops_wr_max_length"
+                                                   "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+                                                   "type" : "string"
                                                 },
-                                                "iops_wr_max" : {
-                                                   "description" : "Maximum unthrottled write I/O pool in operations per second.",
-                                                   "format_description" : "iops",
-                                                   "optional" : 1,
-                                                   "type" : "integer"
+                                                "virtio" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
                                                 },
-                                                "iops_wr_max_length" : {
-                                                   "description" : "Maximum length of write I/O bursts in seconds.",
-                                                   "format_description" : "seconds",
-                                                   "minimum" : 1,
+                                                "vmxnet3" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "numa" : {
+                                             "default" : 0,
+                                             "description" : "Enable/disable NUMA.",
+                                             "optional" : 1,
+                                             "type" : "boolean"
+                                          },
+                                          "numa[n]" : {
+                                             "description" : "NUMA topology.",
+                                             "format" : {
+                                                "cpus" : {
+                                                   "description" : "CPUs accessing this NUMA node.",
+                                                   "format_description" : "id[-id];...",
+                                                   "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+                                                   "type" : "string"
+                                                },
+                                                "hostnodes" : {
+                                                   "description" : "Host NUMA nodes to use.",
+                                                   "format_description" : "id[-id];...",
                                                    "optional" : 1,
-                                                   "type" : "integer"
+                                                   "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+                                                   "type" : "string"
                                                 },
-                                                "iothread" : {
-                                                   "description" : "Whether to use iothreads for this drive",
+                                                "memory" : {
+                                                   "description" : "Amount of memory this NUMA node provides.",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "policy" : {
+                                                   "description" : "NUMA allocation policy.",
+                                                   "enum" : [
+                                                      "preferred",
+                                                      "bind",
+                                                      "interleave"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "onboot" : {
+                                             "default" : 0,
+                                             "description" : "Specifies whether a VM will be started during system bootup.",
+                                             "optional" : 1,
+                                             "type" : "boolean"
+                                          },
+                                          "ostype" : {
+                                             "description" : "Specify guest operating system.",
+                                             "enum" : [
+                                                "other",
+                                                "wxp",
+                                                "w2k",
+                                                "w2k3",
+                                                "w2k8",
+                                                "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/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).",
+                                             "optional" : 1,
+                                             "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
+                                             "type" : "string",
+                                             "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+                                          },
+                                          "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"
+                                          },
+                                          "reboot" : {
+                                             "default" : 1,
+                                             "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
+                                             "optional" : 1,
+                                             "type" : "boolean"
+                                          },
+                                          "sata[n]" : {
+                                             "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
+                                             "format" : {
+                                                "aio" : {
+                                                   "description" : "AIO type to use.",
+                                                   "enum" : [
+                                                      "native",
+                                                      "threads"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "backup" : {
+                                                   "description" : "Whether the drive should be included when making backups.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
-                                                "mbps" : {
-                                                   "description" : "Maximum r/w speed in megabytes per second.",
-                                                   "format_description" : "mbps",
+                                                "bps" : {
+                                                   "description" : "Maximum r/w speed in bytes per second.",
+                                                   "format_description" : "bps",
                                                    "optional" : 1,
-                                                   "type" : "number"
+                                                   "type" : "integer"
                                                 },
-                                                "mbps_max" : {
-                                                   "description" : "Maximum unthrottled r/w pool in megabytes per second.",
-                                                   "format_description" : "mbps",
+                                                "bps_max_length" : {
+                                                   "description" : "Maximum length of I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
                                                    "optional" : 1,
-                                                   "type" : "number"
+                                                   "type" : "integer"
                                                 },
-                                                "mbps_rd" : {
-                                                   "description" : "Maximum read speed in megabytes per second.",
-                                                   "format_description" : "mbps",
+                                                "bps_rd" : {
+                                                   "description" : "Maximum read speed in bytes per second.",
+                                                   "format_description" : "bps",
                                                    "optional" : 1,
-                                                   "type" : "number"
+                                                   "type" : "integer"
                                                 },
-                                                "mbps_rd_max" : {
-                                                   "description" : "Maximum unthrottled read pool in megabytes per second.",
-                                                   "format_description" : "mbps",
+                                                "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" : "number"
+                                                   "type" : "integer"
                                                 },
-                                                "mbps_wr" : {
-                                                   "description" : "Maximum write speed in megabytes per second.",
-                                                   "format_description" : "mbps",
+                                                "bps_wr" : {
+                                                   "description" : "Maximum write speed in bytes per second.",
+                                                   "format_description" : "bps",
                                                    "optional" : 1,
-                                                   "type" : "number"
+                                                   "type" : "integer"
                                                 },
-                                                "mbps_wr_max" : {
-                                                   "description" : "Maximum unthrottled write pool in megabytes per second.",
-                                                   "format_description" : "mbps",
+                                                "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" : "number"
+                                                   "type" : "integer"
                                                 },
-                                                "media" : {
-                                                   "default" : "disk",
-                                                   "description" : "The drive's media type.",
+                                                "cache" : {
+                                                   "description" : "The drive's cache mode",
                                                    "enum" : [
-                                                      "cdrom",
-                                                      "disk"
+                                                      "none",
+                                                      "writethrough",
+                                                      "writeback",
+                                                      "unsafe",
+                                                      "directsync"
                                                    ],
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
-                                                "queues" : {
-                                                   "description" : "Number of queues.",
-                                                   "minimum" : 2,
+                                                "cyls" : {
+                                                   "description" : "Force the drive's physical geometry to have a specific cylinder count.",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
-                                                "replicate" : {
-                                                   "default" : 1,
-                                                   "description" : "Whether the drive should considered for replication jobs.",
+                                                "detect_zeroes" : {
+                                                   "description" : "Controls whether to detect and try to optimize writes of zeroes.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
-                                                "rerror" : {
-                                                   "description" : "Read error action.",
+                                                "discard" : {
+                                                   "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
                                                    "enum" : [
                                                       "ignore",
-                                                      "report",
-                                                      "stop"
+                                                      "on"
                                                    ],
                                                    "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",
+                                                "file" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The drive's backing volume.",
+                                                   "format" : "pve-volume-id-or-qm-path",
+                                                   "format_description" : "volume",
+                                                   "type" : "string"
+                                                },
+                                                "format" : {
+                                                   "description" : "The drive's backing file's data format.",
+                                                   "enum" : [
+                                                      "raw",
+                                                      "cow",
+                                                      "qcow",
+                                                      "qed",
+                                                      "qcow2",
+                                                      "vmdk",
+                                                      "cloop"
+                                                   ],
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "string"
                                                 },
-                                                "secs" : {
-                                                   "description" : "Force the drive's physical geometry to have a specific sector count.",
+                                                "heads" : {
+                                                   "description" : "Force the drive's physical geometry to have a specific head count.",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
-                                                "serial" : {
-                                                   "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
-                                                   "format" : "urlencoded",
-                                                   "format_description" : "serial",
-                                                   "maxLength" : 60,
+                                                "iops" : {
+                                                   "description" : "Maximum r/w I/O in operations per second.",
+                                                   "format_description" : "iops",
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "integer"
                                                 },
-                                                "size" : {
-                                                   "description" : "Disk size. This is purely informational and has no effect.",
-                                                   "format" : "disk-size",
-                                                   "format_description" : "DiskSize",
+                                                "iops_max" : {
+                                                   "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+                                                   "format_description" : "iops",
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "integer"
                                                 },
-                                                "snapshot" : {
-                                                   "description" : "Whether the drive should be included when making snapshots.",
+                                                "iops_max_length" : {
+                                                   "description" : "Maximum length of I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "integer"
                                                 },
-                                                "trans" : {
-                                                   "description" : "Force disk geometry bios translation mode.",
-                                                   "enum" : [
-                                                      "none",
-                                                      "lba",
-                                                      "auto"
-                                                   ],
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
-                                                "volume" : {
-                                                   "alias" : "file"
-                                                },
-                                                "werror" : {
-                                                   "description" : "Write error action.",
-                                                   "enum" : [
-                                                      "enospc",
-                                                      "ignore",
-                                                      "report",
-                                                      "stop"
-                                                   ],
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                }
-                                             },
-                                             "optional" : 1,
-                                             "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
-                                          },
-                                          "scsihw" : {
-                                             "default" : "lsi",
-                                             "description" : "SCSI controller model",
-                                             "enum" : [
-                                                "lsi",
-                                                "lsi53c810",
-                                                "virtio-scsi-pci",
-                                                "virtio-scsi-single",
-                                                "megasas",
-                                                "pvscsi"
-                                             ],
-                                             "optional" : 1,
-                                             "type" : "string"
-                                          },
-                                          "serial[n]" : {
-                                             "description" : "Create a serial device inside the VM (n is 0 to 3)",
-                                             "optional" : 1,
-                                             "pattern" : "(/dev/.+|socket)",
-                                             "type" : "string",
-                                             "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
-                                          },
-                                          "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",
-                                             "maximum" : 50000,
-                                             "minimum" : 0,
-                                             "optional" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (0 - 50000)"
-                                          },
-                                          "skiplock" : {
-                                             "description" : "Ignore locks - only root is allowed to use this option.",
-                                             "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
-                                          },
-                                          "smbios1" : {
-                                             "description" : "Specify SMBIOS type 1 fields.",
-                                             "format" : "pve-qm-smbios1",
-                                             "maxLength" : 256,
-                                             "optional" : 1,
-                                             "type" : "string",
-                                             "typetext" : "[family=<string>] [,manufacturer=<string>] [,product=<string>] [,serial=<string>] [,sku=<string>] [,uuid=<UUID>] [,version=<string>]"
-                                          },
-                                          "smp" : {
-                                             "default" : 1,
-                                             "description" : "The number of CPUs. Please use option -sockets instead.",
-                                             "minimum" : 1,
-                                             "optional" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (1 - N)"
-                                          },
-                                          "sockets" : {
-                                             "default" : 1,
-                                             "description" : "The number of CPU sockets.",
-                                             "minimum" : 1,
-                                             "optional" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (1 - N)"
-                                          },
-                                          "startdate" : {
-                                             "default" : "now",
-                                             "description" : "Set the initial date of the real time clock. Valid format for date are: 'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
-                                             "optional" : 1,
-                                             "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
-                                             "type" : "string",
-                                             "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
-                                          },
-                                          "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.",
-                                             "format" : "pve-startup-order",
-                                             "optional" : 1,
-                                             "type" : "string",
-                                             "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
-                                          },
-                                          "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",
-                                             "typetext" : "<boolean>"
-                                          },
-                                          "template" : {
-                                             "default" : 0,
-                                             "description" : "Enable/disable Template.",
-                                             "optional" : 1,
-                                             "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",
-                                             "typetext" : "<string>"
-                                          },
-                                          "usb[n]" : {
-                                             "description" : "Configure an USB device (n is 0 to 4).",
-                                             "format" : {
-                                                "host" : {
-                                                   "default_key" : 1,
-                                                   "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
-                                                   "format" : "pve-qm-usb-device",
-                                                   "format_description" : "HOSTUSBDEVICE|spice",
-                                                   "type" : "string"
-                                                },
-                                                "usb3" : {
-                                                   "default" : 0,
-                                                   "description" : "Specifies whether if given host option is a USB3 device or port (this does currently not work reliably with spice redirection and is then ignored).",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                }
-                                             },
-                                             "optional" : 1,
-                                             "type" : "string",
-                                             "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
-                                          },
-                                          "vcpus" : {
-                                             "default" : 0,
-                                             "description" : "Number of hotplugged vcpus.",
-                                             "minimum" : 1,
-                                             "optional" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (1 - N)"
-                                          },
-                                          "vga" : {
-                                             "description" : "Select the VGA type.",
-                                             "enum" : [
-                                                "std",
-                                                "cirrus",
-                                                "vmware",
-                                                "qxl",
-                                                "serial0",
-                                                "serial1",
-                                                "serial2",
-                                                "serial3",
-                                                "qxl2",
-                                                "qxl3",
-                                                "qxl4"
-                                             ],
-                                             "optional" : 1,
-                                             "type" : "string",
-                                             "verbose_description" : "Select the VGA type. If you want to use high resolution modes (>= 1280x1024x16) then you should use the options 'std' or 'vmware'. Default is 'std' for win8/win7/w2k8, and 'cirrus' for other OS types. The 'qxl' option enables the SPICE display sever. For win* OS you can select how many independent displays you want, Linux guests can add displays them self. You can also run without any graphic card, using a serial device as terminal."
-                                          },
-                                          "virtio[n]" : {
-                                             "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
-                                             "format" : {
-                                                "aio" : {
-                                                   "description" : "AIO type to use.",
-                                                   "enum" : [
-                                                      "native",
-                                                      "threads"
-                                                   ],
+                                                "iops_rd" : {
+                                                   "description" : "Maximum read I/O in operations per second.",
+                                                   "format_description" : "iops",
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "integer"
                                                 },
-                                                "backup" : {
-                                                   "description" : "Whether the drive should be included when making backups.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
+                                                "iops_rd_length" : {
+                                                   "alias" : "iops_rd_max_length"
                                                 },
-                                                "bps" : {
-                                                   "description" : "Maximum r/w speed in bytes per second.",
-                                                   "format_description" : "bps",
+                                                "iops_rd_max" : {
+                                                   "description" : "Maximum unthrottled read I/O pool in operations per second.",
+                                                   "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
-                                                "bps_max_length" : {
-                                                   "description" : "Maximum length of I/O bursts in seconds.",
+                                                "iops_rd_max_length" : {
+                                                   "description" : "Maximum length of read 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",
+                                                "iops_wr" : {
+                                                   "description" : "Maximum write I/O in operations per second.",
+                                                   "format_description" : "iops",
                                                    "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"
+                                                "iops_wr_length" : {
+                                                   "alias" : "iops_wr_max_length"
                                                 },
-                                                "bps_wr" : {
-                                                   "description" : "Maximum write speed in bytes per second.",
-                                                   "format_description" : "bps",
+                                                "iops_wr_max" : {
+                                                   "description" : "Maximum unthrottled write I/O pool in operations per second.",
+                                                   "format_description" : "iops",
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
-                                                "bps_wr_length" : {
-                                                   "alias" : "bps_wr_max_length"
-                                                },
-                                                "bps_wr_max_length" : {
+                                                "iops_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" : [
-                                                      "none",
-                                                      "writethrough",
-                                                      "writeback",
-                                                      "unsafe",
-                                                      "directsync"
-                                                   ],
+                                                "mbps" : {
+                                                   "description" : "Maximum r/w speed in megabytes per second.",
+                                                   "format_description" : "mbps",
                                                    "optional" : 1,
-                                                   "type" : "string"
+                                                   "type" : "number"
                                                 },
-                                                "cyls" : {
-                                                   "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+                                                "mbps_max" : {
+                                                   "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+                                                   "format_description" : "mbps",
                                                    "optional" : 1,
-                                                   "type" : "integer"
+                                                   "type" : "number"
                                                 },
-                                                "detect_zeroes" : {
-                                                   "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+                                                "mbps_rd" : {
+                                                   "description" : "Maximum read speed in megabytes per second.",
+                                                   "format_description" : "mbps",
                                                    "optional" : 1,
-                                                   "type" : "boolean"
+                                                   "type" : "number"
                                                 },
-                                                "discard" : {
-                                                   "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
-                                                   "enum" : [
-                                                      "ignore",
-                                                      "on"
-                                                   ],
-                                                   "optional" : 1,
-                                                   "type" : "string"
+                                                "mbps_rd_max" : {
+                                                   "description" : "Maximum unthrottled read pool in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_wr" : {
+                                                   "description" : "Maximum write speed in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_wr_max" : {
+                                                   "description" : "Maximum unthrottled write pool in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "media" : {
+                                                   "default" : "disk",
+                                                   "description" : "The drive's media type.",
+                                                   "enum" : [
+                                                      "cdrom",
+                                                      "disk"
+                                                   ],
+                                                   "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" : [
+                                                      "ignore",
+                                                      "report",
+                                                      "stop"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "secs" : {
+                                                   "description" : "Force the drive's physical geometry to have a specific sector count.",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "serial" : {
+                                                   "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+                                                   "format" : "urlencoded",
+                                                   "format_description" : "serial",
+                                                   "maxLength" : 60,
+                                                   "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",
+                                                   "format_description" : "DiskSize",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "snapshot" : {
+                                                   "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"
+                                                },
+                                                "ssd" : {
+                                                   "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "trans" : {
+                                                   "description" : "Force disk geometry bios translation mode.",
+                                                   "enum" : [
+                                                      "none",
+                                                      "lba",
+                                                      "auto"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "volume" : {
+                                                   "alias" : "file"
+                                                },
+                                                "werror" : {
+                                                   "description" : "Write error action.",
+                                                   "enum" : [
+                                                      "enospc",
+                                                      "ignore",
+                                                      "report",
+                                                      "stop"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "scsi[n]" : {
+                                             "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
+                                             "format" : {
+                                                "aio" : {
+                                                   "description" : "AIO type to use.",
+                                                   "enum" : [
+                                                      "native",
+                                                      "threads"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "backup" : {
+                                                   "description" : "Whether the drive should be included when making backups.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "bps" : {
+                                                   "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_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_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" : [
+                                                      "none",
+                                                      "writethrough",
+                                                      "writeback",
+                                                      "unsafe",
+                                                      "directsync"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "cyls" : {
+                                                   "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "detect_zeroes" : {
+                                                   "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "discard" : {
+                                                   "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+                                                   "enum" : [
+                                                      "ignore",
+                                                      "on"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
                                                 },
                                                 "file" : {
                                                    "default_key" : 1,
@@ -7603,6 +9435,12 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "queues" : {
+                                                   "description" : "Number of queues.",
+                                                   "minimum" : 2,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "replicate" : {
                                                    "default" : 1,
                                                    "description" : "Whether the drive should considered for replication jobs.",
@@ -7619,6 +9457,12 @@ var pveapi = [
                                                    "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,
@@ -7632,6 +9476,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",
@@ -7640,7 +9491,12 @@ 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"
+                                                },
+                                                "ssd" : {
+                                                   "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
@@ -7670,263 +9526,174 @@ var pveapi = [
                                                 }
                                              },
                                              "optional" : 1,
-                                             "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+                                             "type" : "string"
                                           },
-                                          "vmid" : {
-                                             "description" : "The (unique) ID of the VM.",
-                                             "format" : "pve-vmid",
-                                             "minimum" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (1 - N)"
+                                          "scsihw" : {
+                                             "default" : "lsi",
+                                             "description" : "SCSI controller model",
+                                             "enum" : [
+                                                "lsi",
+                                                "lsi53c810",
+                                                "virtio-scsi-pci",
+                                                "virtio-scsi-single",
+                                                "megasas",
+                                                "pvscsi"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
                                           },
-                                          "watchdog" : {
-                                             "description" : "Create a virtual hardware watchdog device.",
-                                             "format" : "pve-qm-watchdog",
+                                          "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"
+                                          },
+                                          "serial[n]" : {
+                                             "description" : "Create a serial device inside the VM (n is 0 to 3)",
                                              "optional" : 1,
+                                             "pattern" : "(/dev/.+|socket)",
                                              "type" : "string",
-                                             "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)"
-                                          }
-                                       }
-                                    },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/vms/{vmid}",
-                                          [
-                                             "VM.Config.Disk",
-                                             "VM.Config.CDROM",
-                                             "VM.Config.CPU",
-                                             "VM.Config.Memory",
-                                             "VM.Config.Network",
-                                             "VM.Config.HWType",
-                                             "VM.Config.Options"
-                                          ],
-                                          "any",
-                                          1
-                                       ]
-                                    },
-                                    "protected" : 1,
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "optional" : 1,
-                                       "type" : "string"
-                                    }
-                                 },
-                                 "PUT" : {
-                                    "description" : "Set virtual machine options (synchrounous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.",
-                                    "method" : "PUT",
-                                    "name" : "update_vm",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "acpi" : {
-                                             "default" : 1,
-                                             "description" : "Enable/disable ACPI.",
-                                             "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
-                                          },
-                                          "agent" : {
-                                             "default" : 0,
-                                             "description" : "Enable/disable Qemu GuestAgent.",
-                                             "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
+                                             "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
                                           },
-                                          "args" : {
-                                             "description" : "Arbitrary arguments passed to kvm.",
+                                          "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. Auto-ballooning is done by pvestatd.",
+                                             "maximum" : 50000,
+                                             "minimum" : 0,
                                              "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"
+                                             "type" : "integer"
                                           },
-                                          "autostart" : {
-                                             "default" : 0,
-                                             "description" : "Automatic restart after crash (currently ignored).",
+                                          "smbios1" : {
+                                             "description" : "Specify SMBIOS type 1 fields.",
+                                             "format" : "pve-qm-smbios1",
+                                             "maxLength" : 256,
                                              "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
+                                             "type" : "string"
                                           },
-                                          "balloon" : {
-                                             "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
-                                             "minimum" : 0,
+                                          "smp" : {
+                                             "default" : 1,
+                                             "description" : "The number of CPUs. Please use option -sockets instead.",
+                                             "minimum" : 1,
                                              "optional" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (0 - N)"
+                                             "type" : "integer"
                                           },
-                                          "bios" : {
-                                             "default" : "seabios",
-                                             "description" : "Select BIOS implementation.",
-                                             "enum" : [
-                                                "seabios",
-                                                "ovmf"
-                                             ],
+                                          "sockets" : {
+                                             "default" : 1,
+                                             "description" : "The number of CPU sockets.",
+                                             "minimum" : 1,
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "integer"
                                           },
-                                          "boot" : {
-                                             "default" : "cdn",
-                                             "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
+                                          "sshkeys" : {
+                                             "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
+                                             "format" : "urlencoded",
                                              "optional" : 1,
-                                             "pattern" : "[acdn]{1,4}",
                                              "type" : "string"
                                           },
-                                          "bootdisk" : {
-                                             "description" : "Enable booting from specified disk.",
-                                             "format" : "pve-qm-bootdisk",
+                                          "startdate" : {
+                                             "default" : "now",
+                                             "description" : "Set the initial date of the real time clock. Valid format for date are: 'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
                                              "optional" : 1,
-                                             "pattern" : "(ide|sata|scsi|virtio)\\d+",
-                                             "type" : "string"
+                                             "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
+                                             "type" : "string",
+                                             "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
                                           },
-                                          "cdrom" : {
-                                             "description" : "This is an alias for option -ide2",
-                                             "format" : "pve-qm-ide",
+                                          "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.",
+                                             "format" : "pve-startup-order",
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "<volume>"
+                                             "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
                                           },
-                                          "cores" : {
+                                          "tablet" : {
                                              "default" : 1,
-                                             "description" : "The number of cores per socket.",
-                                             "minimum" : 1,
+                                             "description" : "Enable/disable the USB tablet device.",
                                              "optional" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (1 - N)"
+                                             "type" : "boolean",
+                                             "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (-vga=qxl)."
                                           },
-                                          "cpu" : {
-                                             "description" : "Emulated CPU type.",
+                                          "tdf" : {
+                                             "default" : 0,
+                                             "description" : "Enable/disable time drift fix.",
+                                             "optional" : 1,
+                                             "type" : "boolean"
+                                          },
+                                          "template" : {
+                                             "default" : 0,
+                                             "description" : "Enable/disable Template.",
+                                             "optional" : 1,
+                                             "type" : "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"
+                                          },
+                                          "usb[n]" : {
+                                             "description" : "Configure an USB device (n is 0 to 4).",
                                              "format" : {
-                                                "cputype" : {
-                                                   "default" : "kvm64",
+                                                "host" : {
                                                    "default_key" : 1,
-                                                   "description" : "Emulated CPU type.",
-                                                   "enum" : [
-                                                      "486",
-                                                      "athlon",
-                                                      "Broadwell",
-                                                      "Broadwell-noTSX",
-                                                      "Conroe",
-                                                      "core2duo",
-                                                      "coreduo",
-                                                      "Haswell",
-                                                      "Haswell-noTSX",
-                                                      "host",
-                                                      "IvyBridge",
-                                                      "kvm32",
-                                                      "kvm64",
-                                                      "Nehalem",
-                                                      "Opteron_G1",
-                                                      "Opteron_G2",
-                                                      "Opteron_G3",
-                                                      "Opteron_G4",
-                                                      "Opteron_G5",
-                                                      "Penryn",
-                                                      "pentium",
-                                                      "pentium2",
-                                                      "pentium3",
-                                                      "phenom",
-                                                      "qemu32",
-                                                      "qemu64",
-                                                      "SandyBridge",
-                                                      "Skylake-Client",
-                                                      "Westmere"
-                                                   ],
+                                                   "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
+                                                   "format" : "pve-qm-usb-device",
+                                                   "format_description" : "HOSTUSBDEVICE|spice",
                                                    "type" : "string"
                                                 },
-                                                "hidden" : {
+                                                "usb3" : {
                                                    "default" : 0,
-                                                   "description" : "Do not identify as a KVM virtual machine.",
+                                                   "description" : "Specifies whether if given host option is a USB3 device or port (this does currently not work reliably with spice redirection and is then ignored).",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 }
                                              },
                                              "optional" : 1,
-                                             "type" : "string",
-                                             "typetext" : "[cputype=]<enum> [,hidden=<1|0>]"
+                                             "type" : "string"
                                           },
-                                          "cpulimit" : {
+                                          "vcpus" : {
                                              "default" : 0,
-                                             "description" : "Limit of CPU usage.",
-                                             "maximum" : 128,
-                                             "minimum" : 0,
-                                             "optional" : 1,
-                                             "type" : "number",
-                                             "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" : 1024,
-                                             "description" : "CPU weight for a VM.",
-                                             "maximum" : 500000,
-                                             "minimum" : 0,
-                                             "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."
-                                          },
-                                          "delete" : {
-                                             "description" : "A list of settings you want to delete.",
-                                             "format" : "pve-configid-list",
-                                             "optional" : 1,
-                                             "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",
-                                             "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>"
-                                          },
-                                          "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",
-                                             "typetext" : "<boolean>"
-                                          },
-                                          "freeze" : {
-                                             "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
+                                             "description" : "Number of hotplugged vcpus.",
+                                             "minimum" : 1,
                                              "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
+                                             "type" : "integer"
                                           },
-                                          "hostpci[n]" : {
-                                             "description" : "Map host PCI devices into guest.",
-                                             "format" : "pve-qm-hostpci",
+                                          "vga" : {
+                                             "description" : "Configure the VGA hardware.",
+                                             "format" : {
+                                                "memory" : {
+                                                   "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
+                                                   "maximum" : 512,
+                                                   "minimum" : 4,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "type" : {
+                                                   "default" : "std",
+                                                   "default_key" : 1,
+                                                   "description" : "Select the VGA type.",
+                                                   "enum" : [
+                                                      "cirrus",
+                                                      "qxl",
+                                                      "qxl2",
+                                                      "qxl3",
+                                                      "qxl4",
+                                                      "serial0",
+                                                      "serial1",
+                                                      "serial2",
+                                                      "serial3",
+                                                      "std",
+                                                      "virtio",
+                                                      "vmware"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                }
+                                             },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "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"
+                                             "verbose_description" : "Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is 'std' for all OS types besides some Windows versions (XP and older) which use 'cirrus'. The 'qxl' option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays them self.\nYou can also run without any graphic card, using a serial device as terminal."
                                           },
-                                          "hotplug" : {
-                                             "default" : "network,disk,usb",
-                                             "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Value '1' is an alias for the default 'network,disk,usb'.",
-                                             "format" : "pve-hotplug-features",
-                                             "optional" : 1,
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "hugepages" : {
-                                             "description" : "Enable/disable hugepages memory.",
-                                             "enum" : [
-                                                "any",
-                                                "2",
-                                                "1024"
-                                             ],
-                                             "optional" : 1,
-                                             "type" : "string"
-                                          },
-                                          "ide[n]" : {
-                                             "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
+                                          "virtio[n]" : {
+                                             "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
                                              "format" : {
                                                 "aio" : {
                                                    "description" : "AIO type to use.",
@@ -8107,6 +9874,11 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
+                                                "iothread" : {
+                                                   "description" : "Whether to use iothreads for this drive",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
                                                 "mbps" : {
                                                    "description" : "Maximum r/w speed in megabytes per second.",
                                                    "format_description" : "mbps",
@@ -8153,14 +9925,6 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
-                                                "model" : {
-                                                   "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
-                                                   "format" : "urlencoded",
-                                                   "format_description" : "model",
-                                                   "maxLength" : 120,
-                                                   "optional" : 1,
-                                                   "type" : "string"
-                                                },
                                                 "replicate" : {
                                                    "default" : 1,
                                                    "description" : "Whether the drive should considered for replication jobs.",
@@ -8190,6 +9954,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",
@@ -8198,7 +9969,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"
                                                 },
@@ -8228,340 +9999,358 @@ var pveapi = [
                                                 }
                                              },
                                              "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "vmgenid" : {
+                                             "default" : "1 (autogenerated)",
+                                             "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
+                                             "format_description" : "UUID",
+                                             "optional" : 1,
+                                             "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+                                             "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done throug API/CLI create or update methods, but not when manually editing the config file."
                                           },
-                                          "keyboard" : {
-                                             "default" : "en-us",
-                                             "description" : "Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.conf' configuration file.",
-                                             "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"
-                                             ],
+                                          "vmstatestorage" : {
+                                             "description" : "Default storage for VM state volumes/files.",
+                                             "format" : "pve-storage-id",
                                              "optional" : 1,
                                              "type" : "string"
                                           },
-                                          "kvm" : {
+                                          "watchdog" : {
+                                             "description" : "Create a virtual hardware watchdog device.",
+                                             "format" : "pve-qm-watchdog",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "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)"
+                                          }
+                                       },
+                                       "type" : "object"
+                                    }
+                                 },
+                                 "POST" : {
+                                    "description" : "Set virtual machine options (asynchrounous API).",
+                                    "method" : "POST",
+                                    "name" : "update_vm_async",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "acpi" : {
                                              "default" : 1,
-                                             "description" : "Enable/disable KVM hardware virtualization.",
+                                             "description" : "Enable/disable ACPI.",
                                              "optional" : 1,
                                              "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.",
+                                          "agent" : {
+                                             "description" : "Enable/disable Qemu GuestAgent and its properties.",
+                                             "format" : {
+                                                "enabled" : {
+                                                   "default" : 0,
+                                                   "default_key" : 1,
+                                                   "description" : "Enable/disable Qemu GuestAgent.",
+                                                   "type" : "boolean"
+                                                },
+                                                "fstrim_cloned_disks" : {
+                                                   "default" : 0,
+                                                   "description" : "Run fstrim after cloning/moving a disk.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                }
+                                             },
                                              "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
+                                             "type" : "string",
+                                             "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>]"
                                           },
-                                          "lock" : {
-                                             "description" : "Lock/unlock the VM.",
+                                          "arch" : {
+                                             "description" : "Virtual processor architecture. Defaults to the host.",
                                              "enum" : [
-                                                "migrate",
-                                                "backup",
-                                                "snapshot",
-                                                "rollback"
+                                                "x86_64",
+                                                "aarch64"
                                              ],
                                              "optional" : 1,
                                              "type" : "string"
                                           },
-                                          "machine" : {
-                                             "description" : "Specific the Qemu machine type.",
-                                             "maxLength" : 40,
+                                          "args" : {
+                                             "description" : "Arbitrary arguments passed to kvm.",
                                              "optional" : 1,
-                                             "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)",
-                                             "type" : "string"
+                                             "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"
                                           },
-                                          "memory" : {
-                                             "default" : 512,
-                                             "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
-                                             "minimum" : 16,
+                                          "autostart" : {
+                                             "default" : 0,
+                                             "description" : "Automatic restart after crash (currently ignored).",
                                              "optional" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (16 - N)"
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
-                                          "migrate_downtime" : {
-                                             "default" : 0.1,
-                                             "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
-                                             "minimum" : 0,
+                                          "background_delay" : {
+                                             "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
+                                             "maximum" : 30,
+                                             "minimum" : 1,
                                              "optional" : 1,
-                                             "type" : "number",
-                                             "typetext" : "<number> (0 - N)"
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - 30)"
                                           },
-                                          "migrate_speed" : {
-                                             "default" : 0,
-                                             "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
+                                          "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)"
                                           },
-                                          "name" : {
-                                             "description" : "Set a name for the VM. Only used on the configuration web interface.",
-                                             "format" : "dns-name",
+                                          "bios" : {
+                                             "default" : "seabios",
+                                             "description" : "Select BIOS implementation.",
+                                             "enum" : [
+                                                "seabios",
+                                                "ovmf"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "boot" : {
+                                             "default" : "cdn",
+                                             "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
+                                             "optional" : 1,
+                                             "pattern" : "[acdn]{1,4}",
+                                             "type" : "string"
+                                          },
+                                          "bootdisk" : {
+                                             "description" : "Enable booting from specified disk.",
+                                             "format" : "pve-qm-bootdisk",
+                                             "optional" : 1,
+                                             "pattern" : "(ide|sata|scsi|virtio)\\d+",
+                                             "type" : "string"
+                                          },
+                                          "cdrom" : {
+                                             "description" : "This is an alias for option -ide2",
+                                             "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>"
                                           },
-                                          "net[n]" : {
-                                             "description" : "Specify network devices.",
+                                          "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" : "<string>"
+                                          },
+                                          "cores" : {
+                                             "default" : 1,
+                                             "description" : "The number of cores per socket.",
+                                             "minimum" : 1,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          },
+                                          "cpu" : {
+                                             "description" : "Emulated CPU type.",
                                              "format" : {
-                                                "bridge" : {
-                                                   "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2   Gateway\n 10.0.2.3   DNS Server\n 10.0.2.4   SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n",
-                                                   "format_description" : "bridge",
-                                                   "optional" : 1,
+                                                "cputype" : {
+                                                   "default" : "kvm64",
+                                                   "default_key" : 1,
+                                                   "description" : "Emulated CPU type.",
+                                                   "enum" : [
+                                                      "486",
+                                                      "athlon",
+                                                      "Broadwell",
+                                                      "Broadwell-IBRS",
+                                                      "Broadwell-noTSX",
+                                                      "Broadwell-noTSX-IBRS",
+                                                      "Conroe",
+                                                      "core2duo",
+                                                      "coreduo",
+                                                      "EPYC",
+                                                      "EPYC-IBPB",
+                                                      "Haswell",
+                                                      "Haswell-IBRS",
+                                                      "Haswell-noTSX",
+                                                      "Haswell-noTSX-IBRS",
+                                                      "host",
+                                                      "IvyBridge",
+                                                      "IvyBridge-IBRS",
+                                                      "kvm32",
+                                                      "kvm64",
+                                                      "max",
+                                                      "Nehalem",
+                                                      "Nehalem-IBRS",
+                                                      "Opteron_G1",
+                                                      "Opteron_G2",
+                                                      "Opteron_G3",
+                                                      "Opteron_G4",
+                                                      "Opteron_G5",
+                                                      "Penryn",
+                                                      "pentium",
+                                                      "pentium2",
+                                                      "pentium3",
+                                                      "phenom",
+                                                      "qemu32",
+                                                      "qemu64",
+                                                      "SandyBridge",
+                                                      "SandyBridge-IBRS",
+                                                      "Skylake-Client",
+                                                      "Skylake-Client-IBRS",
+                                                      "Skylake-Server",
+                                                      "Skylake-Server-IBRS",
+                                                      "Westmere",
+                                                      "Westmere-IBRS"
+                                                   ],
                                                    "type" : "string"
                                                 },
-                                                "e1000" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "e1000-82540em" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "e1000-82544gc" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
+                                                "flags" : {
+                                                   "description" : "List of additional CPU flags separated by ';'. Use '+FLAG' to enable, '-FLAG' to disable a flag. Currently supported flags: 'pcid', 'spec-ctrl', 'ibpb', 'ssbd', 'virt-ssbd', 'amd-ssbd', 'amd-no-ssb', 'pdpe1gb'.",
+                                                   "format_description" : "+FLAG[;-FLAG...]",
+                                                   "optional" : 1,
+                                                   "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb))(;(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb)))*)",
+                                                   "type" : "string"
                                                 },
-                                                "e1000-82545em" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "firewall" : {
-                                                   "description" : "Whether this interface should be protected by the firewall.",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                },
-                                                "i82551" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "i82557b" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "i82559er" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "link_down" : {
-                                                   "description" : "Whether this interface should be disconnected (like pulling the plug).",
+                                                "hidden" : {
+                                                   "default" : 0,
+                                                   "description" : "Do not identify as a KVM virtual machine.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
-                                                },
-                                                "macaddr" : {
-                                                   "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
-                                                   "format_description" : "XX:XX:XX:XX:XX:XX",
-                                                   "optional" : 1,
-                                                   "pattern" : "(?^i:[0-9a-f]{2}(?::[0-9a-f]{2}){5})",
-                                                   "type" : "string"
-                                                },
-                                                "model" : {
-                                                   "default_key" : 1,
-                                                   "description" : "Network Card Model. The 'virtio' model provides the best performance with very low CPU overhead. If your guest does not support this driver, it is usually best to use 'e1000'.",
-                                                   "enum" : [
-                                                      "rtl8139",
-                                                      "ne2k_pci",
-                                                      "e1000",
-                                                      "pcnet",
-                                                      "virtio",
-                                                      "ne2k_isa",
-                                                      "i82551",
-                                                      "i82557b",
-                                                      "i82559er",
-                                                      "vmxnet3",
-                                                      "e1000-82540em",
-                                                      "e1000-82544gc",
-                                                      "e1000-82545em"
-                                                   ],
-                                                   "type" : "string"
-                                                },
-                                                "ne2k_isa" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "ne2k_pci" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "pcnet" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "queues" : {
-                                                   "description" : "Number of packet queues to be used on the device.",
-                                                   "maximum" : 16,
-                                                   "minimum" : 0,
-                                                   "optional" : 1,
-                                                   "type" : "integer"
-                                                },
-                                                "rate" : {
-                                                   "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
-                                                   "minimum" : 0,
-                                                   "optional" : 1,
-                                                   "type" : "number"
-                                                },
-                                                "rtl8139" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "tag" : {
-                                                   "description" : "VLAN tag to apply to packets on this interface.",
-                                                   "maximum" : 4094,
-                                                   "minimum" : 1,
-                                                   "optional" : 1,
-                                                   "type" : "integer"
-                                                },
-                                                "trunks" : {
-                                                   "description" : "VLAN trunks to pass through this interface.",
-                                                   "format_description" : "vlanid[;vlanid...]",
-                                                   "optional" : 1,
-                                                   "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
-                                                   "type" : "string"
-                                                },
-                                                "virtio" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
-                                                },
-                                                "vmxnet3" : {
-                                                   "alias" : "macaddr",
-                                                   "keyAlias" : "model"
                                                 }
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
+                                             "typetext" : "[cputype=]<enum> [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>]"
                                           },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
+                                          "cpulimit" : {
+                                             "default" : 0,
+                                             "description" : "Limit of CPU usage.",
+                                             "maximum" : 128,
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "number",
+                                             "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" : 1024,
+                                             "description" : "CPU weight for a VM.",
+                                             "maximum" : 262144,
+                                             "minimum" : 2,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "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",
                                              "typetext" : "<string>"
                                           },
-                                          "numa" : {
-                                             "default" : 0,
-                                             "description" : "Enable/disable NUMA.",
+                                          "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" : "boolean",
-                                             "typetext" : "<boolean>"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
-                                          "numa[n]" : {
-                                             "description" : "NUMA topology.",
+                                          "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>"
+                                          },
+                                          "efidisk0" : {
+                                             "description" : "Configure a Disk for storing EFI vars",
                                              "format" : {
-                                                "cpus" : {
-                                                   "description" : "CPUs accessing this NUMA node.",
-                                                   "format_description" : "id[-id];...",
-                                                   "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+                                                "file" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The drive's backing volume.",
+                                                   "format" : "pve-volume-id-or-qm-path",
+                                                   "format_description" : "volume",
                                                    "type" : "string"
                                                 },
-                                                "hostnodes" : {
-                                                   "description" : "Host NUMA nodes to use.",
-                                                   "format_description" : "id[-id];...",
+                                                "format" : {
+                                                   "description" : "The drive's backing file's data format.",
+                                                   "enum" : [
+                                                      "raw",
+                                                      "cow",
+                                                      "qcow",
+                                                      "qed",
+                                                      "qcow2",
+                                                      "vmdk",
+                                                      "cloop"
+                                                   ],
                                                    "optional" : 1,
-                                                   "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
                                                    "type" : "string"
                                                 },
-                                                "memory" : {
-                                                   "description" : "Amount of memory this NUMA node provides.",
-                                                   "optional" : 1,
-                                                   "type" : "number"
-                                                },
-                                                "policy" : {
-                                                   "description" : "NUMA allocation policy.",
-                                                   "enum" : [
-                                                      "preferred",
-                                                      "bind",
-                                                      "interleave"
-                                                   ],
+                                                "size" : {
+                                                   "description" : "Disk size. This is purely informational and has no effect.",
+                                                   "format" : "disk-size",
+                                                   "format_description" : "DiskSize",
                                                    "optional" : 1,
                                                    "type" : "string"
+                                                },
+                                                "volume" : {
+                                                   "alias" : "file"
                                                 }
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
+                                             "typetext" : "[file=]<volume> [,format=<enum>] [,size=<DiskSize>]"
                                           },
-                                          "onboot" : {
-                                             "default" : 0,
-                                             "description" : "Specifies whether a VM will be started during system bootup.",
+                                          "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",
                                              "typetext" : "<boolean>"
                                           },
-                                          "ostype" : {
-                                             "description" : "Specify guest operating system.",
-                                             "enum" : [
-                                                "other",
-                                                "wxp",
-                                                "w2k",
-                                                "w2k3",
-                                                "w2k8",
-                                                "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"
-                                          },
-                                          "parallel[n]" : {
-                                             "description" : "Map host parallel devices (n is 0 to 2).",
-                                             "optional" : 1,
-                                             "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
-                                             "type" : "string",
-                                             "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
-                                          },
-                                          "protection" : {
-                                             "default" : 0,
-                                             "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
+                                          "freeze" : {
+                                             "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
                                              "optional" : 1,
                                              "type" : "boolean",
                                              "typetext" : "<boolean>"
                                           },
-                                          "reboot" : {
-                                             "default" : 1,
-                                             "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
+                                          "hostpci[n]" : {
+                                             "description" : "Map host PCI devices into guest.",
+                                             "format" : "pve-qm-hostpci",
                                              "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
+                                             "type" : "string",
+                                             "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,mdev=<string>] [,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"
                                           },
-                                          "revert" : {
-                                             "description" : "Revert a pending change.",
-                                             "format" : "pve-configid-list",
+                                          "hotplug" : {
+                                             "default" : "network,disk,usb",
+                                             "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Value '1' is an alias for the default 'network,disk,usb'.",
+                                             "format" : "pve-hotplug-features",
                                              "optional" : 1,
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           },
-                                          "sata[n]" : {
-                                             "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
+                                          "hugepages" : {
+                                             "description" : "Enable/disable hugepages memory.",
+                                             "enum" : [
+                                                "any",
+                                                "2",
+                                                "1024"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "ide[n]" : {
+                                             "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
                                              "format" : {
                                                 "aio" : {
                                                    "description" : "AIO type to use.",
@@ -8788,6 +10577,14 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "model" : {
+                                                   "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
+                                                   "format" : "urlencoded",
+                                                   "format_description" : "model",
+                                                   "maxLength" : 120,
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
                                                 "replicate" : {
                                                    "default" : 1,
                                                    "description" : "Whether the drive should considered for replication jobs.",
@@ -8817,6 +10614,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",
@@ -8825,7 +10629,12 @@ 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"
+                                                },
+                                                "ssd" : {
+                                                   "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
@@ -8856,83 +10665,426 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
                                           },
-                                          "scsi[n]" : {
-                                             "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
+                                          "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" : 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",
+                                                "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"
+                                          },
+                                          "kvm" : {
+                                             "default" : 1,
+                                             "description" : "Enable/disable KVM hardware virtualization.",
+                                             "optional" : 1,
+                                             "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",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "lock" : {
+                                             "description" : "Lock/unlock the VM.",
+                                             "enum" : [
+                                                "migrate",
+                                                "backup",
+                                                "snapshot",
+                                                "rollback"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "machine" : {
+                                             "description" : "Specifies the Qemu machine type.",
+                                             "maxLength" : 40,
+                                             "optional" : 1,
+                                             "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?|virt(?:-\\d+\\.\\d+)?)",
+                                             "type" : "string"
+                                          },
+                                          "memory" : {
+                                             "default" : 512,
+                                             "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
+                                             "minimum" : 16,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (16 - N)"
+                                          },
+                                          "migrate_downtime" : {
+                                             "default" : 0.1,
+                                             "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "number",
+                                             "typetext" : "<number> (0 - N)"
+                                          },
+                                          "migrate_speed" : {
+                                             "default" : 0,
+                                             "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "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",
+                                             "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.",
                                              "format" : {
-                                                "aio" : {
-                                                   "description" : "AIO type to use.",
-                                                   "enum" : [
-                                                      "native",
-                                                      "threads"
-                                                   ],
+                                                "bridge" : {
+                                                   "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2   Gateway\n 10.0.2.3   DNS Server\n 10.0.2.4   SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n",
+                                                   "format_description" : "bridge",
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
-                                                "backup" : {
-                                                   "description" : "Whether the drive should be included when making backups.",
+                                                "e1000" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "e1000-82540em" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "e1000-82544gc" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "e1000-82545em" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "firewall" : {
+                                                   "description" : "Whether this interface should be protected by the firewall.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
-                                                "bps" : {
-                                                   "description" : "Maximum r/w speed in bytes per second.",
-                                                   "format_description" : "bps",
-                                                   "optional" : 1,
-                                                   "type" : "integer"
+                                                "i82551" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
                                                 },
-                                                "bps_max_length" : {
-                                                   "description" : "Maximum length of I/O bursts in seconds.",
-                                                   "format_description" : "seconds",
-                                                   "minimum" : 1,
+                                                "i82557b" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "i82559er" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "link_down" : {
+                                                   "description" : "Whether this interface should be disconnected (like pulling the plug).",
                                                    "optional" : 1,
-                                                   "type" : "integer"
+                                                   "type" : "boolean"
                                                 },
-                                                "bps_rd" : {
-                                                   "description" : "Maximum read speed in bytes per second.",
-                                                   "format_description" : "bps",
+                                                "macaddr" : {
+                                                   "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
+                                                   "format_description" : "XX:XX:XX:XX:XX:XX",
                                                    "optional" : 1,
-                                                   "type" : "integer"
+                                                   "pattern" : "(?^i:[0-9a-f]{2}(?::[0-9a-f]{2}){5})",
+                                                   "type" : "string"
                                                 },
-                                                "bps_rd_length" : {
-                                                   "alias" : "bps_rd_max_length"
+                                                "model" : {
+                                                   "default_key" : 1,
+                                                   "description" : "Network Card Model. The 'virtio' model provides the best performance with very low CPU overhead. If your guest does not support this driver, it is usually best to use 'e1000'.",
+                                                   "enum" : [
+                                                      "rtl8139",
+                                                      "ne2k_pci",
+                                                      "e1000",
+                                                      "pcnet",
+                                                      "virtio",
+                                                      "ne2k_isa",
+                                                      "i82551",
+                                                      "i82557b",
+                                                      "i82559er",
+                                                      "vmxnet3",
+                                                      "e1000-82540em",
+                                                      "e1000-82544gc",
+                                                      "e1000-82545em"
+                                                   ],
+                                                   "type" : "string"
                                                 },
-                                                "bps_rd_max_length" : {
-                                                   "description" : "Maximum length of read I/O bursts in seconds.",
-                                                   "format_description" : "seconds",
-                                                   "minimum" : 1,
+                                                "ne2k_isa" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "ne2k_pci" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "pcnet" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "queues" : {
+                                                   "description" : "Number of packet queues to be used on the device.",
+                                                   "maximum" : 16,
+                                                   "minimum" : 0,
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
-                                                "bps_wr" : {
-                                                   "description" : "Maximum write speed in bytes per second.",
-                                                   "format_description" : "bps",
+                                                "rate" : {
+                                                   "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
+                                                   "minimum" : 0,
                                                    "optional" : 1,
-                                                   "type" : "integer"
+                                                   "type" : "number"
                                                 },
-                                                "bps_wr_length" : {
-                                                   "alias" : "bps_wr_max_length"
+                                                "rtl8139" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
                                                 },
-                                                "bps_wr_max_length" : {
-                                                   "description" : "Maximum length of write I/O bursts in seconds.",
-                                                   "format_description" : "seconds",
+                                                "tag" : {
+                                                   "description" : "VLAN tag to apply to packets on this interface.",
+                                                   "maximum" : 4094,
                                                    "minimum" : 1,
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
-                                                "cache" : {
-                                                   "description" : "The drive's cache mode",
-                                                   "enum" : [
-                                                      "none",
-                                                      "writethrough",
-                                                      "writeback",
-                                                      "unsafe",
-                                                      "directsync"
-                                                   ],
+                                                "trunks" : {
+                                                   "description" : "VLAN trunks to pass through this interface.",
+                                                   "format_description" : "vlanid[;vlanid...]",
                                                    "optional" : 1,
+                                                   "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
                                                    "type" : "string"
                                                 },
-                                                "cyls" : {
+                                                "virtio" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "vmxnet3" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "numa" : {
+                                             "default" : 0,
+                                             "description" : "Enable/disable NUMA.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "numa[n]" : {
+                                             "description" : "NUMA topology.",
+                                             "format" : {
+                                                "cpus" : {
+                                                   "description" : "CPUs accessing this NUMA node.",
+                                                   "format_description" : "id[-id];...",
+                                                   "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+                                                   "type" : "string"
+                                                },
+                                                "hostnodes" : {
+                                                   "description" : "Host NUMA nodes to use.",
+                                                   "format_description" : "id[-id];...",
+                                                   "optional" : 1,
+                                                   "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+                                                   "type" : "string"
+                                                },
+                                                "memory" : {
+                                                   "description" : "Amount of memory this NUMA node provides.",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "policy" : {
+                                                   "description" : "NUMA allocation policy.",
+                                                   "enum" : [
+                                                      "preferred",
+                                                      "bind",
+                                                      "interleave"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
+                                          },
+                                          "onboot" : {
+                                             "default" : 0,
+                                             "description" : "Specifies whether a VM will be started during system bootup.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "ostype" : {
+                                             "description" : "Specify guest operating system.",
+                                             "enum" : [
+                                                "other",
+                                                "wxp",
+                                                "w2k",
+                                                "w2k3",
+                                                "w2k8",
+                                                "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/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).",
+                                             "optional" : 1,
+                                             "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
+                                             "type" : "string",
+                                             "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+                                          },
+                                          "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",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "reboot" : {
+                                             "default" : 1,
+                                             "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "revert" : {
+                                             "description" : "Revert a pending change.",
+                                             "format" : "pve-configid-list",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "sata[n]" : {
+                                             "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
+                                             "format" : {
+                                                "aio" : {
+                                                   "description" : "AIO type to use.",
+                                                   "enum" : [
+                                                      "native",
+                                                      "threads"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "backup" : {
+                                                   "description" : "Whether the drive should be included when making backups.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "bps" : {
+                                                   "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_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_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" : [
+                                                      "none",
+                                                      "writethrough",
+                                                      "writeback",
+                                                      "unsafe",
+                                                      "directsync"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "cyls" : {
                                                    "description" : "Force the drive's physical geometry to have a specific cylinder count.",
                                                    "optional" : 1,
                                                    "type" : "integer"
@@ -9040,11 +11192,6 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "integer"
                                                 },
-                                                "iothread" : {
-                                                   "description" : "Whether to use iothreads for this drive",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                },
                                                 "mbps" : {
                                                    "description" : "Maximum r/w speed in megabytes per second.",
                                                    "format_description" : "mbps",
@@ -9091,12 +11238,6 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
-                                                "queues" : {
-                                                   "description" : "Number of queues.",
-                                                   "minimum" : 2,
-                                                   "optional" : 1,
-                                                   "type" : "integer"
-                                                },
                                                 "replicate" : {
                                                    "default" : 1,
                                                    "description" : "Whether the drive should considered for replication jobs.",
@@ -9113,12 +11254,6 @@ var pveapi = [
                                                    "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,
@@ -9132,6 +11267,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",
@@ -9140,7 +11282,12 @@ 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"
+                                                },
+                                                "ssd" : {
+                                                   "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
@@ -9171,162 +11318,10 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,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>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
-                                          },
-                                          "scsihw" : {
-                                             "default" : "lsi",
-                                             "description" : "SCSI controller model",
-                                             "enum" : [
-                                                "lsi",
-                                                "lsi53c810",
-                                                "virtio-scsi-pci",
-                                                "virtio-scsi-single",
-                                                "megasas",
-                                                "pvscsi"
-                                             ],
-                                             "optional" : 1,
-                                             "type" : "string"
-                                          },
-                                          "serial[n]" : {
-                                             "description" : "Create a serial device inside the VM (n is 0 to 3)",
-                                             "optional" : 1,
-                                             "pattern" : "(/dev/.+|socket)",
-                                             "type" : "string",
-                                             "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
-                                          },
-                                          "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",
-                                             "maximum" : 50000,
-                                             "minimum" : 0,
-                                             "optional" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (0 - 50000)"
-                                          },
-                                          "skiplock" : {
-                                             "description" : "Ignore locks - only root is allowed to use this option.",
-                                             "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
                                           },
-                                          "smbios1" : {
-                                             "description" : "Specify SMBIOS type 1 fields.",
-                                             "format" : "pve-qm-smbios1",
-                                             "maxLength" : 256,
-                                             "optional" : 1,
-                                             "type" : "string",
-                                             "typetext" : "[family=<string>] [,manufacturer=<string>] [,product=<string>] [,serial=<string>] [,sku=<string>] [,uuid=<UUID>] [,version=<string>]"
-                                          },
-                                          "smp" : {
-                                             "default" : 1,
-                                             "description" : "The number of CPUs. Please use option -sockets instead.",
-                                             "minimum" : 1,
-                                             "optional" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (1 - N)"
-                                          },
-                                          "sockets" : {
-                                             "default" : 1,
-                                             "description" : "The number of CPU sockets.",
-                                             "minimum" : 1,
-                                             "optional" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (1 - N)"
-                                          },
-                                          "startdate" : {
-                                             "default" : "now",
-                                             "description" : "Set the initial date of the real time clock. Valid format for date are: 'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
-                                             "optional" : 1,
-                                             "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
-                                             "type" : "string",
-                                             "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
-                                          },
-                                          "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.",
-                                             "format" : "pve-startup-order",
-                                             "optional" : 1,
-                                             "type" : "string",
-                                             "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
-                                          },
-                                          "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",
-                                             "typetext" : "<boolean>"
-                                          },
-                                          "template" : {
-                                             "default" : 0,
-                                             "description" : "Enable/disable Template.",
-                                             "optional" : 1,
-                                             "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",
-                                             "typetext" : "<string>"
-                                          },
-                                          "usb[n]" : {
-                                             "description" : "Configure an USB device (n is 0 to 4).",
-                                             "format" : {
-                                                "host" : {
-                                                   "default_key" : 1,
-                                                   "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
-                                                   "format" : "pve-qm-usb-device",
-                                                   "format_description" : "HOSTUSBDEVICE|spice",
-                                                   "type" : "string"
-                                                },
-                                                "usb3" : {
-                                                   "default" : 0,
-                                                   "description" : "Specifies whether if given host option is a USB3 device or port (this does currently not work reliably with spice redirection and is then ignored).",
-                                                   "optional" : 1,
-                                                   "type" : "boolean"
-                                                }
-                                             },
-                                             "optional" : 1,
-                                             "type" : "string",
-                                             "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
-                                          },
-                                          "vcpus" : {
-                                             "default" : 0,
-                                             "description" : "Number of hotplugged vcpus.",
-                                             "minimum" : 1,
-                                             "optional" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (1 - N)"
-                                          },
-                                          "vga" : {
-                                             "description" : "Select the VGA type.",
-                                             "enum" : [
-                                                "std",
-                                                "cirrus",
-                                                "vmware",
-                                                "qxl",
-                                                "serial0",
-                                                "serial1",
-                                                "serial2",
-                                                "serial3",
-                                                "qxl2",
-                                                "qxl3",
-                                                "qxl4"
-                                             ],
-                                             "optional" : 1,
-                                             "type" : "string",
-                                             "verbose_description" : "Select the VGA type. If you want to use high resolution modes (>= 1280x1024x16) then you should use the options 'std' or 'vmware'. Default is 'std' for win8/win7/w2k8, and 'cirrus' for other OS types. The 'qxl' option enables the SPICE display sever. For win* OS you can select how many independent displays you want, Linux guests can add displays them self. You can also run without any graphic card, using a serial device as terminal."
-                                          },
-                                          "virtio[n]" : {
-                                             "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
+                                          "scsi[n]" : {
+                                             "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
                                              "format" : {
                                                 "aio" : {
                                                    "description" : "AIO type to use.",
@@ -9558,6 +11553,12 @@ var pveapi = [
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
+                                                "queues" : {
+                                                   "description" : "Number of queues.",
+                                                   "minimum" : 2,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
                                                 "replicate" : {
                                                    "default" : 1,
                                                    "description" : "Whether the drive should considered for replication jobs.",
@@ -9574,6 +11575,12 @@ var pveapi = [
                                                    "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,
@@ -9587,6 +11594,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",
@@ -9595,7 +11609,12 @@ 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"
+                                                },
+                                                "ssd" : {
+                                                   "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
                                                    "optional" : 1,
                                                    "type" : "boolean"
                                                 },
@@ -9626,824 +11645,509 @@ var pveapi = [
                                              },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
                                           },
-                                          "vmid" : {
-                                             "description" : "The (unique) ID of the VM.",
-                                             "format" : "pve-vmid",
-                                             "minimum" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (1 - N)"
+                                          "scsihw" : {
+                                             "default" : "lsi",
+                                             "description" : "SCSI controller model",
+                                             "enum" : [
+                                                "lsi",
+                                                "lsi53c810",
+                                                "virtio-scsi-pci",
+                                                "virtio-scsi-single",
+                                                "megasas",
+                                                "pvscsi"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
                                           },
-                                          "watchdog" : {
-                                             "description" : "Create a virtual hardware watchdog device.",
-                                             "format" : "pve-qm-watchdog",
+                                          "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" : "[[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)"
-                                          }
-                                       }
-                                    },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/vms/{vmid}",
-                                          [
-                                             "VM.Config.Disk",
-                                             "VM.Config.CDROM",
-                                             "VM.Config.CPU",
-                                             "VM.Config.Memory",
-                                             "VM.Config.Network",
-                                             "VM.Config.HWType",
-                                             "VM.Config.Options"
-                                          ],
-                                          "any",
-                                          1
-                                       ]
-                                    },
-                                    "protected" : 1,
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "type" : "null"
-                                    }
-                                 }
-                              },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/qemu/{vmid}/config",
-                              "text" : "config"
-                           },
-                           {
-                              "info" : {
-                                 "GET" : {
-                                    "description" : "Get virtual machine configuration, including pending changes.",
-                                    "method" : "GET",
-                                    "name" : "vm_pending",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "type" : "string",
                                              "typetext" : "<string>"
                                           },
-                                          "vmid" : {
-                                             "description" : "The (unique) ID of the VM.",
-                                             "format" : "pve-vmid",
+                                          "serial[n]" : {
+                                             "description" : "Create a serial device inside the VM (n is 0 to 3)",
+                                             "optional" : 1,
+                                             "pattern" : "(/dev/.+|socket)",
+                                             "type" : "string",
+                                             "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+                                          },
+                                          "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. Auto-ballooning is done by pvestatd.",
+                                             "maximum" : 50000,
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (0 - 50000)"
+                                          },
+                                          "skiplock" : {
+                                             "description" : "Ignore locks - only root is allowed to use this option.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "smbios1" : {
+                                             "description" : "Specify SMBIOS type 1 fields.",
+                                             "format" : "pve-qm-smbios1",
+                                             "maxLength" : 256,
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[family=<string>] [,manufacturer=<string>] [,product=<string>] [,serial=<string>] [,sku=<string>] [,uuid=<UUID>] [,version=<string>]"
+                                          },
+                                          "smp" : {
+                                             "default" : 1,
+                                             "description" : "The number of CPUs. Please use option -sockets instead.",
                                              "minimum" : 1,
+                                             "optional" : 1,
                                              "type" : "integer",
                                              "typetext" : "<integer> (1 - N)"
-                                          }
-                                       }
-                                    },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/vms/{vmid}",
-                                          [
-                                             "VM.Audit"
-                                          ]
-                                       ]
-                                    },
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "items" : {
-                                          "properties" : {
-                                             "delete" : {
-                                                "description" : "Indicates a pending delete request if present and not 0. The value 2 indicates a force-delete request.",
-                                                "maximum" : 2,
-                                                "minimum" : 0,
-                                                "optional" : 1,
-                                                "type" : "integer"
-                                             },
-                                             "key" : {
-                                                "description" : "Configuration option name.",
-                                                "type" : "string"
-                                             },
-                                             "pending" : {
-                                                "description" : "Pending value.",
-                                                "optional" : 1,
-                                                "type" : "string"
-                                             },
-                                             "value" : {
-                                                "description" : "Current value.",
-                                                "optional" : 1,
-                                                "type" : "string"
-                                             }
                                           },
-                                          "type" : "object"
-                                       },
-                                       "type" : "array"
-                                    }
-                                 }
-                              },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/qemu/{vmid}/pending",
-                              "text" : "pending"
-                           },
-                           {
-                              "info" : {
-                                 "PUT" : {
-                                    "description" : "Unlink/delete disk images.",
-                                    "method" : "PUT",
-                                    "name" : "unlink",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "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.",
+                                          "sockets" : {
+                                             "default" : 1,
+                                             "description" : "The number of CPU sockets.",
+                                             "minimum" : 1,
                                              "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
                                           },
-                                          "idlist" : {
-                                             "description" : "A list of disk IDs you want to delete.",
-                                             "format" : "pve-configid-list",
+                                          "sshkeys" : {
+                                             "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
+                                             "format" : "urlencoded",
+                                             "optional" : 1,
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
+                                          "startdate" : {
+                                             "default" : "now",
+                                             "description" : "Set the initial date of the real time clock. Valid format for date are: 'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
+                                             "optional" : 1,
+                                             "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
                                              "type" : "string",
-                                             "typetext" : "<string>"
+                                             "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
                                           },
-                                          "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"
-                                          ]
-                                       ]
-                                    },
-                                    "protected" : 1,
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "type" : "null"
-                                    }
-                                 }
-                              },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/qemu/{vmid}/unlink",
-                              "text" : "unlink"
-                           },
-                           {
-                              "info" : {
-                                 "POST" : {
-                                    "description" : "Creates a TCP VNC proxy connections.",
-                                    "method" : "POST",
-                                    "name" : "vncproxy",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
+                                          "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.",
+                                             "format" : "pve-startup-order",
+                                             "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "<string>"
+                                             "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
                                           },
-                                          "vmid" : {
-                                             "description" : "The (unique) ID of the VM.",
-                                             "format" : "pve-vmid",
-                                             "minimum" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (1 - N)"
+                                          "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)."
                                           },
-                                          "websocket" : {
-                                             "description" : "starts websockify instead of vncproxy",
+                                          "tdf" : {
+                                             "default" : 0,
+                                             "description" : "Enable/disable time drift fix.",
                                              "optional" : 1,
                                              "type" : "boolean",
                                              "typetext" : "<boolean>"
-                                          }
-                                       }
-                                    },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/vms/{vmid}",
-                                          [
-                                             "VM.Console"
-                                          ]
-                                       ]
-                                    },
-                                    "protected" : 1,
-                                    "returns" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "cert" : {
-                                             "type" : "string"
-                                          },
-                                          "port" : {
-                                             "type" : "integer"
                                           },
-                                          "ticket" : {
-                                             "type" : "string"
-                                          },
-                                          "upid" : {
-                                             "type" : "string"
+                                          "template" : {
+                                             "default" : 0,
+                                             "description" : "Enable/disable Template.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
-                                          "user" : {
-                                             "type" : "string"
-                                          }
-                                       }
-                                    }
-                                 }
-                              },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/qemu/{vmid}/vncproxy",
-                              "text" : "vncproxy"
-                           },
-                           {
-                              "info" : {
-                                 "GET" : {
-                                    "description" : "Opens a weksocket for VNC traffic.",
-                                    "method" : "GET",
-                                    "name" : "vncwebsocket",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
+                                          "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",
                                              "typetext" : "<string>"
                                           },
-                                          "port" : {
-                                             "description" : "Port number returned by previous vncproxy call.",
-                                             "maximum" : 5999,
-                                             "minimum" : 5900,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (5900 - 5999)"
+                                          "usb[n]" : {
+                                             "description" : "Configure an USB device (n is 0 to 4).",
+                                             "format" : {
+                                                "host" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
+                                                   "format" : "pve-qm-usb-device",
+                                                   "format_description" : "HOSTUSBDEVICE|spice",
+                                                   "type" : "string"
+                                                },
+                                                "usb3" : {
+                                                   "default" : 0,
+                                                   "description" : "Specifies whether if given host option is a USB3 device or port (this does currently not work reliably with spice redirection and is then ignored).",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
                                           },
-                                          "vmid" : {
-                                             "description" : "The (unique) ID of the VM.",
-                                             "format" : "pve-vmid",
+                                          "vcpus" : {
+                                             "default" : 0,
+                                             "description" : "Number of hotplugged vcpus.",
                                              "minimum" : 1,
+                                             "optional" : 1,
                                              "type" : "integer",
                                              "typetext" : "<integer> (1 - N)"
                                           },
-                                          "vncticket" : {
-                                             "description" : "Ticket from previous call to vncproxy.",
-                                             "maxLength" : 512,
+                                          "vga" : {
+                                             "description" : "Configure the VGA hardware.",
+                                             "format" : {
+                                                "memory" : {
+                                                   "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
+                                                   "maximum" : 512,
+                                                   "minimum" : 4,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "type" : {
+                                                   "default" : "std",
+                                                   "default_key" : 1,
+                                                   "description" : "Select the VGA type.",
+                                                   "enum" : [
+                                                      "cirrus",
+                                                      "qxl",
+                                                      "qxl2",
+                                                      "qxl3",
+                                                      "qxl4",
+                                                      "serial0",
+                                                      "serial1",
+                                                      "serial2",
+                                                      "serial3",
+                                                      "std",
+                                                      "virtio",
+                                                      "vmware"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                }
+                                             },
+                                             "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "<string>"
-                                          }
-                                       }
-                                    },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/vms/{vmid}",
-                                          [
-                                             "VM.Console"
-                                          ]
-                                       ],
-                                       "description" : "You also need to pass a valid ticket (vncticket)."
-                                    },
-                                    "returns" : {
-                                       "properties" : {
-                                          "port" : {
-                                             "type" : "string"
-                                          }
-                                       },
-                                       "type" : "object"
-                                    }
-                                 }
-                              },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/qemu/{vmid}/vncwebsocket",
-                              "text" : "vncwebsocket"
-                           },
-                           {
-                              "info" : {
-                                 "POST" : {
-                                    "description" : "Returns a SPICE configuration to connect to the VM.",
-                                    "method" : "POST",
-                                    "name" : "spiceproxy",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "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",
-                                             "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,
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "additionalProperties" : 1,
-                                       "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
-                                       "properties" : {
-                                          "host" : {
-                                             "type" : "string"
-                                          },
-                                          "password" : {
-                                             "type" : "string"
-                                          },
-                                          "proxy" : {
-                                             "type" : "string"
-                                          },
-                                          "tls-port" : {
-                                             "type" : "integer"
+                                             "typetext" : "[[type=]<enum>] [,memory=<integer>]",
+                                             "verbose_description" : "Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is 'std' for all OS types besides some Windows versions (XP and older) which use 'cirrus'. The 'qxl' option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays them self.\nYou can also run without any graphic card, using a serial device as terminal."
                                           },
-                                          "type" : {
-                                             "type" : "string"
-                                          }
-                                       }
-                                    }
-                                 }
-                              },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/qemu/{vmid}/spiceproxy",
-                              "text" : "spiceproxy"
-                           },
-                           {
-                              "children" : [
-                                 {
-                                    "info" : {
-                                       "GET" : {
-                                          "description" : "Get virtual machine status.",
-                                          "method" : "GET",
-                                          "name" : "vm_status",
-                                          "parameters" : {
-                                             "additionalProperties" : 0,
-                                             "properties" : {
-                                                "node" : {
-                                                   "description" : "The cluster node name.",
-                                                   "format" : "pve-node",
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
+                                          "virtio[n]" : {
+                                             "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
+                                             "format" : {
+                                                "aio" : {
+                                                   "description" : "AIO type to use.",
+                                                   "enum" : [
+                                                      "native",
+                                                      "threads"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
                                                 },
-                                                "vmid" : {
-                                                   "description" : "The (unique) ID of the VM.",
-                                                   "format" : "pve-vmid",
+                                                "backup" : {
+                                                   "description" : "Whether the drive should be included when making backups.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "bps" : {
+                                                   "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,
-                                                   "type" : "integer",
-                                                   "typetext" : "<integer> (1 - N)"
-                                                }
-                                             }
-                                          },
-                                          "permissions" : {
-                                             "check" : [
-                                                "perm",
-                                                "/vms/{vmid}",
-                                                [
-                                                   "VM.Audit"
-                                                ]
-                                             ]
-                                          },
-                                          "protected" : 1,
-                                          "proxyto" : "node",
-                                          "returns" : {
-                                             "type" : "object"
-                                          }
-                                       }
-                                    },
-                                    "leaf" : 1,
-                                    "path" : "/nodes/{node}/qemu/{vmid}/status/current",
-                                    "text" : "current"
-                                 },
-                                 {
-                                    "info" : {
-                                       "POST" : {
-                                          "description" : "Start virtual machine.",
-                                          "method" : "POST",
-                                          "name" : "vm_start",
-                                          "parameters" : {
-                                             "additionalProperties" : 0,
-                                             "properties" : {
-                                                "machine" : {
-                                                   "description" : "Specific the Qemu machine type.",
-                                                   "maxLength" : 40,
                                                    "optional" : 1,
-                                                   "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)",
-                                                   "type" : "string"
+                                                   "type" : "integer"
                                                 },
-                                                "migratedfrom" : {
-                                                   "description" : "The cluster node name.",
-                                                   "format" : "pve-node",
+                                                "bps_rd" : {
+                                                   "description" : "Maximum read speed in bytes per second.",
+                                                   "format_description" : "bps",
                                                    "optional" : 1,
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
+                                                   "type" : "integer"
                                                 },
-                                                "migration_network" : {
-                                                   "description" : "CIDR of the (sub) network that is used for migration.",
-                                                   "format" : "CIDR",
+                                                "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" : "string",
-                                                   "typetext" : "<string>"
+                                                   "type" : "integer"
                                                 },
-                                                "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.",
+                                                "bps_wr" : {
+                                                   "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" : [
-                                                      "secure",
-                                                      "insecure"
+                                                      "none",
+                                                      "writethrough",
+                                                      "writeback",
+                                                      "unsafe",
+                                                      "directsync"
                                                    ],
                                                    "optional" : 1,
                                                    "type" : "string"
                                                 },
-                                                "node" : {
-                                                   "description" : "The cluster node name.",
-                                                   "format" : "pve-node",
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
+                                                "cyls" : {
+                                                   "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
                                                 },
-                                                "skiplock" : {
-                                                   "description" : "Ignore locks - only root is allowed to use this option.",
+                                                "detect_zeroes" : {
+                                                   "description" : "Controls whether to detect and try to optimize writes of zeroes.",
                                                    "optional" : 1,
-                                                   "type" : "boolean",
-                                                   "typetext" : "<boolean>"
+                                                   "type" : "boolean"
                                                 },
-                                                "stateuri" : {
-                                                   "description" : "Some command save/restore state from this location.",
-                                                   "maxLength" : 128,
+                                                "discard" : {
+                                                   "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+                                                   "enum" : [
+                                                      "ignore",
+                                                      "on"
+                                                   ],
                                                    "optional" : 1,
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
+                                                   "type" : "string"
                                                 },
-                                                "targetstorage" : {
-                                                   "description" : "Target storage for the migration. (Can be '1' to use the same storage id as on the source node.)",
+                                                "file" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The drive's backing volume.",
+                                                   "format" : "pve-volume-id-or-qm-path",
+                                                   "format_description" : "volume",
+                                                   "type" : "string"
+                                                },
+                                                "format" : {
+                                                   "description" : "The drive's backing file's data format.",
+                                                   "enum" : [
+                                                      "raw",
+                                                      "cow",
+                                                      "qcow",
+                                                      "qed",
+                                                      "qcow2",
+                                                      "vmdk",
+                                                      "cloop"
+                                                   ],
                                                    "optional" : 1,
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
+                                                   "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.PowerMgmt"
-                                                ]
-                                             ]
-                                          },
-                                          "protected" : 1,
-                                          "proxyto" : "node",
-                                          "returns" : {
-                                             "type" : "string"
-                                          }
-                                       }
-                                    },
-                                    "leaf" : 1,
-                                    "path" : "/nodes/{node}/qemu/{vmid}/status/start",
-                                    "text" : "start"
-                                 },
-                                 {
-                                    "info" : {
-                                       "POST" : {
-                                          "description" : "Stop virtual machine. The qemu process will exit immediately. Thisis akin to pulling the power plug of a running computer and may damage the VM data",
-                                          "method" : "POST",
-                                          "name" : "vm_stop",
-                                          "parameters" : {
-                                             "additionalProperties" : 0,
-                                             "properties" : {
-                                                "keepActive" : {
-                                                   "default" : 0,
-                                                   "description" : "Do not deactivate storage volumes.",
+                                                "heads" : {
+                                                   "description" : "Force the drive's physical geometry to have a specific head count.",
                                                    "optional" : 1,
-                                                   "type" : "boolean",
-                                                   "typetext" : "<boolean>"
+                                                   "type" : "integer"
                                                 },
-                                                "migratedfrom" : {
-                                                   "description" : "The cluster node name.",
-                                                   "format" : "pve-node",
+                                                "iops" : {
+                                                   "description" : "Maximum r/w I/O in operations per second.",
+                                                   "format_description" : "iops",
                                                    "optional" : 1,
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
+                                                   "type" : "integer"
                                                 },
-                                                "node" : {
-                                                   "description" : "The cluster node name.",
-                                                   "format" : "pve-node",
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
+                                                "iops_max" : {
+                                                   "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
+                                                   "format_description" : "iops",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
                                                 },
-                                                "skiplock" : {
-                                                   "description" : "Ignore locks - only root is allowed to use this option.",
+                                                "iops_max_length" : {
+                                                   "description" : "Maximum length of I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
                                                    "optional" : 1,
-                                                   "type" : "boolean",
-                                                   "typetext" : "<boolean>"
+                                                   "type" : "integer"
                                                 },
-                                                "timeout" : {
-                                                   "description" : "Wait maximal timeout seconds.",
-                                                   "minimum" : 0,
+                                                "iops_rd" : {
+                                                   "description" : "Maximum read I/O in operations per second.",
+                                                   "format_description" : "iops",
                                                    "optional" : 1,
-                                                   "type" : "integer",
-                                                   "typetext" : "<integer> (0 - N)"
+                                                   "type" : "integer"
                                                 },
-                                                "vmid" : {
-                                                   "description" : "The (unique) ID of the VM.",
-                                                   "format" : "pve-vmid",
+                                                "iops_rd_length" : {
+                                                   "alias" : "iops_rd_max_length"
+                                                },
+                                                "iops_rd_max" : {
+                                                   "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,
-                                                   "type" : "integer",
-                                                   "typetext" : "<integer> (1 - N)"
-                                                }
-                                             }
-                                          },
-                                          "permissions" : {
-                                             "check" : [
-                                                "perm",
-                                                "/vms/{vmid}",
-                                                [
-                                                   "VM.PowerMgmt"
-                                                ]
-                                             ]
-                                          },
-                                          "protected" : 1,
-                                          "proxyto" : "node",
-                                          "returns" : {
-                                             "type" : "string"
-                                          }
-                                       }
-                                    },
-                                    "leaf" : 1,
-                                    "path" : "/nodes/{node}/qemu/{vmid}/status/stop",
-                                    "text" : "stop"
-                                 },
-                                 {
-                                    "info" : {
-                                       "POST" : {
-                                          "description" : "Reset virtual machine.",
-                                          "method" : "POST",
-                                          "name" : "vm_reset",
-                                          "parameters" : {
-                                             "additionalProperties" : 0,
-                                             "properties" : {
-                                                "node" : {
-                                                   "description" : "The cluster node name.",
-                                                   "format" : "pve-node",
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
+                                                   "optional" : 1,
+                                                   "type" : "integer"
                                                 },
-                                                "skiplock" : {
-                                                   "description" : "Ignore locks - only root is allowed to use this option.",
+                                                "iops_wr" : {
+                                                   "description" : "Maximum write I/O in operations per second.",
+                                                   "format_description" : "iops",
                                                    "optional" : 1,
-                                                   "type" : "boolean",
-                                                   "typetext" : "<boolean>"
+                                                   "type" : "integer"
                                                 },
-                                                "vmid" : {
-                                                   "description" : "The (unique) ID of the VM.",
-                                                   "format" : "pve-vmid",
+                                                "iops_wr_length" : {
+                                                   "alias" : "iops_wr_max_length"
+                                                },
+                                                "iops_wr_max" : {
+                                                   "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,
-                                                   "type" : "integer",
-                                                   "typetext" : "<integer> (1 - N)"
-                                                }
-                                             }
-                                          },
-                                          "permissions" : {
-                                             "check" : [
-                                                "perm",
-                                                "/vms/{vmid}",
-                                                [
-                                                   "VM.PowerMgmt"
-                                                ]
-                                             ]
-                                          },
-                                          "protected" : 1,
-                                          "proxyto" : "node",
-                                          "returns" : {
-                                             "type" : "string"
-                                          }
-                                       }
-                                    },
-                                    "leaf" : 1,
-                                    "path" : "/nodes/{node}/qemu/{vmid}/status/reset",
-                                    "text" : "reset"
-                                 },
-                                 {
-                                    "info" : {
-                                       "POST" : {
-                                          "description" : "Shutdown virtual machine. This is similar to pressing the power button on a physical machine.This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown.",
-                                          "method" : "POST",
-                                          "name" : "vm_shutdown",
-                                          "parameters" : {
-                                             "additionalProperties" : 0,
-                                             "properties" : {
-                                                "forceStop" : {
-                                                   "default" : 0,
-                                                   "description" : "Make sure the VM stops.",
                                                    "optional" : 1,
-                                                   "type" : "boolean",
-                                                   "typetext" : "<boolean>"
+                                                   "type" : "integer"
                                                 },
-                                                "keepActive" : {
-                                                   "default" : 0,
-                                                   "description" : "Do not deactivate storage volumes.",
+                                                "iothread" : {
+                                                   "description" : "Whether to use iothreads for this drive",
                                                    "optional" : 1,
-                                                   "type" : "boolean",
-                                                   "typetext" : "<boolean>"
+                                                   "type" : "boolean"
                                                 },
-                                                "node" : {
-                                                   "description" : "The cluster node name.",
-                                                   "format" : "pve-node",
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
+                                                "mbps" : {
+                                                   "description" : "Maximum r/w speed in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
                                                 },
-                                                "skiplock" : {
-                                                   "description" : "Ignore locks - only root is allowed to use this option.",
+                                                "mbps_max" : {
+                                                   "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+                                                   "format_description" : "mbps",
                                                    "optional" : 1,
-                                                   "type" : "boolean",
-                                                   "typetext" : "<boolean>"
+                                                   "type" : "number"
                                                 },
-                                                "timeout" : {
-                                                   "description" : "Wait maximal timeout seconds.",
-                                                   "minimum" : 0,
+                                                "mbps_rd" : {
+                                                   "description" : "Maximum read speed in megabytes per second.",
+                                                   "format_description" : "mbps",
                                                    "optional" : 1,
-                                                   "type" : "integer",
-                                                   "typetext" : "<integer> (0 - N)"
+                                                   "type" : "number"
                                                 },
-                                                "vmid" : {
-                                                   "description" : "The (unique) ID of the VM.",
-                                                   "format" : "pve-vmid",
-                                                   "minimum" : 1,
-                                                   "type" : "integer",
-                                                   "typetext" : "<integer> (1 - N)"
-                                                }
-                                             }
-                                          },
-                                          "permissions" : {
-                                             "check" : [
-                                                "perm",
-                                                "/vms/{vmid}",
-                                                [
-                                                   "VM.PowerMgmt"
-                                                ]
-                                             ]
-                                          },
-                                          "protected" : 1,
-                                          "proxyto" : "node",
-                                          "returns" : {
-                                             "type" : "string"
-                                          }
-                                       }
-                                    },
-                                    "leaf" : 1,
-                                    "path" : "/nodes/{node}/qemu/{vmid}/status/shutdown",
-                                    "text" : "shutdown"
-                                 },
-                                 {
-                                    "info" : {
-                                       "POST" : {
-                                          "description" : "Suspend virtual machine.",
-                                          "method" : "POST",
-                                          "name" : "vm_suspend",
-                                          "parameters" : {
-                                             "additionalProperties" : 0,
-                                             "properties" : {
-                                                "node" : {
-                                                   "description" : "The cluster node name.",
-                                                   "format" : "pve-node",
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
+                                                "mbps_rd_max" : {
+                                                   "description" : "Maximum unthrottled read pool in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
                                                 },
-                                                "skiplock" : {
-                                                   "description" : "Ignore locks - only root is allowed to use this option.",
+                                                "mbps_wr" : {
+                                                   "description" : "Maximum write speed in megabytes per second.",
+                                                   "format_description" : "mbps",
                                                    "optional" : 1,
-                                                   "type" : "boolean",
-                                                   "typetext" : "<boolean>"
+                                                   "type" : "number"
                                                 },
-                                                "vmid" : {
-                                                   "description" : "The (unique) ID of the VM.",
-                                                   "format" : "pve-vmid",
-                                                   "minimum" : 1,
-                                                   "type" : "integer",
-                                                   "typetext" : "<integer> (1 - N)"
-                                                }
-                                             }
-                                          },
-                                          "permissions" : {
-                                             "check" : [
-                                                "perm",
-                                                "/vms/{vmid}",
-                                                [
-                                                   "VM.PowerMgmt"
-                                                ]
-                                             ]
-                                          },
-                                          "protected" : 1,
-                                          "proxyto" : "node",
-                                          "returns" : {
-                                             "type" : "string"
-                                          }
-                                       }
-                                    },
-                                    "leaf" : 1,
-                                    "path" : "/nodes/{node}/qemu/{vmid}/status/suspend",
-                                    "text" : "suspend"
-                                 },
-                                 {
-                                    "info" : {
-                                       "POST" : {
-                                          "description" : "Resume virtual machine.",
-                                          "method" : "POST",
-                                          "name" : "vm_resume",
-                                          "parameters" : {
-                                             "additionalProperties" : 0,
-                                             "properties" : {
-                                                "nocheck" : {
+                                                "mbps_wr_max" : {
+                                                   "description" : "Maximum unthrottled write pool in megabytes per second.",
+                                                   "format_description" : "mbps",
                                                    "optional" : 1,
-                                                   "type" : "boolean",
-                                                   "typetext" : "<boolean>"
+                                                   "type" : "number"
                                                 },
-                                                "node" : {
-                                                   "description" : "The cluster node name.",
-                                                   "format" : "pve-node",
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
+                                                "media" : {
+                                                   "default" : "disk",
+                                                   "description" : "The drive's media type.",
+                                                   "enum" : [
+                                                      "cdrom",
+                                                      "disk"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
                                                 },
-                                                "skiplock" : {
-                                                   "description" : "Ignore locks - only root is allowed to use this option.",
+                                                "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"
+                                                },
+                                                "secs" : {
+                                                   "description" : "Force the drive's physical geometry to have a specific sector count.",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "serial" : {
+                                                   "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+                                                   "format" : "urlencoded",
+                                                   "format_description" : "serial",
+                                                   "maxLength" : 60,
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "shared" : {
+                                                   "default" : 0,
+                                                   "description" : "Mark this locally-managed volume as available on all nodes",
                                                    "optional" : 1,
                                                    "type" : "boolean",
-                                                   "typetext" : "<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!"
                                                 },
-                                                "vmid" : {
-                                                   "description" : "The (unique) ID of the VM.",
-                                                   "format" : "pve-vmid",
-                                                   "minimum" : 1,
-                                                   "type" : "integer",
-                                                   "typetext" : "<integer> (1 - N)"
+                                                "size" : {
+                                                   "description" : "Disk size. This is purely informational and has no effect.",
+                                                   "format" : "disk-size",
+                                                   "format_description" : "DiskSize",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "snapshot" : {
+                                                   "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"
+                                                },
+                                                "trans" : {
+                                                   "description" : "Force disk geometry bios translation mode.",
+                                                   "enum" : [
+                                                      "none",
+                                                      "lba",
+                                                      "auto"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "volume" : {
+                                                   "alias" : "file"
+                                                },
+                                                "werror" : {
+                                                   "description" : "Write error action.",
+                                                   "enum" : [
+                                                      "enospc",
+                                                      "ignore",
+                                                      "report",
+                                                      "stop"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
                                                 }
-                                             }
-                                          },
-                                          "permissions" : {
-                                             "check" : [
-                                                "perm",
-                                                "/vms/{vmid}",
-                                                [
-                                                   "VM.PowerMgmt"
-                                                ]
-                                             ]
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
                                           },
-                                          "protected" : 1,
-                                          "proxyto" : "node",
-                                          "returns" : {
-                                             "type" : "string"
-                                          }
-                                       }
-                                    },
-                                    "leaf" : 1,
-                                    "path" : "/nodes/{node}/qemu/{vmid}/status/resume",
-                                    "text" : "resume"
-                                 }
-                              ],
-                              "info" : {
-                                 "GET" : {
-                                    "description" : "Directory index",
-                                    "method" : "GET",
-                                    "name" : "vmcmdidx",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
+                                          "vmgenid" : {
+                                             "default" : "1 (autogenerated)",
+                                             "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
+                                             "format_description" : "UUID",
+                                             "optional" : 1,
+                                             "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
                                              "type" : "string",
-                                             "typetext" : "<string>"
+                                             "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done throug API/CLI create or update methods, but not when manually editing the config file."
                                           },
                                           "vmid" : {
                                              "description" : "The (unique) ID of the VM.",
@@ -10451,1190 +12155,4273 @@ var pveapi = [
                                              "minimum" : 1,
                                              "type" : "integer",
                                              "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=<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)"
                                           }
                                        }
                                     },
                                     "permissions" : {
-                                       "user" : "all"
+                                       "check" : [
+                                          "perm",
+                                          "/vms/{vmid}",
+                                          [
+                                             "VM.Config.Disk",
+                                             "VM.Config.CDROM",
+                                             "VM.Config.CPU",
+                                             "VM.Config.Memory",
+                                             "VM.Config.Network",
+                                             "VM.Config.HWType",
+                                             "VM.Config.Options"
+                                          ],
+                                          "any",
+                                          1
+                                       ]
                                     },
+                                    "protected" : 1,
                                     "proxyto" : "node",
                                     "returns" : {
-                                       "items" : {
-                                          "properties" : {
-                                             "subdir" : {
-                                                "type" : "string"
-                                             }
-                                          },
-                                          "type" : "object"
-                                       },
-                                       "links" : [
-                                          {
-                                             "href" : "{subdir}",
-                                             "rel" : "child"
-                                          }
-                                       ],
-                                       "type" : "array"
+                                       "optional" : 1,
+                                       "type" : "string"
                                     }
-                                 }
-                              },
-                              "leaf" : 0,
-                              "path" : "/nodes/{node}/qemu/{vmid}/status",
-                              "text" : "status"
-                           },
-                           {
-                              "info" : {
+                                 },
                                  "PUT" : {
-                                    "description" : "Send key event to virtual machine.",
+                                    "description" : "Set virtual machine options (synchrounous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.",
                                     "method" : "PUT",
-                                    "name" : "vm_sendkey",
+                                    "name" : "update_vm",
                                     "parameters" : {
                                        "additionalProperties" : 0,
                                        "properties" : {
-                                          "key" : {
-                                             "description" : "The key (qemu monitor encoding).",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "skiplock" : {
-                                             "description" : "Ignore locks - only root is allowed to use this option.",
+                                          "acpi" : {
+                                             "default" : 1,
+                                             "description" : "Enable/disable ACPI.",
                                              "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.Console"
-                                          ]
-                                       ]
-                                    },
-                                    "protected" : 1,
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "type" : "null"
-                                    }
-                                 }
-                              },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/qemu/{vmid}/sendkey",
-                              "text" : "sendkey"
-                           },
-                           {
-                              "info" : {
-                                 "GET" : {
-                                    "description" : "Check if feature for virtual machine is available.",
-                                    "method" : "GET",
-                                    "name" : "vm_feature",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "feature" : {
-                                             "description" : "Feature to check.",
+                                          "agent" : {
+                                             "description" : "Enable/disable Qemu GuestAgent and its properties.",
+                                             "format" : {
+                                                "enabled" : {
+                                                   "default" : 0,
+                                                   "default_key" : 1,
+                                                   "description" : "Enable/disable Qemu GuestAgent.",
+                                                   "type" : "boolean"
+                                                },
+                                                "fstrim_cloned_disks" : {
+                                                   "default" : 0,
+                                                   "description" : "Run fstrim after cloning/moving a disk.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>]"
+                                          },
+                                          "arch" : {
+                                             "description" : "Virtual processor architecture. Defaults to the host.",
                                              "enum" : [
-                                                "snapshot",
-                                                "clone",
-                                                "copy"
+                                                "x86_64",
+                                                "aarch64"
                                              ],
+                                             "optional" : 1,
                                              "type" : "string"
                                           },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "snapname" : {
-                                             "description" : "The name of the snapshot.",
-                                             "format" : "pve-configid",
-                                             "maxLength" : 40,
+                                          "args" : {
+                                             "description" : "Arbitrary arguments passed to kvm.",
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "<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"
                                           },
-                                          "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,
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "properties" : {
-                                          "hasFeature" : {
-                                             "type" : "boolean"
+                                          "autostart" : {
+                                             "default" : 0,
+                                             "description" : "Automatic restart after crash (currently ignored).",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
-                                          "nodes" : {
-                                             "items" : {
-                                                "type" : "string"
-                                             },
-                                             "type" : "array"
-                                          }
-                                       },
-                                       "type" : "object"
-                                    }
-                                 }
-                              },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/qemu/{vmid}/feature",
-                              "text" : "feature"
-                           },
-                           {
-                              "info" : {
-                                 "POST" : {
-                                    "description" : "Create a copy of virtual machine/template.",
-                                    "method" : "POST",
-                                    "name" : "clone_vm",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "description" : {
-                                             "description" : "Description for the new VM.",
+                                          "balloon" : {
+                                             "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
+                                             "minimum" : 0,
                                              "optional" : 1,
-                                             "type" : "string",
-                                             "typetext" : "<string>"
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (0 - N)"
                                           },
-                                          "format" : {
-                                             "description" : "Target format for file storage.",
+                                          "bios" : {
+                                             "default" : "seabios",
+                                             "description" : "Select BIOS implementation.",
                                              "enum" : [
-                                                "raw",
-                                                "qcow2",
-                                                "vmdk"
+                                                "seabios",
+                                                "ovmf"
                                              ],
                                              "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.",
+                                          "boot" : {
+                                             "default" : "cdn",
+                                             "description" : "Boot on floppy (a), hard disk (c), CD-ROM (d), or network (n).",
                                              "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
+                                             "pattern" : "[acdn]{1,4}",
+                                             "type" : "string"
                                           },
-                                          "name" : {
-                                             "description" : "Set a name for the new VM.",
-                                             "format" : "dns-name",
+                                          "bootdisk" : {
+                                             "description" : "Enable booting from specified disk.",
+                                             "format" : "pve-qm-bootdisk",
                                              "optional" : 1,
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "newid" : {
-                                             "description" : "VMID for the clone.",
-                                             "format" : "pve-vmid",
-                                             "minimum" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (1 - N)"
-                                          },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
+                                             "pattern" : "(ide|sata|scsi|virtio)\\d+",
+                                             "type" : "string"
                                           },
-                                          "pool" : {
-                                             "description" : "Add the new VM to the specified pool.",
-                                             "format" : "pve-poolid",
+                                          "cdrom" : {
+                                             "description" : "This is an alias for option -ide2",
+                                             "format" : "pve-qm-ide",
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "<string>"
+                                             "typetext" : "<volume>"
                                           },
-                                          "snapname" : {
-                                             "description" : "The name of the snapshot.",
-                                             "format" : "pve-configid",
-                                             "maxLength" : 40,
+                                          "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>"
                                           },
-                                          "storage" : {
-                                             "description" : "Target storage for full clone.",
-                                             "format" : "pve-storage-id",
+                                          "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,
-                                             "requires" : "full",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
+                                             "type" : "string"
                                           },
-                                          "target" : {
-                                             "description" : "Target node. Only allowed if the original VM is on shared storage.",
-                                             "format" : "pve-node",
+                                          "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" : "<string>"
                                           },
-                                          "vmid" : {
-                                             "description" : "The (unique) ID of the VM.",
-                                             "format" : "pve-vmid",
+                                          "cores" : {
+                                             "default" : 1,
+                                             "description" : "The number of cores per socket.",
                                              "minimum" : 1,
+                                             "optional" : 1,
                                              "type" : "integer",
                                              "typetext" : "<integer> (1 - N)"
-                                          }
-                                       }
-                                    },
-                                    "permissions" : {
-                                       "check" : [
-                                          "and",
-                                          [
-                                             "perm",
-                                             "/vms/{vmid}",
-                                             [
-                                                "VM.Clone"
-                                             ]
-                                          ],
-                                          [
-                                             "or",
-                                             [
-                                                "perm",
-                                                "/vms/{newid}",
-                                                [
-                                                   "VM.Allocate"
-                                                ]
-                                             ],
-                                             [
-                                                "perm",
-                                                "/pool/{pool}",
-                                                [
-                                                   "VM.Allocate"
-                                                ],
-                                                "require_param",
-                                                "pool"
-                                             ]
-                                          ]
-                                       ],
-                                       "description" : "You need 'VM.Clone' permissions on /vms/{vmid}, and 'VM.Allocate' permissions on /vms/{newid} (or on the VM pool /pool/{pool}). You also need 'Datastore.AllocateSpace' on any used storage."
-                                    },
-                                    "protected" : 1,
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "type" : "string"
-                                    }
-                                 }
-                              },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/qemu/{vmid}/clone",
-                              "text" : "clone"
-                           },
-                           {
-                              "info" : {
-                                 "POST" : {
-                                    "description" : "Move volume to different storage.",
-                                    "method" : "POST",
-                                    "name" : "move_vm_disk",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "delete" : {
-                                             "default" : 0,
-                                             "description" : "Delete the original disk after successful copy. By default the original disk is kept as unused disk.",
-                                             "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,
+                                          "cpu" : {
+                                             "description" : "Emulated CPU type.",
+                                             "format" : {
+                                                "cputype" : {
+                                                   "default" : "kvm64",
+                                                   "default_key" : 1,
+                                                   "description" : "Emulated CPU type.",
+                                                   "enum" : [
+                                                      "486",
+                                                      "athlon",
+                                                      "Broadwell",
+                                                      "Broadwell-IBRS",
+                                                      "Broadwell-noTSX",
+                                                      "Broadwell-noTSX-IBRS",
+                                                      "Conroe",
+                                                      "core2duo",
+                                                      "coreduo",
+                                                      "EPYC",
+                                                      "EPYC-IBPB",
+                                                      "Haswell",
+                                                      "Haswell-IBRS",
+                                                      "Haswell-noTSX",
+                                                      "Haswell-noTSX-IBRS",
+                                                      "host",
+                                                      "IvyBridge",
+                                                      "IvyBridge-IBRS",
+                                                      "kvm32",
+                                                      "kvm64",
+                                                      "max",
+                                                      "Nehalem",
+                                                      "Nehalem-IBRS",
+                                                      "Opteron_G1",
+                                                      "Opteron_G2",
+                                                      "Opteron_G3",
+                                                      "Opteron_G4",
+                                                      "Opteron_G5",
+                                                      "Penryn",
+                                                      "pentium",
+                                                      "pentium2",
+                                                      "pentium3",
+                                                      "phenom",
+                                                      "qemu32",
+                                                      "qemu64",
+                                                      "SandyBridge",
+                                                      "SandyBridge-IBRS",
+                                                      "Skylake-Client",
+                                                      "Skylake-Client-IBRS",
+                                                      "Skylake-Server",
+                                                      "Skylake-Server-IBRS",
+                                                      "Westmere",
+                                                      "Westmere-IBRS"
+                                                   ],
+                                                   "type" : "string"
+                                                },
+                                                "flags" : {
+                                                   "description" : "List of additional CPU flags separated by ';'. Use '+FLAG' to enable, '-FLAG' to disable a flag. Currently supported flags: 'pcid', 'spec-ctrl', 'ibpb', 'ssbd', 'virt-ssbd', 'amd-ssbd', 'amd-no-ssb', 'pdpe1gb'.",
+                                                   "format_description" : "+FLAG[;-FLAG...]",
+                                                   "optional" : 1,
+                                                   "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb))(;(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb)))*)",
+                                                   "type" : "string"
+                                                },
+                                                "hidden" : {
+                                                   "default" : 0,
+                                                   "description" : "Do not identify as a KVM virtual machine.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                }
+                                             },
                                              "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "disk" : {
-                                             "description" : "The disk you want to move.",
-                                             "enum" : [
-                                                "ide0",
-                                                "ide1",
-                                                "ide2",
-                                                "ide3",
-                                                "scsi0",
-                                                "scsi1",
-                                                "scsi2",
-                                                "scsi3",
-                                                "scsi4",
-                                                "scsi5",
-                                                "scsi6",
-                                                "scsi7",
-                                                "scsi8",
-                                                "scsi9",
-                                                "scsi10",
-                                                "scsi11",
-                                                "scsi12",
-                                                "scsi13",
-                                                "virtio0",
-                                                "virtio1",
-                                                "virtio2",
-                                                "virtio3",
-                                                "virtio4",
-                                                "virtio5",
-                                                "virtio6",
-                                                "virtio7",
-                                                "virtio8",
-                                                "virtio9",
-                                                "virtio10",
-                                                "virtio11",
-                                                "virtio12",
-                                                "virtio13",
-                                                "virtio14",
-                                                "virtio15",
-                                                "sata0",
-                                                "sata1",
-                                                "sata2",
-                                                "sata3",
-                                                "sata4",
-                                                "sata5",
-                                                "efidisk0"
-                                             ],
-                                             "type" : "string"
+                                             "typetext" : "[cputype=]<enum> [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>]"
                                           },
-                                          "format" : {
-                                             "description" : "Target Format.",
-                                             "enum" : [
-                                                "raw",
-                                                "qcow2",
-                                                "vmdk"
-                                             ],
+                                          "cpulimit" : {
+                                             "default" : 0,
+                                             "description" : "Limit of CPU usage.",
+                                             "maximum" : 128,
+                                             "minimum" : 0,
                                              "optional" : 1,
-                                             "type" : "string"
-                                          },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "storage" : {
-                                             "description" : "Target storage.",
-                                             "format" : "pve-storage-id",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
+                                             "type" : "number",
+                                             "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."
                                           },
-                                          "vmid" : {
-                                             "description" : "The (unique) ID of the VM.",
-                                             "format" : "pve-vmid",
-                                             "minimum" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (1 - N)"
-                                          }
-                                       }
-                                    },
-                                    "permissions" : {
-                                       "check" : [
-                                          "and",
-                                          [
-                                             "perm",
-                                             "/vms/{vmid}",
-                                             [
-                                                "VM.Config.Disk"
-                                             ]
-                                          ],
-                                          [
-                                             "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}/qemu/{vmid}/move_disk",
-                              "text" : "move_disk"
-                           },
-                           {
-                              "info" : {
-                                 "POST" : {
-                                    "description" : "Migrate virtual machine. Creates a new migration task.",
-                                    "method" : "POST",
-                                    "name" : "migrate_vm",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "force" : {
-                                             "description" : "Allow to migrate VMs which use local devices. Only root may use this option.",
+                                          "cpuunits" : {
+                                             "default" : 1024,
+                                             "description" : "CPU weight for a VM.",
+                                             "maximum" : 262144,
+                                             "minimum" : 2,
                                              "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
+                                             "type" : "integer",
+                                             "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."
                                           },
-                                          "migration_network" : {
-                                             "description" : "CIDR of the (sub) network that is used for migration.",
-                                             "format" : "CIDR",
+                                          "delete" : {
+                                             "description" : "A list of settings you want to delete.",
+                                             "format" : "pve-configid-list",
                                              "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"
-                                             ],
+                                          "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"
-                                          },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           },
-                                          "online" : {
-                                             "description" : "Use online/live migration.",
+                                          "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" : "boolean",
-                                             "typetext" : "<boolean>"
-                                          },
-                                          "target" : {
-                                             "description" : "Target node.",
-                                             "format" : "pve-node",
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           },
-                                          "targetstorage" : {
-                                             "description" : "Default target storage.",
-                                             "format" : "pve-storage-id",
-                                             "optional" : 1,
+                                          "efidisk0" : {
+                                             "description" : "Configure a Disk for storing EFI vars",
+                                             "format" : {
+                                                "file" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The drive's backing volume.",
+                                                   "format" : "pve-volume-id-or-qm-path",
+                                                   "format_description" : "volume",
+                                                   "type" : "string"
+                                                },
+                                                "format" : {
+                                                   "description" : "The drive's backing file's data format.",
+                                                   "enum" : [
+                                                      "raw",
+                                                      "cow",
+                                                      "qcow",
+                                                      "qed",
+                                                      "qcow2",
+                                                      "vmdk",
+                                                      "cloop"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "size" : {
+                                                   "description" : "Disk size. This is purely informational and has no effect.",
+                                                   "format" : "disk-size",
+                                                   "format_description" : "DiskSize",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "volume" : {
+                                                   "alias" : "file"
+                                                }
+                                             },
+                                             "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" : "[file=]<volume> [,format=<enum>] [,size=<DiskSize>]"
                                           },
-                                          "with-local-disks" : {
-                                             "description" : "Enable live storage migration for local disk",
+                                          "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",
                                              "typetext" : "<boolean>"
-                                          }
-                                       }
-                                    },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/vms/{vmid}",
-                                          [
-                                             "VM.Migrate"
-                                          ]
-                                       ]
-                                    },
-                                    "protected" : 1,
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "description" : "the task ID.",
-                                       "type" : "string"
-                                    }
-                                 }
-                              },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/qemu/{vmid}/migrate",
-                              "text" : "migrate"
-                           },
-                           {
-                              "info" : {
-                                 "POST" : {
-                                    "description" : "Execute Qemu monitor commands.",
-                                    "method" : "POST",
-                                    "name" : "monitor",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "command" : {
-                                             "description" : "The monitor command.",
-                                             "type" : "string",
-                                             "typetext" : "<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"
-                                          ]
-                                       ],
-                                       "description" : "Sys.Modify is required for (sub)commands which are not read-only ('info *' and 'help')"
-                                    },
-                                    "protected" : 1,
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "type" : "string"
-                                    }
-                                 }
-                              },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/qemu/{vmid}/monitor",
-                              "text" : "monitor"
-                           },
-                           {
-                              "info" : {
-                                 "POST" : {
-                                    "description" : "Execute Qemu Guest Agent commands.",
-                                    "method" : "POST",
-                                    "name" : "agent",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "command" : {
-                                             "description" : "The QGA command.",
-                                             "enum" : [
-                                                "ping",
-                                                "get-time",
-                                                "info",
-                                                "fsfreeze-status",
-                                                "fsfreeze-freeze",
-                                                "fsfreeze-thaw",
-                                                "fstrim",
-                                                "network-get-interfaces",
-                                                "get-vcpus",
-                                                "get-fsinfo",
-                                                "get-memory-blocks",
-                                                "get-memory-block-info",
-                                                "suspend-hybrid",
-                                                "suspend-ram",
-                                                "suspend-disk",
-                                                "shutdown"
-                                             ],
-                                             "type" : "string"
+                                          "freeze" : {
+                                             "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
+                                          "hostpci[n]" : {
+                                             "description" : "Map host PCI devices into guest.",
+                                             "format" : "pve-qm-hostpci",
+                                             "optional" : 1,
                                              "type" : "string",
-                                             "typetext" : "<string>"
+                                             "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,mdev=<string>] [,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"
                                           },
-                                          "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. The type of that\nproperty depends on the executed command.",
-                                       "type" : "object"
-                                    }
-                                 }
-                              },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/qemu/{vmid}/agent",
-                              "text" : "agent"
-                           },
-                           {
-                              "info" : {
-                                 "PUT" : {
-                                    "description" : "Extend volume size.",
-                                    "method" : "PUT",
-                                    "name" : "resize_vm",
-                                    "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,
+                                          "hotplug" : {
+                                             "default" : "network,disk,usb",
+                                             "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Value '1' is an alias for the default 'network,disk,usb'.",
+                                             "format" : "pve-hotplug-features",
                                              "optional" : 1,
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           },
-                                          "disk" : {
-                                             "description" : "The disk you want to resize.",
+                                          "hugepages" : {
+                                             "description" : "Enable/disable hugepages memory.",
                                              "enum" : [
-                                                "ide0",
-                                                "ide1",
-                                                "ide2",
-                                                "ide3",
-                                                "scsi0",
-                                                "scsi1",
-                                                "scsi2",
-                                                "scsi3",
-                                                "scsi4",
-                                                "scsi5",
-                                                "scsi6",
-                                                "scsi7",
-                                                "scsi8",
-                                                "scsi9",
-                                                "scsi10",
-                                                "scsi11",
-                                                "scsi12",
-                                                "scsi13",
-                                                "virtio0",
-                                                "virtio1",
-                                                "virtio2",
-                                                "virtio3",
-                                                "virtio4",
-                                                "virtio5",
-                                                "virtio6",
-                                                "virtio7",
-                                                "virtio8",
-                                                "virtio9",
-                                                "virtio10",
-                                                "virtio11",
-                                                "virtio12",
-                                                "virtio13",
-                                                "virtio14",
-                                                "virtio15",
-                                                "sata0",
-                                                "sata1",
-                                                "sata2",
-                                                "sata3",
-                                                "sata4",
-                                                "sata5",
-                                                "efidisk0"
+                                                "any",
+                                                "2",
+                                                "1024"
                                              ],
+                                             "optional" : 1,
                                              "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"
-                                          },
-                                          "skiplock" : {
-                                             "description" : "Ignore locks - only root is allowed to use this option.",
-                                             "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.Disk"
-                                          ]
-                                       ]
-                                    },
-                                    "protected" : 1,
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "type" : "null"
-                                    }
-                                 }
-                              },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/qemu/{vmid}/resize",
-                              "text" : "resize"
-                           },
-                           {
-                              "children" : [
-                                 {
-                                    "children" : [
-                                       {
-                                          "info" : {
-                                             "GET" : {
-                                                "description" : "Get snapshot configuration",
-                                                "method" : "GET",
-                                                "name" : "get_snapshot_config",
-                                                "parameters" : {
-                                                   "additionalProperties" : 0,
-                                                   "properties" : {
-                                                      "node" : {
-                                                         "description" : "The cluster node name.",
-                                                         "format" : "pve-node",
-                                                         "type" : "string",
-                                                         "typetext" : "<string>"
-                                                      },
-                                                      "snapname" : {
-                                                         "description" : "The name of the snapshot.",
-                                                         "format" : "pve-configid",
-                                                         "maxLength" : 40,
-                                                         "type" : "string",
-                                                         "typetext" : "<string>"
-                                                      },
-                                                      "vmid" : {
-                                                         "description" : "The (unique) ID of the VM.",
-                                                         "format" : "pve-vmid",
-                                                         "minimum" : 1,
-                                                         "type" : "integer",
-                                                         "typetext" : "<integer> (1 - N)"
-                                                      }
-                                                   }
+                                          "ide[n]" : {
+                                             "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
+                                             "format" : {
+                                                "aio" : {
+                                                   "description" : "AIO type to use.",
+                                                   "enum" : [
+                                                      "native",
+                                                      "threads"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
                                                 },
-                                                "permissions" : {
-                                                   "check" : [
-                                                      "perm",
-                                                      "/vms/{vmid}",
-                                                      [
-                                                         "VM.Snapshot"
-                                                      ]
-                                                   ]
+                                                "backup" : {
+                                                   "description" : "Whether the drive should be included when making backups.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
                                                 },
-                                                "proxyto" : "node",
-                                                "returns" : {
-                                                   "type" : "object"
-                                                }
-                                             },
-                                             "PUT" : {
-                                                "description" : "Update snapshot metadata.",
-                                                "method" : "PUT",
-                                                "name" : "update_snapshot_config",
-                                                "parameters" : {
-                                                   "additionalProperties" : 0,
-                                                   "properties" : {
-                                                      "description" : {
-                                                         "description" : "A textual description or comment.",
-                                                         "optional" : 1,
-                                                         "type" : "string",
-                                                         "typetext" : "<string>"
-                                                      },
-                                                      "node" : {
-                                                         "description" : "The cluster node name.",
-                                                         "format" : "pve-node",
-                                                         "type" : "string",
-                                                         "typetext" : "<string>"
-                                                      },
-                                                      "snapname" : {
-                                                         "description" : "The name of the snapshot.",
-                                                         "format" : "pve-configid",
-                                                         "maxLength" : 40,
-                                                         "type" : "string",
-                                                         "typetext" : "<string>"
-                                                      },
-                                                      "vmid" : {
-                                                         "description" : "The (unique) ID of the VM.",
-                                                         "format" : "pve-vmid",
-                                                         "minimum" : 1,
-                                                         "type" : "integer",
-                                                         "typetext" : "<integer> (1 - N)"
-                                                      }
-                                                   }
+                                                "bps" : {
+                                                   "description" : "Maximum r/w speed in bytes per second.",
+                                                   "format_description" : "bps",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
                                                 },
-                                                "permissions" : {
-                                                   "check" : [
-                                                      "perm",
-                                                      "/vms/{vmid}",
-                                                      [
-                                                         "VM.Snapshot"
-                                                      ]
-                                                   ]
+                                                "bps_max_length" : {
+                                                   "description" : "Maximum length of I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
                                                 },
-                                                "protected" : 1,
-                                                "proxyto" : "node",
-                                                "returns" : {
-                                                   "type" : "null"
-                                                }
-                                             }
-                                          },
-                                          "leaf" : 1,
-                                          "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config",
-                                          "text" : "config"
-                                       },
-                                       {
-                                          "info" : {
-                                             "POST" : {
-                                                "description" : "Rollback VM state to specified snapshot.",
-                                                "method" : "POST",
-                                                "name" : "rollback",
-                                                "parameters" : {
-                                                   "additionalProperties" : 0,
-                                                   "properties" : {
-                                                      "node" : {
-                                                         "description" : "The cluster node name.",
-                                                         "format" : "pve-node",
-                                                         "type" : "string",
-                                                         "typetext" : "<string>"
-                                                      },
-                                                      "snapname" : {
-                                                         "description" : "The name of the snapshot.",
-                                                         "format" : "pve-configid",
-                                                         "maxLength" : 40,
-                                                         "type" : "string",
-                                                         "typetext" : "<string>"
-                                                      },
-                                                      "vmid" : {
-                                                         "description" : "The (unique) ID of the VM.",
-                                                         "format" : "pve-vmid",
-                                                         "minimum" : 1,
-                                                         "type" : "integer",
-                                                         "typetext" : "<integer> (1 - N)"
-                                                      }
-                                                   }
+                                                "bps_rd" : {
+                                                   "description" : "Maximum read speed in bytes per second.",
+                                                   "format_description" : "bps",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
                                                 },
-                                                "permissions" : {
-                                                   "check" : [
-                                                      "perm",
-                                                      "/vms/{vmid}",
-                                                      [
-                                                         "VM.Snapshot"
-                                                      ]
-                                                   ]
+                                                "bps_rd_length" : {
+                                                   "alias" : "bps_rd_max_length"
                                                 },
-                                                "protected" : 1,
-                                                "proxyto" : "node",
-                                                "returns" : {
-                                                   "description" : "the task ID.",
-                                                   "type" : "string"
-                                                }
-                                             }
-                                          },
-                                          "leaf" : 1,
-                                          "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback",
-                                          "text" : "rollback"
-                                       }
-                                    ],
-                                    "info" : {
-                                       "DELETE" : {
-                                          "description" : "Delete a VM snapshot.",
-                                          "method" : "DELETE",
-                                          "name" : "delsnapshot",
-                                          "parameters" : {
-                                             "additionalProperties" : 0,
-                                             "properties" : {
-                                                "force" : {
-                                                   "description" : "For removal from config file, even if removing disk snapshots fails.",
+                                                "bps_rd_max_length" : {
+                                                   "description" : "Maximum length of read I/O bursts in seconds.",
+                                                   "format_description" : "seconds",
+                                                   "minimum" : 1,
                                                    "optional" : 1,
-                                                   "type" : "boolean",
-                                                   "typetext" : "<boolean>"
-                                                },
-                                                "node" : {
-                                                   "description" : "The cluster node name.",
-                                                   "format" : "pve-node",
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
+                                                   "type" : "integer"
                                                 },
-                                                "snapname" : {
-                                                   "description" : "The name of the snapshot.",
-                                                   "format" : "pve-configid",
-                                                   "maxLength" : 40,
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
+                                                "bps_wr" : {
+                                                   "description" : "Maximum write speed in bytes per second.",
+                                                   "format_description" : "bps",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
                                                 },
-                                                "vmid" : {
-                                                   "description" : "The (unique) ID of the VM.",
-                                                   "format" : "pve-vmid",
+                                                "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,
-                                                   "type" : "integer",
-                                                   "typetext" : "<integer> (1 - N)"
-                                                }
-                                             }
-                                          },
-                                          "permissions" : {
-                                             "check" : [
-                                                "perm",
-                                                "/vms/{vmid}",
-                                                [
-                                                   "VM.Snapshot"
-                                                ]
-                                             ]
-                                          },
-                                          "protected" : 1,
-                                          "proxyto" : "node",
-                                          "returns" : {
-                                             "description" : "the task ID.",
-                                             "type" : "string"
-                                          }
-                                       },
-                                       "GET" : {
-                                          "description" : "",
-                                          "method" : "GET",
-                                          "name" : "snapshot_cmd_idx",
-                                          "parameters" : {
-                                             "additionalProperties" : 0,
-                                             "properties" : {
-                                                "node" : {
-                                                   "description" : "The cluster node name.",
-                                                   "format" : "pve-node",
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
+                                                   "optional" : 1,
+                                                   "type" : "integer"
                                                 },
-                                                "snapname" : {
-                                                   "description" : "The name of the snapshot.",
-                                                   "format" : "pve-configid",
-                                                   "maxLength" : 40,
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
+                                                "cache" : {
+                                                   "description" : "The drive's cache mode",
+                                                   "enum" : [
+                                                      "none",
+                                                      "writethrough",
+                                                      "writeback",
+                                                      "unsafe",
+                                                      "directsync"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
                                                 },
-                                                "vmid" : {
-                                                   "description" : "The (unique) ID of the VM.",
-                                                   "format" : "pve-vmid",
+                                                "cyls" : {
+                                                   "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "detect_zeroes" : {
+                                                   "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "discard" : {
+                                                   "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+                                                   "enum" : [
+                                                      "ignore",
+                                                      "on"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "file" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The drive's backing volume.",
+                                                   "format" : "pve-volume-id-or-qm-path",
+                                                   "format_description" : "volume",
+                                                   "type" : "string"
+                                                },
+                                                "format" : {
+                                                   "description" : "The drive's backing file's data format.",
+                                                   "enum" : [
+                                                      "raw",
+                                                      "cow",
+                                                      "qcow",
+                                                      "qed",
+                                                      "qcow2",
+                                                      "vmdk",
+                                                      "cloop"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "heads" : {
+                                                   "description" : "Force the drive's physical geometry to have a specific head count.",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "iops" : {
+                                                   "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 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,
-                                                   "type" : "integer",
-                                                   "typetext" : "<integer> (1 - N)"
-                                                }
-                                             }
-                                          },
-                                          "permissions" : {
-                                             "user" : "all"
-                                          },
-                                          "returns" : {
-                                             "items" : {
-                                                "properties" : {},
-                                                "type" : "object"
-                                             },
-                                             "links" : [
-                                                {
-                                                   "href" : "{cmd}",
-                                                   "rel" : "child"
-                                                }
-                                             ],
-                                             "type" : "array"
-                                          }
-                                       }
-                                    },
-                                    "leaf" : 0,
-                                    "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}",
-                                    "text" : "{snapname}"
-                                 }
-                              ],
-                              "info" : {
-                                 "GET" : {
-                                    "description" : "List all snapshots.",
-                                    "method" : "GET",
-                                    "name" : "snapshot_list",
-                                    "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"
-                                          ]
-                                       ]
-                                    },
-                                    "protected" : 1,
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "items" : {
-                                          "properties" : {},
-                                          "type" : "object"
-                                       },
-                                       "links" : [
-                                          {
-                                             "href" : "{name}",
-                                             "rel" : "child"
-                                          }
-                                       ],
-                                       "type" : "array"
-                                    }
-                                 },
-                                 "POST" : {
-                                    "description" : "Snapshot a VM.",
-                                    "method" : "POST",
-                                    "name" : "snapshot",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "description" : {
-                                             "description" : "A textual description or comment.",
-                                             "optional" : 1,
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "snapname" : {
-                                             "description" : "The name of the snapshot.",
-                                             "format" : "pve-configid",
-                                             "maxLength" : 40,
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "vmid" : {
-                                             "description" : "The (unique) ID of the VM.",
-                                             "format" : "pve-vmid",
-                                             "minimum" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (1 - N)"
-                                          },
-                                          "vmstate" : {
-                                             "description" : "Save the vmstate",
-                                             "optional" : 1,
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
-                                          }
-                                       }
-                                    },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/vms/{vmid}",
-                                          [
-                                             "VM.Snapshot"
-                                          ]
-                                       ]
-                                    },
-                                    "protected" : 1,
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "description" : "the task ID.",
-                                       "type" : "string"
-                                    }
-                                 }
-                              },
-                              "leaf" : 0,
-                              "path" : "/nodes/{node}/qemu/{vmid}/snapshot",
-                              "text" : "snapshot"
-                           },
-                           {
-                              "info" : {
-                                 "POST" : {
-                                    "description" : "Create a Template.",
-                                    "method" : "POST",
-                                    "name" : "template",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "disk" : {
-                                             "description" : "If you want to convert only 1 disk to base image.",
-                                             "enum" : [
-                                                "ide0",
-                                                "ide1",
-                                                "ide2",
-                                                "ide3",
-                                                "scsi0",
-                                                "scsi1",
-                                                "scsi2",
-                                                "scsi3",
-                                                "scsi4",
-                                                "scsi5",
-                                                "scsi6",
-                                                "scsi7",
-                                                "scsi8",
-                                                "scsi9",
-                                                "scsi10",
-                                                "scsi11",
-                                                "scsi12",
-                                                "scsi13",
-                                                "virtio0",
-                                                "virtio1",
-                                                "virtio2",
-                                                "virtio3",
-                                                "virtio4",
-                                                "virtio5",
-                                                "virtio6",
-                                                "virtio7",
-                                                "virtio8",
-                                                "virtio9",
-                                                "virtio10",
-                                                "virtio11",
-                                                "virtio12",
-                                                "virtio13",
-                                                "virtio14",
-                                                "virtio15",
-                                                "sata0",
-                                                "sata1",
-                                                "sata2",
-                                                "sata3",
-                                                "sata4",
-                                                "sata5",
-                                                "efidisk0"
-                                             ],
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "iops_rd" : {
+                                                   "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 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 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 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 in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_max" : {
+                                                   "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_rd" : {
+                                                   "description" : "Maximum read speed in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_rd_max" : {
+                                                   "description" : "Maximum unthrottled read pool in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_wr" : {
+                                                   "description" : "Maximum write speed in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_wr_max" : {
+                                                   "description" : "Maximum unthrottled write pool in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "media" : {
+                                                   "default" : "disk",
+                                                   "description" : "The drive's media type.",
+                                                   "enum" : [
+                                                      "cdrom",
+                                                      "disk"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "model" : {
+                                                   "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
+                                                   "format" : "urlencoded",
+                                                   "format_description" : "model",
+                                                   "maxLength" : 120,
+                                                   "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" : [
+                                                      "ignore",
+                                                      "report",
+                                                      "stop"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "secs" : {
+                                                   "description" : "Force the drive's physical geometry to have a specific sector count.",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "serial" : {
+                                                   "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+                                                   "format" : "urlencoded",
+                                                   "format_description" : "serial",
+                                                   "maxLength" : 60,
+                                                   "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",
+                                                   "format_description" : "DiskSize",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "snapshot" : {
+                                                   "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"
+                                                },
+                                                "ssd" : {
+                                                   "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "trans" : {
+                                                   "description" : "Force disk geometry bios translation mode.",
+                                                   "enum" : [
+                                                      "none",
+                                                      "lba",
+                                                      "auto"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "volume" : {
+                                                   "alias" : "file"
+                                                },
+                                                "werror" : {
+                                                   "description" : "Write error action.",
+                                                   "enum" : [
+                                                      "enospc",
+                                                      "ignore",
+                                                      "report",
+                                                      "stop"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                }
+                                             },
                                              "optional" : 1,
-                                             "type" : "string"
+                                             "type" : "string",
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
                                           },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
+                                          "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" : "<string>"
+                                             "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
                                           },
-                                          "vmid" : {
-                                             "description" : "The (unique) ID of the VM.",
-                                             "format" : "pve-vmid",
-                                             "minimum" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (1 - N)"
-                                          }
+                                          "keyboard" : {
+                                             "default" : null,
+                                             "description" : "Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.cfg' configuration file.It should not be necessary to set it.",
+                                             "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"
+                                          },
+                                          "kvm" : {
+                                             "default" : 1,
+                                             "description" : "Enable/disable KVM hardware virtualization.",
+                                             "optional" : 1,
+                                             "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",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "lock" : {
+                                             "description" : "Lock/unlock the VM.",
+                                             "enum" : [
+                                                "migrate",
+                                                "backup",
+                                                "snapshot",
+                                                "rollback"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "machine" : {
+                                             "description" : "Specifies the Qemu machine type.",
+                                             "maxLength" : 40,
+                                             "optional" : 1,
+                                             "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?|virt(?:-\\d+\\.\\d+)?)",
+                                             "type" : "string"
+                                          },
+                                          "memory" : {
+                                             "default" : 512,
+                                             "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
+                                             "minimum" : 16,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (16 - N)"
+                                          },
+                                          "migrate_downtime" : {
+                                             "default" : 0.1,
+                                             "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "number",
+                                             "typetext" : "<number> (0 - N)"
+                                          },
+                                          "migrate_speed" : {
+                                             "default" : 0,
+                                             "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "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",
+                                             "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.",
+                                             "format" : {
+                                                "bridge" : {
+                                                   "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2   Gateway\n 10.0.2.3   DNS Server\n 10.0.2.4   SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n",
+                                                   "format_description" : "bridge",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "e1000" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "e1000-82540em" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "e1000-82544gc" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "e1000-82545em" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "firewall" : {
+                                                   "description" : "Whether this interface should be protected by the firewall.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "i82551" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "i82557b" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "i82559er" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "link_down" : {
+                                                   "description" : "Whether this interface should be disconnected (like pulling the plug).",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "macaddr" : {
+                                                   "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
+                                                   "format_description" : "XX:XX:XX:XX:XX:XX",
+                                                   "optional" : 1,
+                                                   "pattern" : "(?^i:[0-9a-f]{2}(?::[0-9a-f]{2}){5})",
+                                                   "type" : "string"
+                                                },
+                                                "model" : {
+                                                   "default_key" : 1,
+                                                   "description" : "Network Card Model. The 'virtio' model provides the best performance with very low CPU overhead. If your guest does not support this driver, it is usually best to use 'e1000'.",
+                                                   "enum" : [
+                                                      "rtl8139",
+                                                      "ne2k_pci",
+                                                      "e1000",
+                                                      "pcnet",
+                                                      "virtio",
+                                                      "ne2k_isa",
+                                                      "i82551",
+                                                      "i82557b",
+                                                      "i82559er",
+                                                      "vmxnet3",
+                                                      "e1000-82540em",
+                                                      "e1000-82544gc",
+                                                      "e1000-82545em"
+                                                   ],
+                                                   "type" : "string"
+                                                },
+                                                "ne2k_isa" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "ne2k_pci" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "pcnet" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "queues" : {
+                                                   "description" : "Number of packet queues to be used on the device.",
+                                                   "maximum" : 16,
+                                                   "minimum" : 0,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "rate" : {
+                                                   "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
+                                                   "minimum" : 0,
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "rtl8139" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "tag" : {
+                                                   "description" : "VLAN tag to apply to packets on this interface.",
+                                                   "maximum" : 4094,
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "trunks" : {
+                                                   "description" : "VLAN trunks to pass through this interface.",
+                                                   "format_description" : "vlanid[;vlanid...]",
+                                                   "optional" : 1,
+                                                   "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+                                                   "type" : "string"
+                                                },
+                                                "virtio" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                },
+                                                "vmxnet3" : {
+                                                   "alias" : "macaddr",
+                                                   "keyAlias" : "model"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "numa" : {
+                                             "default" : 0,
+                                             "description" : "Enable/disable NUMA.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "numa[n]" : {
+                                             "description" : "NUMA topology.",
+                                             "format" : {
+                                                "cpus" : {
+                                                   "description" : "CPUs accessing this NUMA node.",
+                                                   "format_description" : "id[-id];...",
+                                                   "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+                                                   "type" : "string"
+                                                },
+                                                "hostnodes" : {
+                                                   "description" : "Host NUMA nodes to use.",
+                                                   "format_description" : "id[-id];...",
+                                                   "optional" : 1,
+                                                   "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
+                                                   "type" : "string"
+                                                },
+                                                "memory" : {
+                                                   "description" : "Amount of memory this NUMA node provides.",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "policy" : {
+                                                   "description" : "NUMA allocation policy.",
+                                                   "enum" : [
+                                                      "preferred",
+                                                      "bind",
+                                                      "interleave"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
+                                          },
+                                          "onboot" : {
+                                             "default" : 0,
+                                             "description" : "Specifies whether a VM will be started during system bootup.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "ostype" : {
+                                             "description" : "Specify guest operating system.",
+                                             "enum" : [
+                                                "other",
+                                                "wxp",
+                                                "w2k",
+                                                "w2k3",
+                                                "w2k8",
+                                                "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/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).",
+                                             "optional" : 1,
+                                             "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
+                                             "type" : "string",
+                                             "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+                                          },
+                                          "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",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "reboot" : {
+                                             "default" : 1,
+                                             "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "revert" : {
+                                             "description" : "Revert a pending change.",
+                                             "format" : "pve-configid-list",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "sata[n]" : {
+                                             "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
+                                             "format" : {
+                                                "aio" : {
+                                                   "description" : "AIO type to use.",
+                                                   "enum" : [
+                                                      "native",
+                                                      "threads"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "backup" : {
+                                                   "description" : "Whether the drive should be included when making backups.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "bps" : {
+                                                   "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_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_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" : [
+                                                      "none",
+                                                      "writethrough",
+                                                      "writeback",
+                                                      "unsafe",
+                                                      "directsync"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "cyls" : {
+                                                   "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "detect_zeroes" : {
+                                                   "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "discard" : {
+                                                   "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+                                                   "enum" : [
+                                                      "ignore",
+                                                      "on"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "file" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The drive's backing volume.",
+                                                   "format" : "pve-volume-id-or-qm-path",
+                                                   "format_description" : "volume",
+                                                   "type" : "string"
+                                                },
+                                                "format" : {
+                                                   "description" : "The drive's backing file's data format.",
+                                                   "enum" : [
+                                                      "raw",
+                                                      "cow",
+                                                      "qcow",
+                                                      "qed",
+                                                      "qcow2",
+                                                      "vmdk",
+                                                      "cloop"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "heads" : {
+                                                   "description" : "Force the drive's physical geometry to have a specific head count.",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "iops" : {
+                                                   "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 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 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 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 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 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 in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_max" : {
+                                                   "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_rd" : {
+                                                   "description" : "Maximum read speed in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_rd_max" : {
+                                                   "description" : "Maximum unthrottled read pool in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_wr" : {
+                                                   "description" : "Maximum write speed in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_wr_max" : {
+                                                   "description" : "Maximum unthrottled write pool in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "media" : {
+                                                   "default" : "disk",
+                                                   "description" : "The drive's media type.",
+                                                   "enum" : [
+                                                      "cdrom",
+                                                      "disk"
+                                                   ],
+                                                   "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" : [
+                                                      "ignore",
+                                                      "report",
+                                                      "stop"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "secs" : {
+                                                   "description" : "Force the drive's physical geometry to have a specific sector count.",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "serial" : {
+                                                   "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+                                                   "format" : "urlencoded",
+                                                   "format_description" : "serial",
+                                                   "maxLength" : 60,
+                                                   "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",
+                                                   "format_description" : "DiskSize",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "snapshot" : {
+                                                   "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"
+                                                },
+                                                "ssd" : {
+                                                   "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "trans" : {
+                                                   "description" : "Force disk geometry bios translation mode.",
+                                                   "enum" : [
+                                                      "none",
+                                                      "lba",
+                                                      "auto"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "volume" : {
+                                                   "alias" : "file"
+                                                },
+                                                "werror" : {
+                                                   "description" : "Write error action.",
+                                                   "enum" : [
+                                                      "enospc",
+                                                      "ignore",
+                                                      "report",
+                                                      "stop"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+                                          },
+                                          "scsi[n]" : {
+                                             "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
+                                             "format" : {
+                                                "aio" : {
+                                                   "description" : "AIO type to use.",
+                                                   "enum" : [
+                                                      "native",
+                                                      "threads"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "backup" : {
+                                                   "description" : "Whether the drive should be included when making backups.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "bps" : {
+                                                   "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_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_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" : [
+                                                      "none",
+                                                      "writethrough",
+                                                      "writeback",
+                                                      "unsafe",
+                                                      "directsync"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "cyls" : {
+                                                   "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "detect_zeroes" : {
+                                                   "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "discard" : {
+                                                   "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+                                                   "enum" : [
+                                                      "ignore",
+                                                      "on"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "file" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The drive's backing volume.",
+                                                   "format" : "pve-volume-id-or-qm-path",
+                                                   "format_description" : "volume",
+                                                   "type" : "string"
+                                                },
+                                                "format" : {
+                                                   "description" : "The drive's backing file's data format.",
+                                                   "enum" : [
+                                                      "raw",
+                                                      "cow",
+                                                      "qcow",
+                                                      "qed",
+                                                      "qcow2",
+                                                      "vmdk",
+                                                      "cloop"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "heads" : {
+                                                   "description" : "Force the drive's physical geometry to have a specific head count.",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "iops" : {
+                                                   "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 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 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 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 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 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 in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_max" : {
+                                                   "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_rd" : {
+                                                   "description" : "Maximum read speed in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_rd_max" : {
+                                                   "description" : "Maximum unthrottled read pool in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_wr" : {
+                                                   "description" : "Maximum write speed in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_wr_max" : {
+                                                   "description" : "Maximum unthrottled write pool in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "media" : {
+                                                   "default" : "disk",
+                                                   "description" : "The drive's media type.",
+                                                   "enum" : [
+                                                      "cdrom",
+                                                      "disk"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "queues" : {
+                                                   "description" : "Number of queues.",
+                                                   "minimum" : 2,
+                                                   "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,
+                                                   "type" : "integer"
+                                                },
+                                                "serial" : {
+                                                   "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+                                                   "format" : "urlencoded",
+                                                   "format_description" : "serial",
+                                                   "maxLength" : 60,
+                                                   "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",
+                                                   "format_description" : "DiskSize",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "snapshot" : {
+                                                   "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"
+                                                },
+                                                "ssd" : {
+                                                   "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "trans" : {
+                                                   "description" : "Force disk geometry bios translation mode.",
+                                                   "enum" : [
+                                                      "none",
+                                                      "lba",
+                                                      "auto"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "volume" : {
+                                                   "alias" : "file"
+                                                },
+                                                "werror" : {
+                                                   "description" : "Write error action.",
+                                                   "enum" : [
+                                                      "enospc",
+                                                      "ignore",
+                                                      "report",
+                                                      "stop"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+                                          },
+                                          "scsihw" : {
+                                             "default" : "lsi",
+                                             "description" : "SCSI controller model",
+                                             "enum" : [
+                                                "lsi",
+                                                "lsi53c810",
+                                                "virtio-scsi-pci",
+                                                "virtio-scsi-single",
+                                                "megasas",
+                                                "pvscsi"
+                                             ],
+                                             "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,
+                                             "pattern" : "(/dev/.+|socket)",
+                                             "type" : "string",
+                                             "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
+                                          },
+                                          "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. Auto-ballooning is done by pvestatd.",
+                                             "maximum" : 50000,
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (0 - 50000)"
+                                          },
+                                          "skiplock" : {
+                                             "description" : "Ignore locks - only root is allowed to use this option.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "smbios1" : {
+                                             "description" : "Specify SMBIOS type 1 fields.",
+                                             "format" : "pve-qm-smbios1",
+                                             "maxLength" : 256,
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[family=<string>] [,manufacturer=<string>] [,product=<string>] [,serial=<string>] [,sku=<string>] [,uuid=<UUID>] [,version=<string>]"
+                                          },
+                                          "smp" : {
+                                             "default" : 1,
+                                             "description" : "The number of CPUs. Please use option -sockets instead.",
+                                             "minimum" : 1,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          },
+                                          "sockets" : {
+                                             "default" : 1,
+                                             "description" : "The number of CPU sockets.",
+                                             "minimum" : 1,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "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",
+                                             "description" : "Set the initial date of the real time clock. Valid format for date are: 'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
+                                             "optional" : 1,
+                                             "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
+                                             "type" : "string",
+                                             "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
+                                          },
+                                          "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.",
+                                             "format" : "pve-startup-order",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
+                                          },
+                                          "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",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "template" : {
+                                             "default" : 0,
+                                             "description" : "Enable/disable Template.",
+                                             "optional" : 1,
+                                             "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",
+                                             "typetext" : "<string>"
+                                          },
+                                          "usb[n]" : {
+                                             "description" : "Configure an USB device (n is 0 to 4).",
+                                             "format" : {
+                                                "host" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
+                                                   "format" : "pve-qm-usb-device",
+                                                   "format_description" : "HOSTUSBDEVICE|spice",
+                                                   "type" : "string"
+                                                },
+                                                "usb3" : {
+                                                   "default" : 0,
+                                                   "description" : "Specifies whether if given host option is a USB3 device or port (this does currently not work reliably with spice redirection and is then ignored).",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
+                                          },
+                                          "vcpus" : {
+                                             "default" : 0,
+                                             "description" : "Number of hotplugged vcpus.",
+                                             "minimum" : 1,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          },
+                                          "vga" : {
+                                             "description" : "Configure the VGA hardware.",
+                                             "format" : {
+                                                "memory" : {
+                                                   "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
+                                                   "maximum" : 512,
+                                                   "minimum" : 4,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "type" : {
+                                                   "default" : "std",
+                                                   "default_key" : 1,
+                                                   "description" : "Select the VGA type.",
+                                                   "enum" : [
+                                                      "cirrus",
+                                                      "qxl",
+                                                      "qxl2",
+                                                      "qxl3",
+                                                      "qxl4",
+                                                      "serial0",
+                                                      "serial1",
+                                                      "serial2",
+                                                      "serial3",
+                                                      "std",
+                                                      "virtio",
+                                                      "vmware"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[[type=]<enum>] [,memory=<integer>]",
+                                             "verbose_description" : "Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is 'std' for all OS types besides some Windows versions (XP and older) which use 'cirrus'. The 'qxl' option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays them self.\nYou can also run without any graphic card, using a serial device as terminal."
+                                          },
+                                          "virtio[n]" : {
+                                             "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
+                                             "format" : {
+                                                "aio" : {
+                                                   "description" : "AIO type to use.",
+                                                   "enum" : [
+                                                      "native",
+                                                      "threads"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "backup" : {
+                                                   "description" : "Whether the drive should be included when making backups.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "bps" : {
+                                                   "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_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_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" : [
+                                                      "none",
+                                                      "writethrough",
+                                                      "writeback",
+                                                      "unsafe",
+                                                      "directsync"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "cyls" : {
+                                                   "description" : "Force the drive's physical geometry to have a specific cylinder count.",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "detect_zeroes" : {
+                                                   "description" : "Controls whether to detect and try to optimize writes of zeroes.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "discard" : {
+                                                   "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
+                                                   "enum" : [
+                                                      "ignore",
+                                                      "on"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "file" : {
+                                                   "default_key" : 1,
+                                                   "description" : "The drive's backing volume.",
+                                                   "format" : "pve-volume-id-or-qm-path",
+                                                   "format_description" : "volume",
+                                                   "type" : "string"
+                                                },
+                                                "format" : {
+                                                   "description" : "The drive's backing file's data format.",
+                                                   "enum" : [
+                                                      "raw",
+                                                      "cow",
+                                                      "qcow",
+                                                      "qed",
+                                                      "qcow2",
+                                                      "vmdk",
+                                                      "cloop"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "heads" : {
+                                                   "description" : "Force the drive's physical geometry to have a specific head count.",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "iops" : {
+                                                   "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 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 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 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 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 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 in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_max" : {
+                                                   "description" : "Maximum unthrottled r/w pool in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_rd" : {
+                                                   "description" : "Maximum read speed in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_rd_max" : {
+                                                   "description" : "Maximum unthrottled read pool in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_wr" : {
+                                                   "description" : "Maximum write speed in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "mbps_wr_max" : {
+                                                   "description" : "Maximum unthrottled write pool in megabytes per second.",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "media" : {
+                                                   "default" : "disk",
+                                                   "description" : "The drive's media type.",
+                                                   "enum" : [
+                                                      "cdrom",
+                                                      "disk"
+                                                   ],
+                                                   "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" : [
+                                                      "ignore",
+                                                      "report",
+                                                      "stop"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "secs" : {
+                                                   "description" : "Force the drive's physical geometry to have a specific sector count.",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "serial" : {
+                                                   "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
+                                                   "format" : "urlencoded",
+                                                   "format_description" : "serial",
+                                                   "maxLength" : 60,
+                                                   "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",
+                                                   "format_description" : "DiskSize",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "snapshot" : {
+                                                   "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"
+                                                },
+                                                "trans" : {
+                                                   "description" : "Force disk geometry bios translation mode.",
+                                                   "enum" : [
+                                                      "none",
+                                                      "lba",
+                                                      "auto"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "volume" : {
+                                                   "alias" : "file"
+                                                },
+                                                "werror" : {
+                                                   "description" : "Write error action.",
+                                                   "enum" : [
+                                                      "enospc",
+                                                      "ignore",
+                                                      "report",
+                                                      "stop"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+                                          },
+                                          "vmgenid" : {
+                                             "default" : "1 (autogenerated)",
+                                             "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
+                                             "format_description" : "UUID",
+                                             "optional" : 1,
+                                             "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
+                                             "type" : "string",
+                                             "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done throug API/CLI create or update methods, but not when manually editing the config file."
+                                          },
+                                          "vmid" : {
+                                             "description" : "The (unique) ID of the VM.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "type" : "integer",
+                                             "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=<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)"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/vms/{vmid}",
+                                          [
+                                             "VM.Config.Disk",
+                                             "VM.Config.CDROM",
+                                             "VM.Config.CPU",
+                                             "VM.Config.Memory",
+                                             "VM.Config.Network",
+                                             "VM.Config.HWType",
+                                             "VM.Config.Options"
+                                          ],
+                                          "any",
+                                          1
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "null"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/qemu/{vmid}/config",
+                              "text" : "config"
+                           },
+                           {
+                              "info" : {
+                                 "GET" : {
+                                    "description" : "Get virtual machine configuration, including pending changes.",
+                                    "method" : "GET",
+                                    "name" : "vm_pending",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "vmid" : {
+                                             "description" : "The (unique) ID of the VM.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/vms/{vmid}",
+                                          [
+                                             "VM.Audit"
+                                          ]
+                                       ]
+                                    },
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "items" : {
+                                          "properties" : {
+                                             "delete" : {
+                                                "description" : "Indicates a pending delete request if present and not 0. The value 2 indicates a force-delete request.",
+                                                "maximum" : 2,
+                                                "minimum" : 0,
+                                                "optional" : 1,
+                                                "type" : "integer"
+                                             },
+                                             "key" : {
+                                                "description" : "Configuration option name.",
+                                                "type" : "string"
+                                             },
+                                             "pending" : {
+                                                "description" : "Pending value.",
+                                                "optional" : 1,
+                                                "type" : "string"
+                                             },
+                                             "value" : {
+                                                "description" : "Current value.",
+                                                "optional" : 1,
+                                                "type" : "string"
+                                             }
+                                          },
+                                          "type" : "object"
+                                       },
+                                       "type" : "array"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/qemu/{vmid}/pending",
+                              "text" : "pending"
+                           },
+                           {
+                              "info" : {
+                                 "PUT" : {
+                                    "description" : "Unlink/delete disk images.",
+                                    "method" : "PUT",
+                                    "name" : "unlink",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "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",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "idlist" : {
+                                             "description" : "A list of disk IDs you want to delete.",
+                                             "format" : "pve-configid-list",
+                                             "type" : "string",
+                                             "typetext" : "<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.Disk"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "null"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/qemu/{vmid}/unlink",
+                              "text" : "unlink"
+                           },
+                           {
+                              "info" : {
+                                 "POST" : {
+                                    "description" : "Creates a TCP VNC proxy connections.",
+                                    "method" : "POST",
+                                    "name" : "vncproxy",
+                                    "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)"
+                                          },
+                                          "websocket" : {
+                                             "description" : "starts websockify instead of vncproxy",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/vms/{vmid}",
+                                          [
+                                             "VM.Console"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "returns" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "cert" : {
+                                             "type" : "string"
+                                          },
+                                          "port" : {
+                                             "type" : "integer"
+                                          },
+                                          "ticket" : {
+                                             "type" : "string"
+                                          },
+                                          "upid" : {
+                                             "type" : "string"
+                                          },
+                                          "user" : {
+                                             "type" : "string"
+                                          }
+                                       }
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "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" : {
+                                    "description" : "Opens a weksocket for VNC traffic.",
+                                    "method" : "GET",
+                                    "name" : "vncwebsocket",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "port" : {
+                                             "description" : "Port number returned by previous vncproxy call.",
+                                             "maximum" : 5999,
+                                             "minimum" : 5900,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (5900 - 5999)"
+                                          },
+                                          "vmid" : {
+                                             "description" : "The (unique) ID of the VM.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          },
+                                          "vncticket" : {
+                                             "description" : "Ticket from previous call to vncproxy.",
+                                             "maxLength" : 512,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/vms/{vmid}",
+                                          [
+                                             "VM.Console"
+                                          ]
+                                       ],
+                                       "description" : "You also need to pass a valid ticket (vncticket)."
+                                    },
+                                    "returns" : {
+                                       "properties" : {
+                                          "port" : {
+                                             "type" : "string"
+                                          }
+                                       },
+                                       "type" : "object"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/qemu/{vmid}/vncwebsocket",
+                              "text" : "vncwebsocket"
+                           },
+                           {
+                              "info" : {
+                                 "POST" : {
+                                    "description" : "Returns a SPICE configuration to connect to the VM.",
+                                    "method" : "POST",
+                                    "name" : "spiceproxy",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "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 reasonable 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",
+                                             "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,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "additionalProperties" : 1,
+                                       "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
+                                       "properties" : {
+                                          "host" : {
+                                             "type" : "string"
+                                          },
+                                          "password" : {
+                                             "type" : "string"
+                                          },
+                                          "proxy" : {
+                                             "type" : "string"
+                                          },
+                                          "tls-port" : {
+                                             "type" : "integer"
+                                          },
+                                          "type" : {
+                                             "type" : "string"
+                                          }
+                                       }
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/qemu/{vmid}/spiceproxy",
+                              "text" : "spiceproxy"
+                           },
+                           {
+                              "children" : [
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "Get virtual machine status.",
+                                          "method" : "GET",
+                                          "name" : "vm_status",
+                                          "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"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "properties" : {
+                                                "agent" : {
+                                                   "description" : "Qemu GuestAgent enabled in config.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "cpus" : {
+                                                   "description" : "Maximum usable CPUs.",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "ha" : {
+                                                   "description" : "HA manager service status.",
+                                                   "type" : "object"
+                                                },
+                                                "maxdisk" : {
+                                                   "description" : "Root disk size in bytes.",
+                                                   "optional" : 1,
+                                                   "renderer" : "bytes",
+                                                   "type" : "integer"
+                                                },
+                                                "maxmem" : {
+                                                   "description" : "Maximum memory in bytes.",
+                                                   "optional" : 1,
+                                                   "renderer" : "bytes",
+                                                   "type" : "integer"
+                                                },
+                                                "name" : {
+                                                   "description" : "VM name.",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "pid" : {
+                                                   "description" : "PID of running qemu process.",
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "qmpstatus" : {
+                                                   "description" : "Qemu QMP agent status.",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "spice" : {
+                                                   "description" : "Qemu VGA configuration supports spice.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "status" : {
+                                                   "description" : "Qemu process status.",
+                                                   "enum" : [
+                                                      "stopped",
+                                                      "running"
+                                                   ],
+                                                   "type" : "string"
+                                                },
+                                                "uptime" : {
+                                                   "description" : "Uptime.",
+                                                   "optional" : 1,
+                                                   "renderer" : "duration",
+                                                   "type" : "integer"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer"
+                                                }
+                                             },
+                                             "type" : "object"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/status/current",
+                                    "text" : "current"
+                                 },
+                                 {
+                                    "info" : {
+                                       "POST" : {
+                                          "description" : "Start virtual machine.",
+                                          "method" : "POST",
+                                          "name" : "vm_start",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "machine" : {
+                                                   "description" : "Specifies the Qemu machine type.",
+                                                   "maxLength" : 40,
+                                                   "optional" : 1,
+                                                   "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?|virt(?:-\\d+\\.\\d+)?)",
+                                                   "type" : "string"
+                                                },
+                                                "migratedfrom" : {
+                                                   "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",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "skiplock" : {
+                                                   "description" : "Ignore locks - only root is allowed to use this option.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
+                                                "stateuri" : {
+                                                   "description" : "Some command save/restore state from this location.",
+                                                   "maxLength" : 128,
+                                                   "optional" : 1,
+                                                   "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)"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.PowerMgmt"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "type" : "string"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/status/start",
+                                    "text" : "start"
+                                 },
+                                 {
+                                    "info" : {
+                                       "POST" : {
+                                          "description" : "Stop virtual machine. The qemu process will exit immediately. Thisis akin to pulling the power plug of a running computer and may damage the VM data",
+                                          "method" : "POST",
+                                          "name" : "vm_stop",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "keepActive" : {
+                                                   "default" : 0,
+                                                   "description" : "Do not deactivate storage volumes.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
+                                                "migratedfrom" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "skiplock" : {
+                                                   "description" : "Ignore locks - only root is allowed to use this option.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
+                                                "timeout" : {
+                                                   "description" : "Wait maximal timeout seconds.",
+                                                   "minimum" : 0,
+                                                   "optional" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (0 - N)"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.PowerMgmt"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "type" : "string"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/status/stop",
+                                    "text" : "stop"
+                                 },
+                                 {
+                                    "info" : {
+                                       "POST" : {
+                                          "description" : "Reset virtual machine.",
+                                          "method" : "POST",
+                                          "name" : "vm_reset",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "skiplock" : {
+                                                   "description" : "Ignore locks - only root is allowed to use this option.",
+                                                   "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.PowerMgmt"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "type" : "string"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/status/reset",
+                                    "text" : "reset"
+                                 },
+                                 {
+                                    "info" : {
+                                       "POST" : {
+                                          "description" : "Shutdown virtual machine. This is similar to pressing the power button on a physical machine.This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown.",
+                                          "method" : "POST",
+                                          "name" : "vm_shutdown",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "forceStop" : {
+                                                   "default" : 0,
+                                                   "description" : "Make sure the VM stops.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
+                                                "keepActive" : {
+                                                   "default" : 0,
+                                                   "description" : "Do not deactivate storage volumes.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "skiplock" : {
+                                                   "description" : "Ignore locks - only root is allowed to use this option.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
+                                                "timeout" : {
+                                                   "description" : "Wait maximal timeout seconds.",
+                                                   "minimum" : 0,
+                                                   "optional" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (0 - N)"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer",
+                                                   "typetext" : "<integer> (1 - N)"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/vms/{vmid}",
+                                                [
+                                                   "VM.PowerMgmt"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "type" : "string"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/status/shutdown",
+                                    "text" : "shutdown"
+                                 },
+                                 {
+                                    "info" : {
+                                       "POST" : {
+                                          "description" : "Suspend virtual machine.",
+                                          "method" : "POST",
+                                          "name" : "vm_suspend",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "skiplock" : {
+                                                   "description" : "Ignore locks - only root is allowed to use this option.",
+                                                   "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.PowerMgmt"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "type" : "string"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/status/suspend",
+                                    "text" : "suspend"
+                                 },
+                                 {
+                                    "info" : {
+                                       "POST" : {
+                                          "description" : "Resume virtual machine.",
+                                          "method" : "POST",
+                                          "name" : "vm_resume",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "nocheck" : {
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "skiplock" : {
+                                                   "description" : "Ignore locks - only root is allowed to use this option.",
+                                                   "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.PowerMgmt"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "type" : "string"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/status/resume",
+                                    "text" : "resume"
+                                 }
+                              ],
+                              "info" : {
+                                 "GET" : {
+                                    "description" : "Directory index",
+                                    "method" : "GET",
+                                    "name" : "vmcmdidx",
+                                    "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"
+                                    },
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "items" : {
+                                          "properties" : {
+                                             "subdir" : {
+                                                "type" : "string"
+                                             }
+                                          },
+                                          "type" : "object"
+                                       },
+                                       "links" : [
+                                          {
+                                             "href" : "{subdir}",
+                                             "rel" : "child"
+                                          }
+                                       ],
+                                       "type" : "array"
+                                    }
+                                 }
+                              },
+                              "leaf" : 0,
+                              "path" : "/nodes/{node}/qemu/{vmid}/status",
+                              "text" : "status"
+                           },
+                           {
+                              "info" : {
+                                 "PUT" : {
+                                    "description" : "Send key event to virtual machine.",
+                                    "method" : "PUT",
+                                    "name" : "vm_sendkey",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "key" : {
+                                             "description" : "The key (qemu monitor encoding).",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "skiplock" : {
+                                             "description" : "Ignore locks - only root is allowed to use this option.",
+                                             "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.Console"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "null"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/qemu/{vmid}/sendkey",
+                              "text" : "sendkey"
+                           },
+                           {
+                              "info" : {
+                                 "GET" : {
+                                    "description" : "Check if feature for virtual machine is available.",
+                                    "method" : "GET",
+                                    "name" : "vm_feature",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "feature" : {
+                                             "description" : "Feature to check.",
+                                             "enum" : [
+                                                "snapshot",
+                                                "clone",
+                                                "copy"
+                                             ],
+                                             "type" : "string"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "snapname" : {
+                                             "description" : "The name of the snapshot.",
+                                             "format" : "pve-configid",
+                                             "maxLength" : 40,
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "vmid" : {
+                                             "description" : "The (unique) ID of the VM.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/vms/{vmid}",
+                                          [
+                                             "VM.Audit"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "properties" : {
+                                          "hasFeature" : {
+                                             "type" : "boolean"
+                                          },
+                                          "nodes" : {
+                                             "items" : {
+                                                "type" : "string"
+                                             },
+                                             "type" : "array"
+                                          }
+                                       },
+                                       "type" : "object"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/qemu/{vmid}/feature",
+                              "text" : "feature"
+                           },
+                           {
+                              "info" : {
+                                 "POST" : {
+                                    "description" : "Create a copy of virtual machine/template.",
+                                    "method" : "POST",
+                                    "name" : "clone_vm",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "description" : {
+                                             "description" : "Description for the new VM.",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "format" : {
+                                             "description" : "Target format for file storage. Only valid for full clone.",
+                                             "enum" : [
+                                                "raw",
+                                                "qcow2",
+                                                "vmdk"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "full" : {
+                                             "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",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "name" : {
+                                             "description" : "Set a name for the new VM.",
+                                             "format" : "dns-name",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "newid" : {
+                                             "description" : "VMID for the clone.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "pool" : {
+                                             "description" : "Add the new VM to the specified pool.",
+                                             "format" : "pve-poolid",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "snapname" : {
+                                             "description" : "The name of the snapshot.",
+                                             "format" : "pve-configid",
+                                             "maxLength" : 40,
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "storage" : {
+                                             "description" : "Target storage for full clone.",
+                                             "format" : "pve-storage-id",
+                                             "optional" : 1,
+                                             "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)"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "and",
+                                          [
+                                             "perm",
+                                             "/vms/{vmid}",
+                                             [
+                                                "VM.Clone"
+                                             ]
+                                          ],
+                                          [
+                                             "or",
+                                             [
+                                                "perm",
+                                                "/vms/{newid}",
+                                                [
+                                                   "VM.Allocate"
+                                                ]
+                                             ],
+                                             [
+                                                "perm",
+                                                "/pool/{pool}",
+                                                [
+                                                   "VM.Allocate"
+                                                ],
+                                                "require_param",
+                                                "pool"
+                                             ]
+                                          ]
+                                       ],
+                                       "description" : "You need 'VM.Clone' permissions on /vms/{vmid}, and 'VM.Allocate' permissions on /vms/{newid} (or on the VM pool /pool/{pool}). You also need 'Datastore.AllocateSpace' on any used storage."
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/qemu/{vmid}/clone",
+                              "text" : "clone"
+                           },
+                           {
+                              "info" : {
+                                 "POST" : {
+                                    "description" : "Move volume to different storage.",
+                                    "method" : "POST",
+                                    "name" : "move_vm_disk",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "delete" : {
+                                             "default" : 0,
+                                             "description" : "Delete the original disk after successful copy. By default the original disk is kept as unused disk.",
+                                             "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>"
+                                          },
+                                          "disk" : {
+                                             "description" : "The disk you want to move.",
+                                             "enum" : [
+                                                "ide0",
+                                                "ide1",
+                                                "ide2",
+                                                "ide3",
+                                                "scsi0",
+                                                "scsi1",
+                                                "scsi2",
+                                                "scsi3",
+                                                "scsi4",
+                                                "scsi5",
+                                                "scsi6",
+                                                "scsi7",
+                                                "scsi8",
+                                                "scsi9",
+                                                "scsi10",
+                                                "scsi11",
+                                                "scsi12",
+                                                "scsi13",
+                                                "virtio0",
+                                                "virtio1",
+                                                "virtio2",
+                                                "virtio3",
+                                                "virtio4",
+                                                "virtio5",
+                                                "virtio6",
+                                                "virtio7",
+                                                "virtio8",
+                                                "virtio9",
+                                                "virtio10",
+                                                "virtio11",
+                                                "virtio12",
+                                                "virtio13",
+                                                "virtio14",
+                                                "virtio15",
+                                                "sata0",
+                                                "sata1",
+                                                "sata2",
+                                                "sata3",
+                                                "sata4",
+                                                "sata5",
+                                                "efidisk0"
+                                             ],
+                                             "type" : "string"
+                                          },
+                                          "format" : {
+                                             "description" : "Target Format.",
+                                             "enum" : [
+                                                "raw",
+                                                "qcow2",
+                                                "vmdk"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "storage" : {
+                                             "description" : "Target storage.",
+                                             "format" : "pve-storage-id",
+                                             "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" : [
+                                          "and",
+                                          [
+                                             "perm",
+                                             "/vms/{vmid}",
+                                             [
+                                                "VM.Config.Disk"
+                                             ]
+                                          ],
+                                          [
+                                             "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}/qemu/{vmid}/move_disk",
+                              "text" : "move_disk"
+                           },
+                           {
+                              "info" : {
+                                 "POST" : {
+                                    "description" : "Migrate virtual machine. Creates a new migration task.",
+                                    "method" : "POST",
+                                    "name" : "migrate_vm",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "force" : {
+                                             "description" : "Allow to migrate VMs which use local devices. Only root may use this option.",
+                                             "optional" : 1,
+                                             "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",
+                                             "typetext" : "<string>"
+                                          },
+                                          "online" : {
+                                             "description" : "Use online/live migration.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "target" : {
+                                             "description" : "Target node.",
+                                             "format" : "pve-node",
+                                             "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)"
+                                          },
+                                          "with-local-disks" : {
+                                             "description" : "Enable live storage migration for local disk",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/vms/{vmid}",
+                                          [
+                                             "VM.Migrate"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "description" : "the task ID.",
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/qemu/{vmid}/migrate",
+                              "text" : "migrate"
+                           },
+                           {
+                              "info" : {
+                                 "POST" : {
+                                    "description" : "Execute Qemu monitor commands.",
+                                    "method" : "POST",
+                                    "name" : "monitor",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "command" : {
+                                             "description" : "The monitor command.",
+                                             "type" : "string",
+                                             "typetext" : "<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"
+                                          ]
+                                       ],
+                                       "description" : "Sys.Modify is required for (sub)commands which are not read-only ('info *' and 'help')"
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/qemu/{vmid}/monitor",
+                              "text" : "monitor"
+                           },
+                           {
+                              "info" : {
+                                 "PUT" : {
+                                    "description" : "Extend volume size.",
+                                    "method" : "PUT",
+                                    "name" : "resize_vm",
+                                    "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>"
+                                          },
+                                          "disk" : {
+                                             "description" : "The disk you want to resize.",
+                                             "enum" : [
+                                                "ide0",
+                                                "ide1",
+                                                "ide2",
+                                                "ide3",
+                                                "scsi0",
+                                                "scsi1",
+                                                "scsi2",
+                                                "scsi3",
+                                                "scsi4",
+                                                "scsi5",
+                                                "scsi6",
+                                                "scsi7",
+                                                "scsi8",
+                                                "scsi9",
+                                                "scsi10",
+                                                "scsi11",
+                                                "scsi12",
+                                                "scsi13",
+                                                "virtio0",
+                                                "virtio1",
+                                                "virtio2",
+                                                "virtio3",
+                                                "virtio4",
+                                                "virtio5",
+                                                "virtio6",
+                                                "virtio7",
+                                                "virtio8",
+                                                "virtio9",
+                                                "virtio10",
+                                                "virtio11",
+                                                "virtio12",
+                                                "virtio13",
+                                                "virtio14",
+                                                "virtio15",
+                                                "sata0",
+                                                "sata1",
+                                                "sata2",
+                                                "sata3",
+                                                "sata4",
+                                                "sata5",
+                                                "efidisk0"
+                                             ],
+                                             "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"
+                                          },
+                                          "skiplock" : {
+                                             "description" : "Ignore locks - only root is allowed to use this option.",
+                                             "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.Disk"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "null"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/qemu/{vmid}/resize",
+                              "text" : "resize"
+                           },
+                           {
+                              "children" : [
+                                 {
+                                    "children" : [
+                                       {
+                                          "info" : {
+                                             "GET" : {
+                                                "description" : "Get snapshot configuration",
+                                                "method" : "GET",
+                                                "name" : "get_snapshot_config",
+                                                "parameters" : {
+                                                   "additionalProperties" : 0,
+                                                   "properties" : {
+                                                      "node" : {
+                                                         "description" : "The cluster node name.",
+                                                         "format" : "pve-node",
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "snapname" : {
+                                                         "description" : "The name of the snapshot.",
+                                                         "format" : "pve-configid",
+                                                         "maxLength" : 40,
+                                                         "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.Snapshot",
+                                                         "VM.Snapshot.Rollback"
+                                                      ],
+                                                      "any",
+                                                      1
+                                                   ]
+                                                },
+                                                "proxyto" : "node",
+                                                "returns" : {
+                                                   "type" : "object"
+                                                }
+                                             },
+                                             "PUT" : {
+                                                "description" : "Update snapshot metadata.",
+                                                "method" : "PUT",
+                                                "name" : "update_snapshot_config",
+                                                "parameters" : {
+                                                   "additionalProperties" : 0,
+                                                   "properties" : {
+                                                      "description" : {
+                                                         "description" : "A textual description or comment.",
+                                                         "optional" : 1,
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "node" : {
+                                                         "description" : "The cluster node name.",
+                                                         "format" : "pve-node",
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "snapname" : {
+                                                         "description" : "The name of the snapshot.",
+                                                         "format" : "pve-configid",
+                                                         "maxLength" : 40,
+                                                         "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.Snapshot"
+                                                      ]
+                                                   ]
+                                                },
+                                                "protected" : 1,
+                                                "proxyto" : "node",
+                                                "returns" : {
+                                                   "type" : "null"
+                                                }
+                                             }
+                                          },
+                                          "leaf" : 1,
+                                          "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config",
+                                          "text" : "config"
+                                       },
+                                       {
+                                          "info" : {
+                                             "POST" : {
+                                                "description" : "Rollback VM state to specified snapshot.",
+                                                "method" : "POST",
+                                                "name" : "rollback",
+                                                "parameters" : {
+                                                   "additionalProperties" : 0,
+                                                   "properties" : {
+                                                      "node" : {
+                                                         "description" : "The cluster node name.",
+                                                         "format" : "pve-node",
+                                                         "type" : "string",
+                                                         "typetext" : "<string>"
+                                                      },
+                                                      "snapname" : {
+                                                         "description" : "The name of the snapshot.",
+                                                         "format" : "pve-configid",
+                                                         "maxLength" : 40,
+                                                         "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.Snapshot",
+                                                         "VM.Snapshot.Rollback"
+                                                      ],
+                                                      "any",
+                                                      1
+                                                   ]
+                                                },
+                                                "protected" : 1,
+                                                "proxyto" : "node",
+                                                "returns" : {
+                                                   "description" : "the task ID.",
+                                                   "type" : "string"
+                                                }
+                                             }
+                                          },
+                                          "leaf" : 1,
+                                          "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback",
+                                          "text" : "rollback"
+                                       }
+                                    ],
+                                    "info" : {
+                                       "DELETE" : {
+                                          "description" : "Delete a VM snapshot.",
+                                          "method" : "DELETE",
+                                          "name" : "delsnapshot",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "force" : {
+                                                   "description" : "For removal from config file, even if removing disk snapshots fails.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "snapname" : {
+                                                   "description" : "The name of the snapshot.",
+                                                   "format" : "pve-configid",
+                                                   "maxLength" : 40,
+                                                   "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.Snapshot"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "description" : "the task ID.",
+                                             "type" : "string"
+                                          }
+                                       },
+                                       "GET" : {
+                                          "description" : "",
+                                          "method" : "GET",
+                                          "name" : "snapshot_cmd_idx",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "snapname" : {
+                                                   "description" : "The name of the snapshot.",
+                                                   "format" : "pve-configid",
+                                                   "maxLength" : 40,
+                                                   "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" : "{cmd}",
+                                                   "rel" : "child"
+                                                }
+                                             ],
+                                             "type" : "array"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 0,
+                                    "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}",
+                                    "text" : "{snapname}"
+                                 }
+                              ],
+                              "info" : {
+                                 "GET" : {
+                                    "description" : "List all snapshots.",
+                                    "method" : "GET",
+                                    "name" : "snapshot_list",
+                                    "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"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "items" : {
+                                          "properties" : {
+                                             "description" : {
+                                                "description" : "Snapshot description.",
+                                                "type" : "string"
+                                             },
+                                             "name" : {
+                                                "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
+                                                "type" : "string"
+                                             },
+                                             "parent" : {
+                                                "description" : "Parent snapshot identifier.",
+                                                "optional" : 1,
+                                                "type" : "string"
+                                             },
+                                             "snaptime" : {
+                                                "description" : "Snapshot creation time",
+                                                "optional" : 1,
+                                                "renderer" : "timestamp",
+                                                "type" : "integer"
+                                             },
+                                             "vmstate" : {
+                                                "description" : "Snapshot includes RAM.",
+                                                "optional" : 1,
+                                                "type" : "boolean"
+                                             }
+                                          },
+                                          "type" : "object"
+                                       },
+                                       "links" : [
+                                          {
+                                             "href" : "{name}",
+                                             "rel" : "child"
+                                          }
+                                       ],
+                                       "type" : "array"
+                                    }
+                                 },
+                                 "POST" : {
+                                    "description" : "Snapshot a VM.",
+                                    "method" : "POST",
+                                    "name" : "snapshot",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "description" : {
+                                             "description" : "A textual description or comment.",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "snapname" : {
+                                             "description" : "The name of the snapshot.",
+                                             "format" : "pve-configid",
+                                             "maxLength" : 40,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "vmid" : {
+                                             "description" : "The (unique) ID of the VM.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          },
+                                          "vmstate" : {
+                                             "description" : "Save the vmstate",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/vms/{vmid}",
+                                          [
+                                             "VM.Snapshot"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "description" : "the task ID.",
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "leaf" : 0,
+                              "path" : "/nodes/{node}/qemu/{vmid}/snapshot",
+                              "text" : "snapshot"
+                           },
+                           {
+                              "info" : {
+                                 "POST" : {
+                                    "description" : "Create a Template.",
+                                    "method" : "POST",
+                                    "name" : "template",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "disk" : {
+                                             "description" : "If you want to convert only 1 disk to base image.",
+                                             "enum" : [
+                                                "ide0",
+                                                "ide1",
+                                                "ide2",
+                                                "ide3",
+                                                "scsi0",
+                                                "scsi1",
+                                                "scsi2",
+                                                "scsi3",
+                                                "scsi4",
+                                                "scsi5",
+                                                "scsi6",
+                                                "scsi7",
+                                                "scsi8",
+                                                "scsi9",
+                                                "scsi10",
+                                                "scsi11",
+                                                "scsi12",
+                                                "scsi13",
+                                                "virtio0",
+                                                "virtio1",
+                                                "virtio2",
+                                                "virtio3",
+                                                "virtio4",
+                                                "virtio5",
+                                                "virtio6",
+                                                "virtio7",
+                                                "virtio8",
+                                                "virtio9",
+                                                "virtio10",
+                                                "virtio11",
+                                                "virtio12",
+                                                "virtio13",
+                                                "virtio14",
+                                                "virtio15",
+                                                "sata0",
+                                                "sata1",
+                                                "sata2",
+                                                "sata3",
+                                                "sata4",
+                                                "sata5",
+                                                "efidisk0"
+                                             ],
+                                             "optional" : 1,
+                                             "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" : {
@@ -11783,7 +16570,60 @@ var pveapi = [
                         "proxyto" : "node",
                         "returns" : {
                            "items" : {
-                              "properties" : {},
+                              "properties" : {
+                                 "cpus" : {
+                                    "description" : "Maximum usable CPUs.",
+                                    "optional" : 1,
+                                    "type" : "number"
+                                 },
+                                 "maxdisk" : {
+                                    "description" : "Root disk size in bytes.",
+                                    "optional" : 1,
+                                    "renderer" : "bytes",
+                                    "type" : "integer"
+                                 },
+                                 "maxmem" : {
+                                    "description" : "Maximum memory in bytes.",
+                                    "optional" : 1,
+                                    "renderer" : "bytes",
+                                    "type" : "integer"
+                                 },
+                                 "name" : {
+                                    "description" : "VM name.",
+                                    "optional" : 1,
+                                    "type" : "string"
+                                 },
+                                 "pid" : {
+                                    "description" : "PID of running qemu process.",
+                                    "optional" : 1,
+                                    "type" : "integer"
+                                 },
+                                 "qmpstatus" : {
+                                    "description" : "Qemu QMP agent status.",
+                                    "optional" : 1,
+                                    "type" : "string"
+                                 },
+                                 "status" : {
+                                    "description" : "Qemu process status.",
+                                    "enum" : [
+                                       "stopped",
+                                       "running"
+                                    ],
+                                    "type" : "string"
+                                 },
+                                 "uptime" : {
+                                    "description" : "Uptime.",
+                                    "optional" : 1,
+                                    "renderer" : "duration",
+                                    "type" : "integer"
+                                 },
+                                 "vmid" : {
+                                    "description" : "The (unique) ID of the VM.",
+                                    "format" : "pve-vmid",
+                                    "minimum" : 1,
+                                    "type" : "integer"
+                                 }
+                              },
                               "type" : "object"
                            },
                            "links" : [
@@ -11810,11 +16650,33 @@ var pveapi = [
                                  "typetext" : "<boolean>"
                               },
                               "agent" : {
-                                 "default" : 0,
-                                 "description" : "Enable/disable Qemu GuestAgent.",
+                                 "description" : "Enable/disable Qemu GuestAgent and its properties.",
+                                 "format" : {
+                                    "enabled" : {
+                                       "default" : 0,
+                                       "default_key" : 1,
+                                       "description" : "Enable/disable Qemu GuestAgent.",
+                                       "type" : "boolean"
+                                    },
+                                    "fstrim_cloned_disks" : {
+                                       "default" : 0,
+                                       "description" : "Run fstrim after cloning/moving a disk.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    }
+                                 },
                                  "optional" : 1,
-                                 "type" : "boolean",
-                                 "typetext" : "<boolean>"
+                                 "type" : "string",
+                                 "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>]"
+                              },
+                              "arch" : {
+                                 "description" : "Virtual processor architecture. Defaults to the host.",
+                                 "enum" : [
+                                    "x86_64",
+                                    "aarch64"
+                                 ],
+                                 "optional" : 1,
+                                 "type" : "string"
                               },
                               "archive" : {
                                  "description" : "The backup file.",
@@ -11868,6 +16730,13 @@ 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-ide",
@@ -11875,6 +16744,27 @@ var pveapi = [
                                  "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" : "<string>"
+                              },
                               "cores" : {
                                  "default" : 1,
                                  "description" : "The number of cores per socket.",
@@ -11894,17 +16784,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",
@@ -11918,11 +16817,23 @@ var pveapi = [
                                           "qemu32",
                                           "qemu64",
                                           "SandyBridge",
+                                          "SandyBridge-IBRS",
                                           "Skylake-Client",
-                                          "Westmere"
+                                          "Skylake-Client-IBRS",
+                                          "Skylake-Server",
+                                          "Skylake-Server-IBRS",
+                                          "Westmere",
+                                          "Westmere-IBRS"
                                        ],
                                        "type" : "string"
                                     },
+                                    "flags" : {
+                                       "description" : "List of additional CPU flags separated by ';'. Use '+FLAG' to enable, '-FLAG' to disable a flag. Currently supported flags: 'pcid', 'spec-ctrl', 'ibpb', 'ssbd', 'virt-ssbd', 'amd-ssbd', 'amd-no-ssb', 'pdpe1gb'.",
+                                       "format_description" : "+FLAG[;-FLAG...]",
+                                       "optional" : 1,
+                                       "pattern" : "(?^:(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb))(;(?^:[+-](pcid|spec-ctrl|ibpb|ssbd|virt-ssbd|amd-ssbd|amd-no-ssb|pdpe1gb)))*)",
+                                       "type" : "string"
+                                    },
                                     "hidden" : {
                                        "default" : 0,
                                        "description" : "Do not identify as a KVM virtual machine.",
@@ -11932,7 +16843,7 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[cputype=]<enum> [,hidden=<1|0>]"
+                                 "typetext" : "[cputype=]<enum> [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>]"
                               },
                               "cpulimit" : {
                                  "default" : 0,
@@ -11947,12 +16858,12 @@ var pveapi = [
                               "cpuunits" : {
                                  "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.",
@@ -11960,6 +16871,45 @@ var pveapi = [
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
+                              "efidisk0" : {
+                                 "description" : "Configure a Disk for storing EFI vars",
+                                 "format" : {
+                                    "file" : {
+                                       "default_key" : 1,
+                                       "description" : "The drive's backing volume.",
+                                       "format" : "pve-volume-id-or-qm-path",
+                                       "format_description" : "volume",
+                                       "type" : "string"
+                                    },
+                                    "format" : {
+                                       "description" : "The drive's backing file's data format.",
+                                       "enum" : [
+                                          "raw",
+                                          "cow",
+                                          "qcow",
+                                          "qed",
+                                          "qcow2",
+                                          "vmdk",
+                                          "cloop"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "size" : {
+                                       "description" : "Disk size. This is purely informational and has no effect.",
+                                       "format" : "disk-size",
+                                       "format_description" : "DiskSize",
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "volume" : {
+                                       "alias" : "file"
+                                    }
+                                 },
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "[file=]<volume> [,format=<enum>] [,size=<DiskSize>]"
+                              },
                               "force" : {
                                  "description" : "Allow to overwrite existing VM.",
                                  "optional" : 1,
@@ -11978,7 +16928,7 @@ var pveapi = [
                                  "format" : "pve-qm-hostpci",
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,x-vga=<1|0>]",
+                                 "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,mdev=<string>] [,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" : {
@@ -12264,6 +17214,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",
@@ -12272,7 +17229,12 @@ 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"
+                                    },
+                                    "ssd" : {
+                                       "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
                                        "optional" : 1,
                                        "type" : "boolean"
                                     },
@@ -12303,11 +17265,18 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+                                 "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+                              },
+                              "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",
@@ -12363,10 +17332,10 @@ var pveapi = [
                                  "type" : "string"
                               },
                               "machine" : {
-                                 "description" : "Specific the Qemu machine type.",
+                                 "description" : "Specifies the Qemu machine type.",
                                  "maxLength" : 40,
                                  "optional" : 1,
-                                 "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?)",
+                                 "pattern" : "(pc|pc(-i440fx)?-\\d+\\.\\d+(\\.pxe)?|q35|pc-q35-\\d+\\.\\d+(\\.pxe)?|virt(?:-\\d+\\.\\d+)?)",
                                  "type" : "string"
                               },
                               "memory" : {
@@ -12400,6 +17369,13 @@ var pveapi = [
                                  "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.",
                                  "format" : {
@@ -12604,7 +17580,7 @@ var pveapi = [
                                  ],
                                  "optional" : 1,
                                  "type" : "string",
-                                 "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012\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).",
@@ -12891,6 +17867,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",
@@ -12899,7 +17882,12 @@ 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"
+                                    },
+                                    "ssd" : {
+                                       "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
                                        "optional" : 1,
                                        "type" : "boolean"
                                     },
@@ -12930,7 +17918,7 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,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>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+                                 "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
                               },
                               "scsi[n]" : {
                                  "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 13).",
@@ -13206,6 +18194,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",
@@ -13214,7 +18209,12 @@ 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"
+                                    },
+                                    "ssd" : {
+                                       "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
                                        "optional" : 1,
                                        "type" : "boolean"
                                     },
@@ -13245,7 +18245,7 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+                                 "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
                               },
                               "scsihw" : {
                                  "default" : "lsi",
@@ -13261,6 +18261,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,
@@ -13270,7 +18276,7 @@ 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,
@@ -13301,6 +18307,20 @@ var pveapi = [
                                  "type" : "integer",
                                  "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",
                                  "description" : "Set the initial date of the real time clock. Valid format for date are: 'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
@@ -13389,23 +18409,41 @@ var pveapi = [
                                  "typetext" : "<integer> (1 - N)"
                               },
                               "vga" : {
-                                 "description" : "Select the VGA type.",
-                                 "enum" : [
-                                    "std",
-                                    "cirrus",
-                                    "vmware",
-                                    "qxl",
-                                    "serial0",
-                                    "serial1",
-                                    "serial2",
-                                    "serial3",
-                                    "qxl2",
-                                    "qxl3",
-                                    "qxl4"
-                                 ],
+                                 "description" : "Configure the VGA hardware.",
+                                 "format" : {
+                                    "memory" : {
+                                       "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
+                                       "maximum" : 512,
+                                       "minimum" : 4,
+                                       "optional" : 1,
+                                       "type" : "integer"
+                                    },
+                                    "type" : {
+                                       "default" : "std",
+                                       "default_key" : 1,
+                                       "description" : "Select the VGA type.",
+                                       "enum" : [
+                                          "cirrus",
+                                          "qxl",
+                                          "qxl2",
+                                          "qxl3",
+                                          "qxl4",
+                                          "serial0",
+                                          "serial1",
+                                          "serial2",
+                                          "serial3",
+                                          "std",
+                                          "virtio",
+                                          "vmware"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    }
+                                 },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "verbose_description" : "Select the VGA type. If you want to use high resolution modes (>= 1280x1024x16) then you should use the options 'std' or 'vmware'. Default is 'std' for win8/win7/w2k8, and 'cirrus' for other OS types. The 'qxl' option enables the SPICE display sever. For win* OS you can select how many independent displays you want, Linux guests can add displays them self. You can also run without any graphic card, using a serial device as terminal."
+                                 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
+                                 "verbose_description" : "Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is 'std' for all OS types besides some Windows versions (XP and older) which use 'cirrus'. The 'qxl' option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays them self.\nYou can also run without any graphic card, using a serial device as terminal."
                               },
                               "virtio[n]" : {
                                  "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
@@ -13669,6 +18707,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",
@@ -13677,7 +18722,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"
                                     },
@@ -13708,7 +18753,16 @@ var pveapi = [
                                  },
                                  "optional" : 1,
                                  "type" : "string",
-                                 "typetext" : "[file=]<volume> [,aio=<native|threads>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
+                                 "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>]"
+                              },
+                              "vmgenid" : {
+                                 "default" : "1 (autogenerated)",
+                                 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
+                                 "format_description" : "UUID",
+                                 "optional" : 1,
+                                 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
+                                 "type" : "string",
+                                 "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done throug API/CLI create or update methods, but not when manually editing the config file."
                               },
                               "vmid" : {
                                  "description" : "The (unique) ID of the VM.",
@@ -13717,6 +18771,13 @@ var pveapi = [
                                  "type" : "integer",
                                  "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",
@@ -13759,31 +18820,444 @@ var pveapi = [
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
                                              "type" : "string",
-                                             "typetext" : "<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" : {
+                                          "arch" : {
+                                             "default" : "amd64",
+                                             "description" : "OS architecture type.",
+                                             "enum" : [
+                                                "amd64",
+                                                "i386",
+                                                "arm64",
+                                                "armhf"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "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).",
+                                             "enum" : [
+                                                "shell",
+                                                "console",
+                                                "tty"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "console" : {
+                                             "default" : 1,
+                                             "description" : "Attach a console device (/dev/console) to the container.",
+                                             "optional" : 1,
+                                             "type" : "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"
+                                          },
+                                          "cpulimit" : {
+                                             "default" : 0,
+                                             "description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has a total of '2' CPU time. Value '0' indicates no CPU limit.",
+                                             "maximum" : 128,
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "number"
+                                          },
+                                          "cpuunits" : {
+                                             "default" : 1024,
+                                             "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 the weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0.",
+                                             "maximum" : 500000,
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer"
+                                          },
+                                          "description" : {
+                                             "description" : "Container description. Only used on the configuration web interface.",
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "digest" : {
+                                             "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
+                                             "type" : "string"
+                                          },
+                                          "features" : {
+                                             "description" : "Allow containers access to advanced features.",
+                                             "format" : {
+                                                "fuse" : {
+                                                   "default" : 0,
+                                                   "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "keyctl" : {
+                                                   "default" : 0,
+                                                   "description" : "For unprivileged containers only: Allow the use of the keyctl() system call. This is required to use docker inside a container. By default unprivileged containers will see this system call as non-existent. This is mostly a workaround for systemd-networkd, as it will treat it as a fatal error when some keyctl() operations are denied by the kernel due to lacking permissions. Essentially, you can choose between running systemd-networkd or docker.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "mount" : {
+                                                   "description" : "Allow mounting file systems of specific types. This should be a list of file system types as used with the mount command. Note that this can have negative effects on the container's security. With access to a loop device, mounting a file can circumvent the mknod permission of the devices cgroup, mounting an NFS file system can block the host's I/O completely and prevent it from rebooting, etc.",
+                                                   "format_description" : "fstype;fstype;...",
+                                                   "optional" : 1,
+                                                   "pattern" : "(?^:[a-zA-Z0-9; ]+)",
+                                                   "type" : "string"
+                                                },
+                                                "nesting" : {
+                                                   "default" : 0,
+                                                   "description" : "Allow nesting. Best used with unprivileged containers with additional id mapping. Note that this will expose procfs and sysfs contents of the host to the guest.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "hostname" : {
+                                             "description" : "Set a host name for the container.",
+                                             "format" : "dns-name",
+                                             "maxLength" : 255,
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "lock" : {
+                                             "description" : "Lock/unlock the VM.",
+                                             "enum" : [
+                                                "backup",
+                                                "disk",
+                                                "migrate",
+                                                "mounted",
+                                                "rollback",
+                                                "snapshot",
+                                                "snapshot-delete"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "lxc" : {
+                                             "description" : "Array of lxc low-level configurations ([[key1, value1], [key2, value2] ...]).",
+                                             "items" : {
+                                                "items" : {
+                                                   "type" : "string"
+                                                },
+                                                "type" : "array"
+                                             },
+                                             "optional" : 1,
+                                             "type" : "array"
+                                          },
+                                          "memory" : {
+                                             "default" : 512,
+                                             "description" : "Amount of RAM for the VM in MB.",
+                                             "minimum" : 16,
+                                             "optional" : 1,
+                                             "type" : "integer"
+                                          },
+                                          "mp[n]" : {
+                                             "description" : "Use volume as container mount point.",
+                                             "format" : {
+                                                "acl" : {
+                                                   "description" : "Explicitly enable or disable ACL support.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "backup" : {
+                                                   "description" : "Whether to include the mount point in backups.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
+                                                },
+                                                "mp" : {
+                                                   "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 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 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",
+                                                   "format_description" : "DiskSize",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "volume" : {
+                                                   "default_key" : 1,
+                                                   "description" : "Volume, device or directory to mount into the container.",
+                                                   "format" : "pve-lxc-mp-string",
+                                                   "format_description" : "volume",
+                                                   "type" : "string"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "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"
+                                          },
+                                          "net[n]" : {
+                                             "description" : "Specifies network interfaces for the container.",
+                                             "format" : {
+                                                "bridge" : {
+                                                   "description" : "Bridge to attach the network device to.",
+                                                   "format_description" : "bridge",
+                                                   "optional" : 1,
+                                                   "pattern" : "[-_.\\w\\d]+",
+                                                   "type" : "string"
+                                                },
+                                                "firewall" : {
+                                                   "description" : "Controls whether this interface's firewall rules should be used.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "gw" : {
+                                                   "description" : "Default gateway for IPv4 traffic.",
+                                                   "format" : "ipv4",
+                                                   "format_description" : "GatewayIPv4",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "gw6" : {
+                                                   "description" : "Default gateway for IPv6 traffic.",
+                                                   "format" : "ipv6",
+                                                   "format_description" : "GatewayIPv6",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "hwaddr" : {
+                                                   "description" : "The interface MAC address. This is dynamically allocated by default, but you can set that statically if needed, for example to always have the same link-local IPv6 address. (lxc.network.hwaddr)",
+                                                   "format_description" : "XX:XX:XX:XX:XX:XX",
+                                                   "optional" : 1,
+                                                   "pattern" : "(?^i:(?:[a-f0-9]{2}:){5}[a-f0-9]{2})",
+                                                   "type" : "string"
+                                                },
+                                                "ip" : {
+                                                   "description" : "IPv4 address in CIDR format.",
+                                                   "format" : "pve-ipv4-config",
+                                                   "format_description" : "(IPv4/CIDR|dhcp|manual)",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "ip6" : {
+                                                   "description" : "IPv6 address in CIDR format.",
+                                                   "format" : "pve-ipv6-config",
+                                                   "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "mtu" : {
+                                                   "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
+                                                   "minimum" : 64,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "name" : {
+                                                   "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
+                                                   "format_description" : "string",
+                                                   "pattern" : "[-_.\\w\\d]+",
+                                                   "type" : "string"
+                                                },
+                                                "rate" : {
+                                                   "description" : "Apply rate limiting to the interface",
+                                                   "format_description" : "mbps",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "tag" : {
+                                                   "description" : "VLAN tag for this interface.",
+                                                   "maximum" : 4094,
+                                                   "minimum" : 1,
+                                                   "optional" : 1,
+                                                   "type" : "integer"
+                                                },
+                                                "trunks" : {
+                                                   "description" : "VLAN ids to pass through the interface",
+                                                   "format_description" : "vlanid[;vlanid...]",
+                                                   "optional" : 1,
+                                                   "pattern" : "(?^:\\d+(?:;\\d+)*)",
+                                                   "type" : "string"
+                                                },
+                                                "type" : {
+                                                   "description" : "Network interface type.",
+                                                   "enum" : [
+                                                      "veth"
+                                                   ],
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "onboot" : {
+                                             "default" : 0,
+                                             "description" : "Specifies whether a VM will be started during system bootup.",
+                                             "optional" : 1,
+                                             "type" : "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.",
+                                             "enum" : [
+                                                "debian",
+                                                "ubuntu",
+                                                "centos",
+                                                "fedora",
+                                                "opensuse",
+                                                "archlinux",
+                                                "alpine",
+                                                "gentoo",
+                                                "unmanaged"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "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"
+                                          },
+                                          "rootfs" : {
+                                             "description" : "Use volume as container root.",
+                                             "format" : {
+                                                "acl" : {
+                                                   "description" : "Explicitly enable or disable ACL support.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "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 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",
+                                                   "format_description" : "DiskSize",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "volume" : {
+                                                   "default_key" : 1,
+                                                   "description" : "Volume, device or directory to mount into the container.",
+                                                   "format" : "pve-lxc-mp-string",
+                                                   "format_description" : "volume",
+                                                   "type" : "string"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "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"
+                                          },
+                                          "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.",
+                                             "format" : "pve-startup-order",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
                                           },
-                                          "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" : {
-                                          "digest" : {
-                                             "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
+                                          "swap" : {
+                                             "default" : 512,
+                                             "description" : "Amount of SWAP for the VM in MB.",
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer"
+                                          },
+                                          "template" : {
+                                             "default" : 0,
+                                             "description" : "Enable/disable Template.",
+                                             "optional" : 1,
+                                             "type" : "boolean"
+                                          },
+                                          "tty" : {
+                                             "default" : 2,
+                                             "description" : "Specify the number of tty available to the container",
+                                             "maximum" : 6,
+                                             "minimum" : 0,
+                                             "optional" : 1,
+                                             "type" : "integer"
+                                          },
+                                          "unprivileged" : {
+                                             "default" : 0,
+                                             "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
+                                             "optional" : 1,
+                                             "type" : "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"
                                           }
                                        },
@@ -13802,7 +19276,9 @@ var pveapi = [
                                              "description" : "OS architecture type.",
                                              "enum" : [
                                                 "amd64",
-                                                "i386"
+                                                "i386",
+                                                "arm64",
+                                                "armhf"
                                              ],
                                              "optional" : 1,
                                              "type" : "string"
@@ -13871,6 +19347,39 @@ var pveapi = [
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           },
+                                          "features" : {
+                                             "description" : "Allow containers access to advanced features.",
+                                             "format" : {
+                                                "fuse" : {
+                                                   "default" : 0,
+                                                   "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "keyctl" : {
+                                                   "default" : 0,
+                                                   "description" : "For unprivileged containers only: Allow the use of the keyctl() system call. This is required to use docker inside a container. By default unprivileged containers will see this system call as non-existent. This is mostly a workaround for systemd-networkd, as it will treat it as a fatal error when some keyctl() operations are denied by the kernel due to lacking permissions. Essentially, you can choose between running systemd-networkd or docker.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                },
+                                                "mount" : {
+                                                   "description" : "Allow mounting file systems of specific types. This should be a list of file system types as used with the mount command. Note that this can have negative effects on the container's security. With access to a loop device, mounting a file can circumvent the mknod permission of the devices cgroup, mounting an NFS file system can block the host's I/O completely and prevent it from rebooting, etc.",
+                                                   "format_description" : "fstype;fstype;...",
+                                                   "optional" : 1,
+                                                   "pattern" : "(?^:[a-zA-Z0-9; ]+)",
+                                                   "type" : "string"
+                                                },
+                                                "nesting" : {
+                                                   "default" : 0,
+                                                   "description" : "Allow nesting. Best used with unprivileged containers with additional id mapping. Note that this will expose procfs and sysfs contents of the host to the guest.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean"
+                                                }
+                                             },
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[fuse=<1|0>] [,keyctl=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
+                                          },
                                           "hostname" : {
                                              "description" : "Set a host name for the container.",
                                              "format" : "dns-name",
@@ -13882,10 +19391,13 @@ var pveapi = [
                                           "lock" : {
                                              "description" : "Lock/unlock the VM.",
                                              "enum" : [
-                                                "migrate",
                                                 "backup",
+                                                "disk",
+                                                "migrate",
+                                                "mounted",
+                                                "rollback",
                                                 "snapshot",
-                                                "rollback"
+                                                "snapshot-delete"
                                              ],
                                              "optional" : 1,
                                              "type" : "string"
@@ -14007,14 +19519,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"
                                                 },
@@ -14061,7 +19573,7 @@ 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.",
@@ -14275,6 +19787,60 @@ var pveapi = [
                                           "protected" : 1,
                                           "proxyto" : "node",
                                           "returns" : {
+                                             "properties" : {
+                                                "cpus" : {
+                                                   "description" : "Maximum usable CPUs.",
+                                                   "optional" : 1,
+                                                   "type" : "number"
+                                                },
+                                                "ha" : {
+                                                   "description" : "HA manager service status.",
+                                                   "type" : "object"
+                                                },
+                                                "maxdisk" : {
+                                                   "description" : "Root disk size in bytes.",
+                                                   "optional" : 1,
+                                                   "renderer" : "bytes",
+                                                   "type" : "integer"
+                                                },
+                                                "maxmem" : {
+                                                   "description" : "Maximum memory in bytes.",
+                                                   "optional" : 1,
+                                                   "renderer" : "bytes",
+                                                   "type" : "integer"
+                                                },
+                                                "maxswap" : {
+                                                   "description" : "Maximum SWAP memory in bytes.",
+                                                   "optional" : 1,
+                                                   "renderer" : "bytes",
+                                                   "type" : "integer"
+                                                },
+                                                "name" : {
+                                                   "description" : "Container name.",
+                                                   "optional" : 1,
+                                                   "type" : "string"
+                                                },
+                                                "status" : {
+                                                   "description" : "LXC Container status.",
+                                                   "enum" : [
+                                                      "stopped",
+                                                      "running"
+                                                   ],
+                                                   "type" : "string"
+                                                },
+                                                "uptime" : {
+                                                   "description" : "Uptime.",
+                                                   "optional" : 1,
+                                                   "renderer" : "duration",
+                                                   "type" : "integer"
+                                                },
+                                                "vmid" : {
+                                                   "description" : "The (unique) ID of the VM.",
+                                                   "format" : "pve-vmid",
+                                                   "minimum" : 1,
+                                                   "type" : "integer"
+                                                }
+                                             },
                                              "type" : "object"
                                           }
                                        }
@@ -14621,8 +20187,11 @@ var pveapi = [
                                                       "perm",
                                                       "/vms/{vmid}",
                                                       [
-                                                         "VM.Snapshot"
-                                                      ]
+                                                         "VM.Snapshot",
+                                                         "VM.Snapshot.Rollback"
+                                                      ],
+                                                      "any",
+                                                      1
                                                    ]
                                                 },
                                                 "protected" : 1,
@@ -14673,8 +20242,11 @@ var pveapi = [
                                                       "perm",
                                                       "/vms/{vmid}",
                                                       [
-                                                         "VM.Snapshot"
-                                                      ]
+                                                         "VM.Snapshot",
+                                                         "VM.Snapshot.Rollback"
+                                                      ],
+                                                      "any",
+                                                      1
                                                    ]
                                                 },
                                                 "proxyto" : "node",
@@ -14878,7 +20450,27 @@ var pveapi = [
                                     "proxyto" : "node",
                                     "returns" : {
                                        "items" : {
-                                          "properties" : {},
+                                          "properties" : {
+                                             "description" : {
+                                                "description" : "Snapshot description.",
+                                                "type" : "string"
+                                             },
+                                             "name" : {
+                                                "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
+                                                "type" : "string"
+                                             },
+                                             "parent" : {
+                                                "description" : "Parent snapshot identifier.",
+                                                "optional" : 1,
+                                                "type" : "string"
+                                             },
+                                             "snaptime" : {
+                                                "description" : "Snapshot creation time",
+                                                "optional" : 1,
+                                                "renderer" : "timestamp",
+                                                "type" : "integer"
+                                             }
+                                          },
                                           "type" : "object"
                                        },
                                        "links" : [
@@ -15020,32 +20612,78 @@ var pveapi = [
                                                          "description" : "Update rule at position <pos>.",
                                                          "minimum" : 0,
                                                          "optional" : 1,
-                                                         "type" : "integer",
-                                                         "typetext" : "<integer> (0 - N)"
+                                                         "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" : {
+                                                      "action" : {
+                                                         "type" : "string"
+                                                      },
+                                                      "comment" : {
+                                                         "optional" : 1,
+                                                         "type" : "string"
+                                                      },
+                                                      "dest" : {
+                                                         "optional" : 1,
+                                                         "type" : "string"
+                                                      },
+                                                      "dport" : {
+                                                         "optional" : 1,
+                                                         "type" : "string"
+                                                      },
+                                                      "enable" : {
+                                                         "optional" : 1,
+                                                         "type" : "integer"
+                                                      },
+                                                      "iface" : {
+                                                         "optional" : 1,
+                                                         "type" : "string"
+                                                      },
+                                                      "ipversion" : {
+                                                         "optional" : 1,
+                                                         "type" : "integer"
+                                                      },
+                                                      "macro" : {
+                                                         "optional" : 1,
+                                                         "type" : "integer"
                                                       },
-                                                      "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"
+                                                      },
+                                                      "proto" : {
+                                                         "optional" : 1,
+                                                         "type" : "string"
+                                                      },
+                                                      "source" : {
+                                                         "optional" : 1,
+                                                         "type" : "string"
+                                                      },
+                                                      "sport" : {
+                                                         "optional" : 1,
+                                                         "type" : "string"
+                                                      },
+                                                      "type" : {
+                                                         "type" : "string"
                                                       }
                                                    },
                                                    "type" : "object"
@@ -16854,6 +22492,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" : {
@@ -16931,7 +22626,7 @@ var pveapi = [
                                              "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).",
+                                             "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 reasonable 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",
@@ -17072,7 +22767,9 @@ var pveapi = [
                                           "feature" : {
                                              "description" : "Feature to check.",
                                              "enum" : [
-                                                "snapshot"
+                                                "snapshot",
+                                                "clone",
+                                                "copy"
                                              ],
                                              "type" : "string"
                                           },
@@ -17133,12 +22830,6 @@ 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",
-                                             "typetext" : "<boolean>"
-                                          },
                                           "node" : {
                                              "description" : "The cluster node name.",
                                              "format" : "pve-node",
@@ -17190,15 +22881,8 @@ var pveapi = [
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           },
-                                          "experimental" : {
-                                             "default" : 0,
-                                             "description" : "The clone feature is experimental, set this flag if you know what you are doing.",
-                                             "type" : "boolean",
-                                             "typetext" : "<boolean>"
-                                          },
                                           "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",
                                              "typetext" : "<boolean>"
@@ -17242,7 +22926,13 @@ var pveapi = [
                                              "description" : "Target storage for full clone.",
                                              "format" : "pve-storage-id",
                                              "optional" : 1,
-                                             "requires" : "full",
+                                             "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>"
                                           },
@@ -17327,7 +23017,253 @@ var pveapi = [
                                                 "mp6",
                                                 "mp7",
                                                 "mp8",
-                                                "mp9"
+                                                "mp9",
+                                                "mp10",
+                                                "mp11",
+                                                "mp12",
+                                                "mp13",
+                                                "mp14",
+                                                "mp15",
+                                                "mp16",
+                                                "mp17",
+                                                "mp18",
+                                                "mp19",
+                                                "mp20",
+                                                "mp21",
+                                                "mp22",
+                                                "mp23",
+                                                "mp24",
+                                                "mp25",
+                                                "mp26",
+                                                "mp27",
+                                                "mp28",
+                                                "mp29",
+                                                "mp30",
+                                                "mp31",
+                                                "mp32",
+                                                "mp33",
+                                                "mp34",
+                                                "mp35",
+                                                "mp36",
+                                                "mp37",
+                                                "mp38",
+                                                "mp39",
+                                                "mp40",
+                                                "mp41",
+                                                "mp42",
+                                                "mp43",
+                                                "mp44",
+                                                "mp45",
+                                                "mp46",
+                                                "mp47",
+                                                "mp48",
+                                                "mp49",
+                                                "mp50",
+                                                "mp51",
+                                                "mp52",
+                                                "mp53",
+                                                "mp54",
+                                                "mp55",
+                                                "mp56",
+                                                "mp57",
+                                                "mp58",
+                                                "mp59",
+                                                "mp60",
+                                                "mp61",
+                                                "mp62",
+                                                "mp63",
+                                                "mp64",
+                                                "mp65",
+                                                "mp66",
+                                                "mp67",
+                                                "mp68",
+                                                "mp69",
+                                                "mp70",
+                                                "mp71",
+                                                "mp72",
+                                                "mp73",
+                                                "mp74",
+                                                "mp75",
+                                                "mp76",
+                                                "mp77",
+                                                "mp78",
+                                                "mp79",
+                                                "mp80",
+                                                "mp81",
+                                                "mp82",
+                                                "mp83",
+                                                "mp84",
+                                                "mp85",
+                                                "mp86",
+                                                "mp87",
+                                                "mp88",
+                                                "mp89",
+                                                "mp90",
+                                                "mp91",
+                                                "mp92",
+                                                "mp93",
+                                                "mp94",
+                                                "mp95",
+                                                "mp96",
+                                                "mp97",
+                                                "mp98",
+                                                "mp99",
+                                                "mp100",
+                                                "mp101",
+                                                "mp102",
+                                                "mp103",
+                                                "mp104",
+                                                "mp105",
+                                                "mp106",
+                                                "mp107",
+                                                "mp108",
+                                                "mp109",
+                                                "mp110",
+                                                "mp111",
+                                                "mp112",
+                                                "mp113",
+                                                "mp114",
+                                                "mp115",
+                                                "mp116",
+                                                "mp117",
+                                                "mp118",
+                                                "mp119",
+                                                "mp120",
+                                                "mp121",
+                                                "mp122",
+                                                "mp123",
+                                                "mp124",
+                                                "mp125",
+                                                "mp126",
+                                                "mp127",
+                                                "mp128",
+                                                "mp129",
+                                                "mp130",
+                                                "mp131",
+                                                "mp132",
+                                                "mp133",
+                                                "mp134",
+                                                "mp135",
+                                                "mp136",
+                                                "mp137",
+                                                "mp138",
+                                                "mp139",
+                                                "mp140",
+                                                "mp141",
+                                                "mp142",
+                                                "mp143",
+                                                "mp144",
+                                                "mp145",
+                                                "mp146",
+                                                "mp147",
+                                                "mp148",
+                                                "mp149",
+                                                "mp150",
+                                                "mp151",
+                                                "mp152",
+                                                "mp153",
+                                                "mp154",
+                                                "mp155",
+                                                "mp156",
+                                                "mp157",
+                                                "mp158",
+                                                "mp159",
+                                                "mp160",
+                                                "mp161",
+                                                "mp162",
+                                                "mp163",
+                                                "mp164",
+                                                "mp165",
+                                                "mp166",
+                                                "mp167",
+                                                "mp168",
+                                                "mp169",
+                                                "mp170",
+                                                "mp171",
+                                                "mp172",
+                                                "mp173",
+                                                "mp174",
+                                                "mp175",
+                                                "mp176",
+                                                "mp177",
+                                                "mp178",
+                                                "mp179",
+                                                "mp180",
+                                                "mp181",
+                                                "mp182",
+                                                "mp183",
+                                                "mp184",
+                                                "mp185",
+                                                "mp186",
+                                                "mp187",
+                                                "mp188",
+                                                "mp189",
+                                                "mp190",
+                                                "mp191",
+                                                "mp192",
+                                                "mp193",
+                                                "mp194",
+                                                "mp195",
+                                                "mp196",
+                                                "mp197",
+                                                "mp198",
+                                                "mp199",
+                                                "mp200",
+                                                "mp201",
+                                                "mp202",
+                                                "mp203",
+                                                "mp204",
+                                                "mp205",
+                                                "mp206",
+                                                "mp207",
+                                                "mp208",
+                                                "mp209",
+                                                "mp210",
+                                                "mp211",
+                                                "mp212",
+                                                "mp213",
+                                                "mp214",
+                                                "mp215",
+                                                "mp216",
+                                                "mp217",
+                                                "mp218",
+                                                "mp219",
+                                                "mp220",
+                                                "mp221",
+                                                "mp222",
+                                                "mp223",
+                                                "mp224",
+                                                "mp225",
+                                                "mp226",
+                                                "mp227",
+                                                "mp228",
+                                                "mp229",
+                                                "mp230",
+                                                "mp231",
+                                                "mp232",
+                                                "mp233",
+                                                "mp234",
+                                                "mp235",
+                                                "mp236",
+                                                "mp237",
+                                                "mp238",
+                                                "mp239",
+                                                "mp240",
+                                                "mp241",
+                                                "mp242",
+                                                "mp243",
+                                                "mp244",
+                                                "mp245",
+                                                "mp246",
+                                                "mp247",
+                                                "mp248",
+                                                "mp249",
+                                                "mp250",
+                                                "mp251",
+                                                "mp252",
+                                                "mp253",
+                                                "mp254",
+                                                "mp255"
                                              ],
                                              "type" : "string"
                                           },
@@ -17373,6 +23309,344 @@ var pveapi = [
                               "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",
+                                                "mp1",
+                                                "mp2",
+                                                "mp3",
+                                                "mp4",
+                                                "mp5",
+                                                "mp6",
+                                                "mp7",
+                                                "mp8",
+                                                "mp9",
+                                                "mp10",
+                                                "mp11",
+                                                "mp12",
+                                                "mp13",
+                                                "mp14",
+                                                "mp15",
+                                                "mp16",
+                                                "mp17",
+                                                "mp18",
+                                                "mp19",
+                                                "mp20",
+                                                "mp21",
+                                                "mp22",
+                                                "mp23",
+                                                "mp24",
+                                                "mp25",
+                                                "mp26",
+                                                "mp27",
+                                                "mp28",
+                                                "mp29",
+                                                "mp30",
+                                                "mp31",
+                                                "mp32",
+                                                "mp33",
+                                                "mp34",
+                                                "mp35",
+                                                "mp36",
+                                                "mp37",
+                                                "mp38",
+                                                "mp39",
+                                                "mp40",
+                                                "mp41",
+                                                "mp42",
+                                                "mp43",
+                                                "mp44",
+                                                "mp45",
+                                                "mp46",
+                                                "mp47",
+                                                "mp48",
+                                                "mp49",
+                                                "mp50",
+                                                "mp51",
+                                                "mp52",
+                                                "mp53",
+                                                "mp54",
+                                                "mp55",
+                                                "mp56",
+                                                "mp57",
+                                                "mp58",
+                                                "mp59",
+                                                "mp60",
+                                                "mp61",
+                                                "mp62",
+                                                "mp63",
+                                                "mp64",
+                                                "mp65",
+                                                "mp66",
+                                                "mp67",
+                                                "mp68",
+                                                "mp69",
+                                                "mp70",
+                                                "mp71",
+                                                "mp72",
+                                                "mp73",
+                                                "mp74",
+                                                "mp75",
+                                                "mp76",
+                                                "mp77",
+                                                "mp78",
+                                                "mp79",
+                                                "mp80",
+                                                "mp81",
+                                                "mp82",
+                                                "mp83",
+                                                "mp84",
+                                                "mp85",
+                                                "mp86",
+                                                "mp87",
+                                                "mp88",
+                                                "mp89",
+                                                "mp90",
+                                                "mp91",
+                                                "mp92",
+                                                "mp93",
+                                                "mp94",
+                                                "mp95",
+                                                "mp96",
+                                                "mp97",
+                                                "mp98",
+                                                "mp99",
+                                                "mp100",
+                                                "mp101",
+                                                "mp102",
+                                                "mp103",
+                                                "mp104",
+                                                "mp105",
+                                                "mp106",
+                                                "mp107",
+                                                "mp108",
+                                                "mp109",
+                                                "mp110",
+                                                "mp111",
+                                                "mp112",
+                                                "mp113",
+                                                "mp114",
+                                                "mp115",
+                                                "mp116",
+                                                "mp117",
+                                                "mp118",
+                                                "mp119",
+                                                "mp120",
+                                                "mp121",
+                                                "mp122",
+                                                "mp123",
+                                                "mp124",
+                                                "mp125",
+                                                "mp126",
+                                                "mp127",
+                                                "mp128",
+                                                "mp129",
+                                                "mp130",
+                                                "mp131",
+                                                "mp132",
+                                                "mp133",
+                                                "mp134",
+                                                "mp135",
+                                                "mp136",
+                                                "mp137",
+                                                "mp138",
+                                                "mp139",
+                                                "mp140",
+                                                "mp141",
+                                                "mp142",
+                                                "mp143",
+                                                "mp144",
+                                                "mp145",
+                                                "mp146",
+                                                "mp147",
+                                                "mp148",
+                                                "mp149",
+                                                "mp150",
+                                                "mp151",
+                                                "mp152",
+                                                "mp153",
+                                                "mp154",
+                                                "mp155",
+                                                "mp156",
+                                                "mp157",
+                                                "mp158",
+                                                "mp159",
+                                                "mp160",
+                                                "mp161",
+                                                "mp162",
+                                                "mp163",
+                                                "mp164",
+                                                "mp165",
+                                                "mp166",
+                                                "mp167",
+                                                "mp168",
+                                                "mp169",
+                                                "mp170",
+                                                "mp171",
+                                                "mp172",
+                                                "mp173",
+                                                "mp174",
+                                                "mp175",
+                                                "mp176",
+                                                "mp177",
+                                                "mp178",
+                                                "mp179",
+                                                "mp180",
+                                                "mp181",
+                                                "mp182",
+                                                "mp183",
+                                                "mp184",
+                                                "mp185",
+                                                "mp186",
+                                                "mp187",
+                                                "mp188",
+                                                "mp189",
+                                                "mp190",
+                                                "mp191",
+                                                "mp192",
+                                                "mp193",
+                                                "mp194",
+                                                "mp195",
+                                                "mp196",
+                                                "mp197",
+                                                "mp198",
+                                                "mp199",
+                                                "mp200",
+                                                "mp201",
+                                                "mp202",
+                                                "mp203",
+                                                "mp204",
+                                                "mp205",
+                                                "mp206",
+                                                "mp207",
+                                                "mp208",
+                                                "mp209",
+                                                "mp210",
+                                                "mp211",
+                                                "mp212",
+                                                "mp213",
+                                                "mp214",
+                                                "mp215",
+                                                "mp216",
+                                                "mp217",
+                                                "mp218",
+                                                "mp219",
+                                                "mp220",
+                                                "mp221",
+                                                "mp222",
+                                                "mp223",
+                                                "mp224",
+                                                "mp225",
+                                                "mp226",
+                                                "mp227",
+                                                "mp228",
+                                                "mp229",
+                                                "mp230",
+                                                "mp231",
+                                                "mp232",
+                                                "mp233",
+                                                "mp234",
+                                                "mp235",
+                                                "mp236",
+                                                "mp237",
+                                                "mp238",
+                                                "mp239",
+                                                "mp240",
+                                                "mp241",
+                                                "mp242",
+                                                "mp243",
+                                                "mp244",
+                                                "mp245",
+                                                "mp246",
+                                                "mp247",
+                                                "mp248",
+                                                "mp249",
+                                                "mp250",
+                                                "mp251",
+                                                "mp252",
+                                                "mp253",
+                                                "mp254",
+                                                "mp255"
+                                             ],
+                                             "type" : "string"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "and",
+                                          [
+                                             "perm",
+                                             "/vms/{vmid}",
+                                             [
+                                                "VM.Config.Disk"
+                                             ]
+                                          ],
+                                          [
+                                             "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" : {
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/lxc/{vmid}/move_volume",
+                              "text" : "move_volume"
                            }
                         ],
                         "info" : {
@@ -17487,7 +23761,56 @@ var pveapi = [
                         "proxyto" : "node",
                         "returns" : {
                            "items" : {
-                              "properties" : {},
+                              "properties" : {
+                                 "cpus" : {
+                                    "description" : "Maximum usable CPUs.",
+                                    "optional" : 1,
+                                    "type" : "number"
+                                 },
+                                 "maxdisk" : {
+                                    "description" : "Root disk size in bytes.",
+                                    "optional" : 1,
+                                    "renderer" : "bytes",
+                                    "type" : "integer"
+                                 },
+                                 "maxmem" : {
+                                    "description" : "Maximum memory in bytes.",
+                                    "optional" : 1,
+                                    "renderer" : "bytes",
+                                    "type" : "integer"
+                                 },
+                                 "maxswap" : {
+                                    "description" : "Maximum SWAP memory in bytes.",
+                                    "optional" : 1,
+                                    "renderer" : "bytes",
+                                    "type" : "integer"
+                                 },
+                                 "name" : {
+                                    "description" : "Container name.",
+                                    "optional" : 1,
+                                    "type" : "string"
+                                 },
+                                 "status" : {
+                                    "description" : "LXC Container status.",
+                                    "enum" : [
+                                       "stopped",
+                                       "running"
+                                    ],
+                                    "type" : "string"
+                                 },
+                                 "uptime" : {
+                                    "description" : "Uptime.",
+                                    "optional" : 1,
+                                    "renderer" : "duration",
+                                    "type" : "integer"
+                                 },
+                                 "vmid" : {
+                                    "description" : "The (unique) ID of the VM.",
+                                    "format" : "pve-vmid",
+                                    "minimum" : 1,
+                                    "type" : "integer"
+                                 }
+                              },
                               "type" : "object"
                            },
                            "links" : [
@@ -17511,11 +23834,20 @@ var pveapi = [
                                  "description" : "OS architecture type.",
                                  "enum" : [
                                     "amd64",
-                                    "i386"
+                                    "i386",
+                                    "arm64",
+                                    "armhf"
                                  ],
                                  "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).",
@@ -17566,6 +23898,39 @@ var pveapi = [
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
+                              "features" : {
+                                 "description" : "Allow containers access to advanced features.",
+                                 "format" : {
+                                    "fuse" : {
+                                       "default" : 0,
+                                       "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
+                                    "keyctl" : {
+                                       "default" : 0,
+                                       "description" : "For unprivileged containers only: Allow the use of the keyctl() system call. This is required to use docker inside a container. By default unprivileged containers will see this system call as non-existent. This is mostly a workaround for systemd-networkd, as it will treat it as a fatal error when some keyctl() operations are denied by the kernel due to lacking permissions. Essentially, you can choose between running systemd-networkd or docker.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    },
+                                    "mount" : {
+                                       "description" : "Allow mounting file systems of specific types. This should be a list of file system types as used with the mount command. Note that this can have negative effects on the container's security. With access to a loop device, mounting a file can circumvent the mknod permission of the devices cgroup, mounting an NFS file system can block the host's I/O completely and prevent it from rebooting, etc.",
+                                       "format_description" : "fstype;fstype;...",
+                                       "optional" : 1,
+                                       "pattern" : "(?^:[a-zA-Z0-9; ]+)",
+                                       "type" : "string"
+                                    },
+                                    "nesting" : {
+                                       "default" : 0,
+                                       "description" : "Allow nesting. Best used with unprivileged containers with additional id mapping. Note that this will expose procfs and sysfs contents of the host to the guest.",
+                                       "optional" : 1,
+                                       "type" : "boolean"
+                                    }
+                                 },
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "[fuse=<1|0>] [,keyctl=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
+                              },
                               "force" : {
                                  "description" : "Allow to overwrite existing container.",
                                  "optional" : 1,
@@ -17589,10 +23954,13 @@ var pveapi = [
                               "lock" : {
                                  "description" : "Lock/unlock the VM.",
                                  "enum" : [
-                                    "migrate",
                                     "backup",
+                                    "disk",
+                                    "migrate",
+                                    "mounted",
+                                    "rollback",
                                     "snapshot",
-                                    "rollback"
+                                    "snapshot-delete"
                                  ],
                                  "optional" : 1,
                                  "type" : "string"
@@ -17714,14 +24082,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"
                                     },
@@ -17768,7 +24136,7 @@ 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.",
@@ -17892,8 +24260,15 @@ var pveapi = [
                               "ssh-public-keys" : {
                                  "description" : "Setup public SSH keys (one key per line, OpenSSH format).",
                                  "optional" : 1,
-                                 "type" : "string",
-                                 "typetext" : "<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.",
@@ -18145,8 +24520,8 @@ var pveapi = [
                                  "additionalProperties" : 0,
                                  "properties" : {
                                     "bluestore" : {
-                                       "default" : 0,
-                                       "description" : "Use bluestore instead of filestore.",
+                                       "default" : 1,
+                                       "description" : "Use bluestore instead of filestore. This is the default.",
                                        "optional" : 1,
                                        "type" : "boolean",
                                        "typetext" : "<boolean>"
@@ -18161,14 +24536,13 @@ var pveapi = [
                                        "description" : "File system type (filestore only).",
                                        "enum" : [
                                           "xfs",
-                                          "ext4",
-                                          "btrfs"
+                                          "ext4"
                                        ],
                                        "optional" : 1,
                                        "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",
                                        "typetext" : "<string>"
@@ -18178,6 +24552,12 @@ var pveapi = [
                                        "format" : "pve-node",
                                        "type" : "string",
                                        "typetext" : "<string>"
+                                    },
+                                    "wal_dev" : {
+                                       "description" : "Block device name for block.wal (bluestore only).",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -18192,6 +24572,293 @@ var pveapi = [
                         "path" : "/nodes/{node}/ceph/osd",
                         "text" : "osd"
                      },
+                     {
+                        "children" : [
+                           {
+                              "info" : {
+                                 "DELETE" : {
+                                    "description" : "Destroy Ceph Metadata Server",
+                                    "method" : "DELETE",
+                                    "name" : "destroymds",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "name" : {
+                                             "description" : "The name (ID) of the mds",
+                                             "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
+                                             "type" : "string"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/",
+                                          [
+                                             "Sys.Modify"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "POST" : {
+                                    "description" : "Create Ceph Metadata Server (MDS)",
+                                    "method" : "POST",
+                                    "name" : "createmds",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "hotstandby" : {
+                                             "default" : "0",
+                                             "description" : "Determines whether a ceph-mds daemon should poll and replay the log of an active MDS. Faster switch on MDS failure, but needs more idle resources.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "name" : {
+                                             "default" : "nodename",
+                                             "description" : "The ID for the mds, when omitted the same as the nodename",
+                                             "optional" : 1,
+                                             "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
+                                             "type" : "string"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/",
+                                          [
+                                             "Sys.Modify"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/ceph/mds/{name}",
+                              "text" : "{name}"
+                           }
+                        ],
+                        "info" : {
+                           "GET" : {
+                              "description" : "MDS directory index.",
+                              "method" : "GET",
+                              "name" : "index",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Audit",
+                                       "Datastore.Audit"
+                                    ],
+                                    "any",
+                                    1
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "items" : {
+                                    "properties" : {
+                                       "addr" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "host" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "name" : {
+                                          "description" : "The name (ID) for the MDS"
+                                       },
+                                       "rank" : {
+                                          "optional" : 1,
+                                          "type" : "integer"
+                                       },
+                                       "standby_replay" : {
+                                          "description" : "If true, the standby MDS is polling the active MDS for faster recovery (hot standby).",
+                                          "optional" : 1,
+                                          "type" : "boolean"
+                                       },
+                                       "state" : {
+                                          "description" : "State of the MDS",
+                                          "type" : "string"
+                                       }
+                                    },
+                                    "type" : "object"
+                                 },
+                                 "links" : [
+                                    {
+                                       "href" : "{name}",
+                                       "rel" : "child"
+                                    }
+                                 ],
+                                 "type" : "array"
+                              }
+                           }
+                        },
+                        "leaf" : 0,
+                        "path" : "/nodes/{node}/ceph/mds",
+                        "text" : "mds"
+                     },
+                     {
+                        "children" : [
+                           {
+                              "info" : {
+                                 "POST" : {
+                                    "description" : "Create a Ceph filesystem",
+                                    "method" : "POST",
+                                    "name" : "createfs",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "add-storage" : {
+                                             "default" : 0,
+                                             "description" : "Configure the created CephFS as storage for this cluster.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
+                                          "name" : {
+                                             "default" : "cephfs",
+                                             "description" : "The ceph filesystem name.",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "pg_num" : {
+                                             "default" : 128,
+                                             "description" : "Number of placement groups for the backing data pool. The metadata pool will use a quarter of this.",
+                                             "maximum" : 32768,
+                                             "minimum" : 8,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (8 - 32768)"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/",
+                                          [
+                                             "Sys.Modify"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/ceph/fs/{name}",
+                              "text" : "{name}"
+                           }
+                        ],
+                        "info" : {
+                           "GET" : {
+                              "description" : "Directory index.",
+                              "method" : "GET",
+                              "name" : "index",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Audit",
+                                       "Datastore.Audit"
+                                    ],
+                                    "any",
+                                    1
+                                 ]
+                              },
+                              "protected" : 1,
+                              "returns" : {
+                                 "items" : {
+                                    "properties" : {
+                                       "data_pool" : {
+                                          "description" : "The name of the data pool.",
+                                          "type" : "string"
+                                       },
+                                       "metadata_pool" : {
+                                          "description" : "The name of the metadata pool.",
+                                          "type" : "string"
+                                       },
+                                       "name" : {
+                                          "description" : "The ceph filesystem name.",
+                                          "type" : "string"
+                                       }
+                                    },
+                                    "type" : "object"
+                                 },
+                                 "links" : [
+                                    {
+                                       "href" : "{name}",
+                                       "rel" : "child"
+                                    }
+                                 ],
+                                 "type" : "array"
+                              }
+                           }
+                        },
+                        "leaf" : 0,
+                        "path" : "/nodes/{node}/ceph/fs",
+                        "text" : "fs"
+                     },
                      {
                         "info" : {
                            "GET" : {
@@ -18317,16 +24984,23 @@ 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",
-                                             "typetext" : "<integer>"
+                                             "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
+                                             "type" : "string"
                                           },
                                           "node" : {
                                              "description" : "The cluster node name.",
@@ -18409,12 +25083,32 @@ 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",
@@ -18452,6 +25146,15 @@ var pveapi = [
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
+                                    "cluster-network" : {
+                                       "description" : "Declare a separate cluster network, OSDs will routeheartbeat, object replication and recovery traffic over it",
+                                       "format" : "CIDR",
+                                       "maxLength" : 128,
+                                       "optional" : 1,
+                                       "requires" : "network",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
                                     "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!",
@@ -18522,6 +25225,93 @@ var pveapi = [
                         "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"
+                                    },
+                                    "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" : 0,
+                        "path" : "/nodes/{node}/ceph/mgr",
+                        "text" : "mgr"
+                     },
                      {
                         "info" : {
                            "POST" : {
@@ -18538,9 +25328,10 @@ var pveapi = [
                                        "typetext" : "<string>"
                                     },
                                     "service" : {
+                                       "default" : "ceph.target",
                                        "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"
                                     }
                                  }
@@ -18581,9 +25372,10 @@ var pveapi = [
                                        "typetext" : "<string>"
                                     },
                                     "service" : {
+                                       "default" : "ceph.target",
                                        "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"
                                     }
                                  }
@@ -18608,6 +25400,50 @@ var pveapi = [
                         "path" : "/nodes/{node}/ceph/start",
                         "text" : "start"
                      },
+                     {
+                        "info" : {
+                           "POST" : {
+                              "description" : "Restart ceph services.",
+                              "method" : "POST",
+                              "name" : "restart",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "service" : {
+                                       "default" : "ceph.target",
+                                       "description" : "Ceph service name.",
+                                       "optional" : 1,
+                                       "pattern" : "(mon|mds|osd|mgr)\\.[A-Za-z0-9\\-]{1,32}",
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Modify"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "type" : "string"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/ceph/restart",
+                        "text" : "restart"
+                     },
                      {
                         "info" : {
                            "GET" : {
@@ -18676,6 +25512,13 @@ var pveapi = [
                                              "format" : "pve-node",
                                              "type" : "string",
                                              "typetext" : "<string>"
+                                          },
+                                          "remove_storages" : {
+                                             "default" : 0,
+                                             "description" : "Remove all pveceph-managed storages configured for this pool",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
                                           }
                                        }
                                     },
@@ -18691,7 +25534,7 @@ var pveapi = [
                                     "protected" : 1,
                                     "proxyto" : "node",
                                     "returns" : {
-                                       "type" : "null"
+                                       "type" : "string"
                                     }
                                  }
                               },
@@ -18761,17 +25604,30 @@ 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 storage 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" : 7,
                                        "minimum" : 1,
@@ -18791,7 +25647,7 @@ var pveapi = [
                                        "typetext" : "<string>"
                                     },
                                     "pg_num" : {
-                                       "default" : 64,
+                                       "default" : 128,
                                        "description" : "Number of placement groups.",
                                        "maximum" : 32768,
                                        "minimum" : 8,
@@ -18800,7 +25656,7 @@ var pveapi = [
                                        "typetext" : "<integer> (8 - 32768)"
                                     },
                                     "size" : {
-                                       "default" : 2,
+                                       "default" : 3,
                                        "description" : "Number of replicas per object",
                                        "maximum" : 7,
                                        "minimum" : 1,
@@ -18822,7 +25678,7 @@ var pveapi = [
                               "protected" : 1,
                               "proxyto" : "node",
                               "returns" : {
-                                 "type" : "null"
+                                 "type" : "string"
                               }
                            }
                         },
@@ -19073,6 +25929,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" : {
@@ -19432,7 +26338,6 @@ var pveapi = [
                                     "protected" : 1,
                                     "proxyto" : "node",
                                     "returns" : {
-                                       "properties" : {},
                                        "type" : "object"
                                     }
                                  }
@@ -19842,6 +26747,15 @@ var pveapi = [
                               }
                            }
                         },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/nodes/{node}",
+                              [
+                                 "Sys.Modify"
+                              ]
+                           ]
+                        },
                         "protected" : 1,
                         "proxyto" : "node",
                         "returns" : {
@@ -19857,8 +26771,9 @@ var pveapi = [
                            "properties" : {
                               "key" : {
                                  "description" : "Proxmox VE subscription key",
-                                 "type" : "string",
-                                 "typetext" : "<string>"
+                                 "maxLength" : 32,
+                                 "pattern" : "pve([124])([cbsp])-[0-9a-f]{10}",
+                                 "type" : "string"
                               },
                               "node" : {
                                  "description" : "The cluster node name.",
@@ -19868,6 +26783,15 @@ var pveapi = [
                               }
                            }
                         },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/nodes/{node}",
+                              [
+                                 "Sys.Modify"
+                              ]
+                           ]
+                        },
                         "protected" : 1,
                         "proxyto" : "node",
                         "returns" : {
@@ -20461,7 +27385,37 @@ var pveapi = [
                         "protected" : 1,
                         "proxyto" : "node",
                         "returns" : {
-                           "type" : "null"
+                           "type" : "null"
+                        }
+                     },
+                     "PUT" : {
+                        "description" : "Reload network configuration",
+                        "method" : "PUT",
+                        "name" : "reload_network_config",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "node" : {
+                                 "description" : "The cluster node name.",
+                                 "format" : "pve-node",
+                                 "type" : "string",
+                                 "typetext" : "<string>"
+                              }
+                           }
+                        },
+                        "permissions" : {
+                           "check" : [
+                              "perm",
+                              "/nodes/{node}",
+                              [
+                                 "Sys.Modify"
+                              ]
+                           ]
+                        },
+                        "protected" : 1,
+                        "proxyto" : "node",
+                        "returns" : {
+                           "type" : "string"
                         }
                      }
                   },
@@ -20483,6 +27437,7 @@ var pveapi = [
                                        "additionalProperties" : 0,
                                        "properties" : {
                                           "limit" : {
+                                             "default" : 50,
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
@@ -20495,6 +27450,7 @@ var pveapi = [
                                              "typetext" : "<string>"
                                           },
                                           "start" : {
+                                             "default" : 0,
                                              "minimum" : 0,
                                              "optional" : 1,
                                              "type" : "integer",
@@ -20664,11 +27620,14 @@ var pveapi = [
                            "additionalProperties" : 0,
                            "properties" : {
                               "errors" : {
+                                 "default" : 0,
                                  "optional" : 1,
                                  "type" : "boolean",
                                  "typetext" : "<boolean>"
                               },
                               "limit" : {
+                                 "default" : 50,
+                                 "description" : "Only list this amount of tasks.",
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer",
@@ -20681,12 +27640,15 @@ var pveapi = [
                                  "typetext" : "<string>"
                               },
                               "start" : {
+                                 "default" : 0,
+                                 "description" : "List tasks beginning from this offset.",
                                  "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer",
                                  "typetext" : "<integer> (0 - N)"
                               },
                               "userfilter" : {
+                                 "description" : "Only list tasks from this user.",
                                  "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
@@ -20709,7 +27671,52 @@ var pveapi = [
                         "returns" : {
                            "items" : {
                               "properties" : {
+                                 "endtime" : {
+                                    "optional" : 1,
+                                    "title" : "Endtime",
+                                    "type" : "integer"
+                                 },
+                                 "id" : {
+                                    "optional" : 1,
+                                    "title" : "ID",
+                                    "type" : "string"
+                                 },
+                                 "node" : {
+                                    "optional" : 1,
+                                    "title" : "Node",
+                                    "type" : "string"
+                                 },
+                                 "pid" : {
+                                    "optional" : 1,
+                                    "title" : "PID",
+                                    "type" : "integer"
+                                 },
+                                 "pstart" : {
+                                    "optional" : 1,
+                                    "type" : "integer"
+                                 },
+                                 "starttime" : {
+                                    "optional" : 1,
+                                    "title" : "Starttime",
+                                    "type" : "integer"
+                                 },
+                                 "status" : {
+                                    "optional" : 1,
+                                    "title" : "Status",
+                                    "type" : "string"
+                                 },
+                                 "type" : {
+                                    "optional" : 1,
+                                    "title" : "Type",
+                                    "type" : "string"
+                                 },
                                  "upid" : {
+                                    "title" : "UPID",
+                                    "type" : "string"
+                                 },
+                                 "user" : {
+                                    "optional" : 1,
+                                    "title" : "User",
                                     "type" : "string"
                                  }
                               },
@@ -20763,6 +27770,7 @@ var pveapi = [
                                  "items" : {
                                     "properties" : {
                                        "pool" : {
+                                          "description" : "ZFS pool name.",
                                           "type" : "string"
                                        }
                                     },
@@ -20779,9 +27787,247 @@ var pveapi = [
                      {
                         "info" : {
                            "GET" : {
-                              "description" : "Scan remote NFS server.",
+                              "description" : "Scan remote NFS server.",
+                              "method" : "GET",
+                              "name" : "nfsscan",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "server" : {
+                                       "description" : "The server address (name or IP).",
+                                       "format" : "pve-storage-server",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/storage",
+                                    [
+                                       "Datastore.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "items" : {
+                                    "properties" : {
+                                       "options" : {
+                                          "description" : "NFS export options.",
+                                          "type" : "string"
+                                       },
+                                       "path" : {
+                                          "description" : "The exported path.",
+                                          "type" : "string"
+                                       }
+                                    },
+                                    "type" : "object"
+                                 },
+                                 "type" : "array"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/scan/nfs",
+                        "text" : "nfs"
+                     },
+                     {
+                        "info" : {
+                           "GET" : {
+                              "description" : "Scan remote CIFS server.",
+                              "method" : "GET",
+                              "name" : "cifsscan",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "domain" : {
+                                       "description" : "SMB domain (Workgroup).",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "password" : {
+                                       "description" : "User password.",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "server" : {
+                                       "description" : "The server address (name or IP).",
+                                       "format" : "pve-storage-server",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "username" : {
+                                       "description" : "User name.",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/storage",
+                                    [
+                                       "Datastore.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "items" : {
+                                    "properties" : {
+                                       "description" : {
+                                          "description" : "Descriptive text from server.",
+                                          "type" : "string"
+                                       },
+                                       "share" : {
+                                          "description" : "The cifs share name.",
+                                          "type" : "string"
+                                       }
+                                    },
+                                    "type" : "object"
+                                 },
+                                 "type" : "array"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/scan/cifs",
+                        "text" : "cifs"
+                     },
+                     {
+                        "info" : {
+                           "GET" : {
+                              "description" : "Scan remote GlusterFS server.",
+                              "method" : "GET",
+                              "name" : "glusterfsscan",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "server" : {
+                                       "description" : "The server address (name or IP).",
+                                       "format" : "pve-storage-server",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/storage",
+                                    [
+                                       "Datastore.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "items" : {
+                                    "properties" : {
+                                       "volname" : {
+                                          "description" : "The volume name.",
+                                          "type" : "string"
+                                       }
+                                    },
+                                    "type" : "object"
+                                 },
+                                 "type" : "array"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/scan/glusterfs",
+                        "text" : "glusterfs"
+                     },
+                     {
+                        "info" : {
+                           "GET" : {
+                              "description" : "Scan remote iSCSI server.",
+                              "method" : "GET",
+                              "name" : "iscsiscan",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "portal" : {
+                                       "description" : "The iSCSI portal (IP or DNS name with optional port).",
+                                       "format" : "pve-storage-portal-dns",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/storage",
+                                    [
+                                       "Datastore.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "items" : {
+                                    "properties" : {
+                                       "portal" : {
+                                          "description" : "The iSCSI portal name.",
+                                          "type" : "string"
+                                       },
+                                       "target" : {
+                                          "description" : "The iSCSI target name.",
+                                          "type" : "string"
+                                       }
+                                    },
+                                    "type" : "object"
+                                 },
+                                 "type" : "array"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/scan/iscsi",
+                        "text" : "iscsi"
+                     },
+                     {
+                        "info" : {
+                           "GET" : {
+                              "description" : "List local LVM volume groups.",
                               "method" : "GET",
-                              "name" : "nfsscan",
+                              "name" : "lvmscan",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
@@ -20790,11 +28036,6 @@ var pveapi = [
                                        "format" : "pve-node",
                                        "type" : "string",
                                        "typetext" : "<string>"
-                                    },
-                                    "server" : {
-                                       "format" : "pve-storage-server",
-                                       "type" : "string",
-                                       "typetext" : "<string>"
                                     }
                                  }
                               },
@@ -20812,10 +28053,8 @@ var pveapi = [
                               "returns" : {
                                  "items" : {
                                     "properties" : {
-                                       "options" : {
-                                          "type" : "string"
-                                       },
-                                       "path" : {
+                                       "vg" : {
+                                          "description" : "The LVM logical volume group name.",
                                           "type" : "string"
                                        }
                                     },
@@ -20826,15 +28065,15 @@ var pveapi = [
                            }
                         },
                         "leaf" : 1,
-                        "path" : "/nodes/{node}/scan/nfs",
-                        "text" : "nfs"
+                        "path" : "/nodes/{node}/scan/lvm",
+                        "text" : "lvm"
                      },
                      {
                         "info" : {
                            "GET" : {
-                              "description" : "Scan remote GlusterFS server.",
+                              "description" : "List local LVM Thin Pools.",
                               "method" : "GET",
-                              "name" : "glusterfsscan",
+                              "name" : "lvmthinscan",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
@@ -20844,10 +28083,10 @@ var pveapi = [
                                        "type" : "string",
                                        "typetext" : "<string>"
                                     },
-                                    "server" : {
-                                       "format" : "pve-storage-server",
-                                       "type" : "string",
-                                       "typetext" : "<string>"
+                                    "vg" : {
+                                       "maxLength" : 100,
+                                       "pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+",
+                                       "type" : "string"
                                     }
                                  }
                               },
@@ -20865,7 +28104,8 @@ var pveapi = [
                               "returns" : {
                                  "items" : {
                                     "properties" : {
-                                       "volname" : {
+                                       "lv" : {
+                                          "description" : "The LVM Thin Pool name (LVM logical volume).",
                                           "type" : "string"
                                        }
                                     },
@@ -20876,15 +28116,15 @@ var pveapi = [
                            }
                         },
                         "leaf" : 1,
-                        "path" : "/nodes/{node}/scan/glusterfs",
-                        "text" : "glusterfs"
+                        "path" : "/nodes/{node}/scan/lvmthin",
+                        "text" : "lvmthin"
                      },
                      {
                         "info" : {
                            "GET" : {
-                              "description" : "Scan remote iSCSI server.",
+                              "description" : "List local USB devices.",
                               "method" : "GET",
-                              "name" : "iscsiscan",
+                              "name" : "usbscan",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
@@ -20893,20 +28133,15 @@ var pveapi = [
                                        "format" : "pve-node",
                                        "type" : "string",
                                        "typetext" : "<string>"
-                                    },
-                                    "portal" : {
-                                       "format" : "pve-storage-portal-dns",
-                                       "type" : "string",
-                                       "typetext" : "<string>"
                                     }
                                  }
                               },
                               "permissions" : {
                                  "check" : [
                                     "perm",
-                                    "/storage",
+                                    "/",
                                     [
-                                       "Datastore.Allocate"
+                                       "Sys.Modify"
                                     ]
                                  ]
                               },
@@ -20915,10 +28150,44 @@ var pveapi = [
                               "returns" : {
                                  "items" : {
                                     "properties" : {
-                                       "portal" : {
+                                       "busnum" : {
+                                          "type" : "integer"
+                                       },
+                                       "class" : {
+                                          "type" : "integer"
+                                       },
+                                       "devnum" : {
+                                          "type" : "integer"
+                                       },
+                                       "level" : {
+                                          "type" : "integer"
+                                       },
+                                       "manufacturer" : {
+                                          "optional" : 1,
                                           "type" : "string"
                                        },
-                                       "target" : {
+                                       "port" : {
+                                          "type" : "integer"
+                                       },
+                                       "prodid" : {
+                                          "type" : "string"
+                                       },
+                                       "product" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "serial" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "speed" : {
+                                          "type" : "string"
+                                       },
+                                       "usbpath" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "vendid" : {
                                           "type" : "string"
                                        }
                                     },
@@ -20929,15 +28198,169 @@ var pveapi = [
                            }
                         },
                         "leaf" : 1,
-                        "path" : "/nodes/{node}/scan/iscsi",
-                        "text" : "iscsi"
-                     },
+                        "path" : "/nodes/{node}/scan/usb",
+                        "text" : "usb"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "description" : "Index of available scan methods",
+                        "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" : {
+                                 "method" : {
+                                    "type" : "string"
+                                 }
+                              },
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{method}",
+                                 "rel" : "child"
+                              }
+                           ],
+                           "type" : "array"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/nodes/{node}/scan",
+                  "text" : "scan"
+               },
+               {
+                  "children" : [
                      {
+                        "children" : [
+                           {
+                              "children" : [
+                                 {
+                                    "info" : {
+                                       "GET" : {
+                                          "description" : "List mediated device types for given PCI device.",
+                                          "method" : "GET",
+                                          "name" : "mdevscan",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "pciid" : {
+                                                   "description" : "The PCI ID to list the mdev types for.",
+                                                   "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
+                                                   "type" : "string"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "check" : [
+                                                "perm",
+                                                "/",
+                                                [
+                                                   "Sys.Modify"
+                                                ]
+                                             ]
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "items" : {
+                                                "properties" : {
+                                                   "available" : {
+                                                      "description" : "The number of still available instances of this type.",
+                                                      "type" : "integer"
+                                                   },
+                                                   "description" : {
+                                                      "type" : "string"
+                                                   },
+                                                   "type" : {
+                                                      "description" : "The name of the mdev type.",
+                                                      "type" : "string"
+                                                   }
+                                                },
+                                                "type" : "object"
+                                             },
+                                             "type" : "array"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/hardware/pci/{pciid}/mdev",
+                                    "text" : "mdev"
+                                 }
+                              ],
+                              "info" : {
+                                 "GET" : {
+                                    "description" : "Index of available pci methods",
+                                    "method" : "GET",
+                                    "name" : "pciindex",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "pciid" : {
+                                             "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
+                                             "type" : "string"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "user" : "all"
+                                    },
+                                    "returns" : {
+                                       "items" : {
+                                          "properties" : {
+                                             "method" : {
+                                                "type" : "string"
+                                             }
+                                          },
+                                          "type" : "object"
+                                       },
+                                       "links" : [
+                                          {
+                                             "href" : "{method}",
+                                             "rel" : "child"
+                                          }
+                                       ],
+                                       "type" : "array"
+                                    }
+                                 }
+                              },
+                              "leaf" : 0,
+                              "path" : "/nodes/{node}/hardware/pci/{pciid}",
+                              "text" : "{pciid}"
+                           }
+                        ],
                         "info" : {
                            "GET" : {
-                              "description" : "List local LVM volume groups.",
+                              "description" : "List local PCI devices.",
                               "method" : "GET",
-                              "name" : "lvmscan",
+                              "name" : "pciscan",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
@@ -20946,15 +28369,30 @@ var pveapi = [
                                        "format" : "pve-node",
                                        "type" : "string",
                                        "typetext" : "<string>"
+                                    },
+                                    "pci-class-blacklist" : {
+                                       "default" : "05;06;08;0b",
+                                       "description" : "A list of blacklisted PCI classes, which will not be returned. Following are filtered by default: Memory Controller (05), Bridge (06), Generic System Peripheral (08) and Processor (0b).",
+                                       "format" : "string-list",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "verbose" : {
+                                       "default" : 1,
+                                       "description" : "If disabled, does only print the PCI IDs. Otherwise, additional information like vendor and device will be returned.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
                                     }
                                  }
                               },
                               "permissions" : {
                                  "check" : [
                                     "perm",
-                                    "/storage",
+                                    "/",
                                     [
-                                       "Datastore.Allocate"
+                                       "Sys.Modify"
                                     ]
                                  ]
                               },
@@ -20963,340 +28401,624 @@ var pveapi = [
                               "returns" : {
                                  "items" : {
                                     "properties" : {
-                                       "vg" : {
+                                       "class" : {
+                                          "description" : "The PCI Class of the device.",
+                                          "type" : "string"
+                                       },
+                                       "device" : {
+                                          "description" : "The Device ID.",
+                                          "type" : "string"
+                                       },
+                                       "device_name" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "id" : {
+                                          "description" : "The PCI ID.",
+                                          "type" : "string"
+                                       },
+                                       "iommugroup" : {
+                                          "description" : "The IOMMU group in which the device is in. If no IOMMU group is detected, it is set to -1.",
+                                          "type" : "integer"
+                                       },
+                                       "mdev" : {
+                                          "description" : "If set, marks that the device is capable of creating mediated devices.",
+                                          "optional" : 1,
+                                          "type" : "boolean"
+                                       },
+                                       "subsystem_device" : {
+                                          "description" : "The Subsystem Device ID.",
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "subsystem_device_name" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "subsystem_vendor" : {
+                                          "description" : "The Subsystem Vendor ID.",
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "subsystem_vendor_name" : {
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       },
+                                       "vendor" : {
+                                          "description" : "The Vendor ID.",
+                                          "type" : "string"
+                                       },
+                                       "vendor_name" : {
+                                          "optional" : 1,
                                           "type" : "string"
                                        }
                                     },
                                     "type" : "object"
                                  },
+                                 "links" : [
+                                    {
+                                       "href" : "{id}",
+                                       "rel" : "child"
+                                    }
+                                 ],
                                  "type" : "array"
                               }
                            }
                         },
-                        "leaf" : 1,
-                        "path" : "/nodes/{node}/scan/lvm",
-                        "text" : "lvm"
-                     },
+                        "leaf" : 0,
+                        "path" : "/nodes/{node}/hardware/pci",
+                        "text" : "pci"
+                     }
+                  ],
+                  "info" : {
+                     "GET" : {
+                        "description" : "Index of hardware types",
+                        "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" : {
+                                    "type" : "string"
+                                 }
+                              },
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{type}",
+                                 "rel" : "child"
+                              }
+                           ],
+                           "type" : "array"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/nodes/{node}/hardware",
+                  "text" : "hardware"
+               },
+               {
+                  "children" : [
                      {
-                        "info" : {
-                           "GET" : {
-                              "description" : "List local LVM Thin Pools.",
-                              "method" : "GET",
-                              "name" : "lvmthinscan",
-                              "parameters" : {
-                                 "additionalProperties" : 0,
-                                 "properties" : {
-                                    "node" : {
-                                       "description" : "The cluster node name.",
-                                       "format" : "pve-node",
-                                       "type" : "string",
-                                       "typetext" : "<string>"
+                        "children" : [
+                           {
+                              "children" : [
+                                 {
+                                    "info" : {
+                                       "DELETE" : {
+                                          "description" : "Delete volume",
+                                          "method" : "DELETE",
+                                          "name" : "delete",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "storage" : {
+                                                   "description" : "The storage identifier.",
+                                                   "format" : "pve-storage-id",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "volume" : {
+                                                   "description" : "Volume identifier",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "description" : "You need 'Datastore.Allocate' privilege on the storage (or 'Datastore.AllocateSpace' for backup volumes if you have VM.Backup privilege on the VM).",
+                                             "user" : "all"
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "type" : "null"
+                                          }
+                                       },
+                                       "GET" : {
+                                          "description" : "Get volume attributes",
+                                          "method" : "GET",
+                                          "name" : "info",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "storage" : {
+                                                   "description" : "The storage identifier.",
+                                                   "format" : "pve-storage-id",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "volume" : {
+                                                   "description" : "Volume identifier",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                }
+                                             }
+                                          },
+                                          "permissions" : {
+                                             "description" : "You need read access for the volume.",
+                                             "user" : "all"
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "type" : "object"
+                                          }
+                                       },
+                                       "POST" : {
+                                          "description" : "Copy a volume. This is experimental code - do not use.",
+                                          "method" : "POST",
+                                          "name" : "copy",
+                                          "parameters" : {
+                                             "additionalProperties" : 0,
+                                             "properties" : {
+                                                "node" : {
+                                                   "description" : "The cluster node name.",
+                                                   "format" : "pve-node",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "storage" : {
+                                                   "description" : "The storage identifier.",
+                                                   "format" : "pve-storage-id",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "target" : {
+                                                   "description" : "Target volume identifier",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "target_node" : {
+                                                   "description" : "Target node. Default is local node.",
+                                                   "format" : "pve-node",
+                                                   "optional" : 1,
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                },
+                                                "volume" : {
+                                                   "description" : "Source volume identifier",
+                                                   "type" : "string",
+                                                   "typetext" : "<string>"
+                                                }
+                                             }
+                                          },
+                                          "protected" : 1,
+                                          "proxyto" : "node",
+                                          "returns" : {
+                                             "type" : "string"
+                                          }
+                                       }
+                                    },
+                                    "leaf" : 1,
+                                    "path" : "/nodes/{node}/storage/{storage}/content/{volume}",
+                                    "text" : "{volume}"
+                                 }
+                              ],
+                              "info" : {
+                                 "GET" : {
+                                    "description" : "List storage content.",
+                                    "method" : "GET",
+                                    "name" : "index",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "content" : {
+                                             "description" : "Only list content of this type.",
+                                             "format" : "pve-storage-content",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "storage" : {
+                                             "description" : "The storage identifier.",
+                                             "format" : "pve-storage-id",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "vmid" : {
+                                             "description" : "Only list images for this VM",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/storage/{storage}",
+                                          [
+                                             "Datastore.Audit",
+                                             "Datastore.AllocateSpace"
+                                          ],
+                                          "any",
+                                          1
+                                       ]
                                     },
-                                    "vg" : {
-                                       "maxLength" : 100,
-                                       "pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+",
-                                       "type" : "string"
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "items" : {
+                                          "properties" : {
+                                             "format" : {
+                                                "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
+                                                "type" : "string"
+                                             },
+                                             "parent" : {
+                                                "description" : "Volume identifier of parent (for linked cloned).",
+                                                "optional" : 1,
+                                                "type" : "string"
+                                             },
+                                             "size" : {
+                                                "description" : "Volume size in bytes.",
+                                                "renderer" : "bytes",
+                                                "type" : "integer"
+                                             },
+                                             "used" : {
+                                                "description" : "Used space. Please note that most storage plugins does not report anything useful here.",
+                                                "optional" : 1,
+                                                "renderer" : "bytes",
+                                                "type" : "integer"
+                                             },
+                                             "vmid" : {
+                                                "description" : "Associated Owner VMID.",
+                                                "optional" : 1,
+                                                "type" : "integer"
+                                             },
+                                             "volid" : {
+                                                "description" : "Volume identifier.",
+                                                "type" : "string"
+                                             }
+                                          },
+                                          "type" : "object"
+                                       },
+                                       "links" : [
+                                          {
+                                             "href" : "{volid}",
+                                             "rel" : "child"
+                                          }
+                                       ],
+                                       "type" : "array"
                                     }
-                                 }
-                              },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/storage",
-                                    [
-                                       "Datastore.Allocate"
-                                    ]
-                                 ]
-                              },
-                              "protected" : 1,
-                              "proxyto" : "node",
-                              "returns" : {
-                                 "items" : {
-                                    "properties" : {
-                                       "lv" : {
-                                          "type" : "string"
+                                 },
+                                 "POST" : {
+                                    "description" : "Allocate disk images.",
+                                    "method" : "POST",
+                                    "name" : "create",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "filename" : {
+                                             "description" : "The name of the file to create.",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "format" : {
+                                             "enum" : [
+                                                "raw",
+                                                "qcow2",
+                                                "subvol"
+                                             ],
+                                             "optional" : 1,
+                                             "requires" : "size",
+                                             "type" : "string"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "size" : {
+                                             "description" : "Size in kilobyte (1024 bytes). Optional suffixes 'M' (megabyte, 1024K) and 'G' (gigabyte, 1024M)",
+                                             "pattern" : "\\d+[MG]?",
+                                             "type" : "string"
+                                          },
+                                          "storage" : {
+                                             "description" : "The storage identifier.",
+                                             "format" : "pve-storage-id",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "vmid" : {
+                                             "description" : "Specify owner VM",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          }
                                        }
                                     },
-                                    "type" : "object"
-                                 },
-                                 "type" : "array"
-                              }
-                           }
-                        },
-                        "leaf" : 1,
-                        "path" : "/nodes/{node}/scan/lvmthin",
-                        "text" : "lvmthin"
-                     },
-                     {
-                        "info" : {
-                           "GET" : {
-                              "description" : "List local USB devices.",
-                              "method" : "GET",
-                              "name" : "usbscan",
-                              "parameters" : {
-                                 "additionalProperties" : 0,
-                                 "properties" : {
-                                    "node" : {
-                                       "description" : "The cluster node name.",
-                                       "format" : "pve-node",
-                                       "type" : "string",
-                                       "typetext" : "<string>"
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/storage/{storage}",
+                                          [
+                                             "Datastore.AllocateSpace"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "description" : "Volume identifier",
+                                       "type" : "string"
                                     }
                                  }
                               },
-                              "permissions" : {
-                                 "check" : [
-                                    "perm",
-                                    "/",
-                                    [
-                                       "Sys.Modify"
-                                    ]
-                                 ]
-                              },
-                              "protected" : 1,
-                              "proxyto" : "node",
-                              "returns" : {
-                                 "items" : {
-                                    "properties" : {
-                                       "busnum" : {
-                                          "type" : "integer"
-                                       },
-                                       "class" : {
-                                          "type" : "integer"
-                                       },
-                                       "devnum" : {
-                                          "type" : "integer"
-                                       },
-                                       "level" : {
-                                          "type" : "integer"
-                                       },
-                                       "manufacturer" : {
-                                          "optional" : 1,
-                                          "type" : "string"
-                                       },
-                                       "port" : {
-                                          "type" : "integer"
-                                       },
-                                       "prodid" : {
-                                          "type" : "string"
-                                       },
-                                       "product" : {
-                                          "optional" : 1,
-                                          "type" : "string"
-                                       },
-                                       "serial" : {
-                                          "optional" : 1,
-                                          "type" : "string"
-                                       },
-                                       "speed" : {
-                                          "type" : "string"
-                                       },
-                                       "usbpath" : {
-                                          "optional" : 1,
-                                          "type" : "string"
-                                       },
-                                       "vendid" : {
-                                          "type" : "string"
-                                       }
-                                    },
-                                    "type" : "object"
-                                 },
-                                 "type" : "array"
-                              }
-                           }
-                        },
-                        "leaf" : 1,
-                        "path" : "/nodes/{node}/scan/usb",
-                        "text" : "usb"
-                     }
-                  ],
-                  "info" : {
-                     "GET" : {
-                        "description" : "Index of available scan methods",
-                        "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" : {
-                                 "method" : {
-                                    "type" : "string"
+                              "leaf" : 0,
+                              "path" : "/nodes/{node}/storage/{storage}/content",
+                              "text" : "content"
+                           },
+                           {
+                              "info" : {
+                                 "GET" : {
+                                    "description" : "Read storage status.",
+                                    "method" : "GET",
+                                    "name" : "read_status",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "storage" : {
+                                             "description" : "The storage identifier.",
+                                             "format" : "pve-storage-id",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/storage/{storage}",
+                                          [
+                                             "Datastore.Audit",
+                                             "Datastore.AllocateSpace"
+                                          ],
+                                          "any",
+                                          1
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "object"
+                                    }
                                  }
                               },
-                              "type" : "object"
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/storage/{storage}/status",
+                              "text" : "status"
                            },
-                           "links" : [
-                              {
-                                 "href" : "{method}",
-                                 "rel" : "child"
-                              }
-                           ],
-                           "type" : "array"
-                        }
-                     }
-                  },
-                  "leaf" : 0,
-                  "path" : "/nodes/{node}/scan",
-                  "text" : "scan"
-               },
-               {
-                  "children" : [
-                     {
-                        "children" : [
                            {
-                              "children" : [
-                                 {
-                                    "info" : {
-                                       "DELETE" : {
-                                          "description" : "Delete volume",
-                                          "method" : "DELETE",
-                                          "name" : "delete",
-                                          "parameters" : {
-                                             "additionalProperties" : 0,
-                                             "properties" : {
-                                                "node" : {
-                                                   "description" : "The cluster node name.",
-                                                   "format" : "pve-node",
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
-                                                },
-                                                "storage" : {
-                                                   "description" : "The storage identifier.",
-                                                   "format" : "pve-storage-id",
-                                                   "optional" : 1,
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
-                                                },
-                                                "volume" : {
-                                                   "description" : "Volume identifier",
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
-                                                }
-                                             }
+                              "info" : {
+                                 "GET" : {
+                                    "description" : "Read storage RRD statistics (returns PNG).",
+                                    "method" : "GET",
+                                    "name" : "rrd",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "cf" : {
+                                             "description" : "The RRD consolidation function",
+                                             "enum" : [
+                                                "AVERAGE",
+                                                "MAX"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
                                           },
-                                          "permissions" : {
-                                             "description" : "You need 'Datastore.Allocate' privilege on the storage (or 'Datastore.AllocateSpace' for backup volumes if you have VM.Backup privilege on the VM).",
-                                             "user" : "all"
+                                          "ds" : {
+                                             "description" : "The list of datasources you want to display.",
+                                             "format" : "pve-configid-list",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
-                                          "protected" : 1,
-                                          "proxyto" : "node",
-                                          "returns" : {
-                                             "type" : "null"
-                                          }
-                                       },
-                                       "GET" : {
-                                          "description" : "Get volume attributes",
-                                          "method" : "GET",
-                                          "name" : "info",
-                                          "parameters" : {
-                                             "additionalProperties" : 0,
-                                             "properties" : {
-                                                "node" : {
-                                                   "description" : "The cluster node name.",
-                                                   "format" : "pve-node",
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
-                                                },
-                                                "storage" : {
-                                                   "description" : "The storage identifier.",
-                                                   "format" : "pve-storage-id",
-                                                   "optional" : 1,
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
-                                                },
-                                                "volume" : {
-                                                   "description" : "Volume identifier",
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
-                                                }
-                                             }
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
-                                          "permissions" : {
-                                             "description" : "You need read access for the volume.",
-                                             "user" : "all"
+                                          "storage" : {
+                                             "description" : "The storage identifier.",
+                                             "format" : "pve-storage-id",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
-                                          "protected" : 1,
-                                          "proxyto" : "node",
-                                          "returns" : {
-                                             "type" : "object"
+                                          "timeframe" : {
+                                             "description" : "Specify the time frame you are interested in.",
+                                             "enum" : [
+                                                "hour",
+                                                "day",
+                                                "week",
+                                                "month",
+                                                "year"
+                                             ],
+                                             "type" : "string"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/storage/{storage}",
+                                          [
+                                             "Datastore.Audit",
+                                             "Datastore.AllocateSpace"
+                                          ],
+                                          "any",
+                                          1
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "properties" : {
+                                          "filename" : {
+                                             "type" : "string"
                                           }
                                        },
-                                       "POST" : {
-                                          "description" : "Copy a volume. This is experimental code - do not use.",
-                                          "method" : "POST",
-                                          "name" : "copy",
-                                          "parameters" : {
-                                             "additionalProperties" : 0,
-                                             "properties" : {
-                                                "node" : {
-                                                   "description" : "The cluster node name.",
-                                                   "format" : "pve-node",
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
-                                                },
-                                                "storage" : {
-                                                   "description" : "The storage identifier.",
-                                                   "format" : "pve-storage-id",
-                                                   "optional" : 1,
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
-                                                },
-                                                "target" : {
-                                                   "description" : "Target volume identifier",
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
-                                                },
-                                                "target_node" : {
-                                                   "description" : "Target node. Default is local node.",
-                                                   "format" : "pve-node",
-                                                   "optional" : 1,
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
-                                                },
-                                                "volume" : {
-                                                   "description" : "Source volume identifier",
-                                                   "type" : "string",
-                                                   "typetext" : "<string>"
-                                                }
-                                             }
+                                       "type" : "object"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/storage/{storage}/rrd",
+                              "text" : "rrd"
+                           },
+                           {
+                              "info" : {
+                                 "GET" : {
+                                    "description" : "Read storage RRD statistics.",
+                                    "method" : "GET",
+                                    "name" : "rrddata",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "cf" : {
+                                             "description" : "The RRD consolidation function",
+                                             "enum" : [
+                                                "AVERAGE",
+                                                "MAX"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "storage" : {
+                                             "description" : "The storage identifier.",
+                                             "format" : "pve-storage-id",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           },
-                                          "protected" : 1,
-                                          "proxyto" : "node",
-                                          "returns" : {
+                                          "timeframe" : {
+                                             "description" : "Specify the time frame you are interested in.",
+                                             "enum" : [
+                                                "hour",
+                                                "day",
+                                                "week",
+                                                "month",
+                                                "year"
+                                             ],
                                              "type" : "string"
                                           }
                                        }
                                     },
-                                    "leaf" : 1,
-                                    "path" : "/nodes/{node}/storage/{storage}/content/{volume}",
-                                    "text" : "{volume}"
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/storage/{storage}",
+                                          [
+                                             "Datastore.Audit",
+                                             "Datastore.AllocateSpace"
+                                          ],
+                                          "any",
+                                          1
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "items" : {
+                                          "properties" : {},
+                                          "type" : "object"
+                                       },
+                                       "type" : "array"
+                                    }
                                  }
-                              ],
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/storage/{storage}/rrddata",
+                              "text" : "rrddata"
+                           },
+                           {
                               "info" : {
-                                 "GET" : {
-                                    "description" : "List storage content.",
-                                    "method" : "GET",
-                                    "name" : "index",
+                                 "POST" : {
+                                    "description" : "Upload templates and ISO images.",
+                                    "method" : "POST",
+                                    "name" : "upload",
                                     "parameters" : {
                                        "additionalProperties" : 0,
                                        "properties" : {
                                           "content" : {
-                                             "description" : "Only list content of this type.",
+                                             "description" : "Content type.",
                                              "format" : "pve-storage-content",
-                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "filename" : {
+                                             "description" : "The name of the file to create.",
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           },
@@ -21312,13 +29034,11 @@ var pveapi = [
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           },
-                                          "vmid" : {
-                                             "description" : "Only list images for this VM",
-                                             "format" : "pve-vmid",
-                                             "minimum" : 1,
+                                          "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" : "integer",
-                                             "typetext" : "<integer> (1 - N)"
+                                             "type" : "string",
+                                             "typetext" : "<string>"
                                           }
                                        }
                                     },
@@ -21327,313 +29047,605 @@ var pveapi = [
                                           "perm",
                                           "/storage/{storage}",
                                           [
-                                             "Datastore.Audit",
-                                             "Datastore.AllocateSpace"
-                                          ],
-                                          "any",
-                                          1
+                                             "Datastore.AllocateTemplate"
+                                          ]
                                        ]
                                     },
                                     "protected" : 1,
-                                    "proxyto" : "node",
                                     "returns" : {
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/storage/{storage}/upload",
+                              "text" : "upload"
+                           }
+                        ],
+                        "info" : {
+                           "GET" : {
+                              "description" : "",
+                              "method" : "GET",
+                              "name" : "diridx",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "storage" : {
+                                       "description" : "The storage identifier.",
+                                       "format" : "pve-storage-id",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/storage/{storage}",
+                                    [
+                                       "Datastore.Audit",
+                                       "Datastore.AllocateSpace"
+                                    ],
+                                    "any",
+                                    1
+                                 ]
+                              },
+                              "returns" : {
+                                 "items" : {
+                                    "properties" : {
+                                       "subdir" : {
+                                          "type" : "string"
+                                       }
+                                    },
+                                    "type" : "object"
+                                 },
+                                 "links" : [
+                                    {
+                                       "href" : "{subdir}",
+                                       "rel" : "child"
+                                    }
+                                 ],
+                                 "type" : "array"
+                              }
+                           }
+                        },
+                        "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" : {
+                                 "active" : {
+                                    "description" : "Set when storage is accessible.",
+                                    "optional" : 1,
+                                    "type" : "boolean"
+                                 },
+                                 "avail" : {
+                                    "description" : "Available storage space in bytes.",
+                                    "optional" : 1,
+                                    "renderer" : "bytes",
+                                    "type" : "integer"
+                                 },
+                                 "content" : {
+                                    "description" : "Allowed storage content types.",
+                                    "format" : "pve-storage-content-list",
+                                    "type" : "string"
+                                 },
+                                 "enabled" : {
+                                    "description" : "Set when storage is enabled (not disabled).",
+                                    "optional" : 1,
+                                    "type" : "boolean"
+                                 },
+                                 "shared" : {
+                                    "description" : "Shared flag from storage configuration.",
+                                    "optional" : 1,
+                                    "type" : "boolean"
+                                 },
+                                 "storage" : {
+                                    "description" : "The storage identifier.",
+                                    "format" : "pve-storage-id",
+                                    "type" : "string"
+                                 },
+                                 "total" : {
+                                    "description" : "Total storage space in bytes.",
+                                    "optional" : 1,
+                                    "renderer" : "bytes",
+                                    "type" : "integer"
+                                 },
+                                 "type" : {
+                                    "description" : "Storage type.",
+                                    "type" : "string"
+                                 },
+                                 "used" : {
+                                    "description" : "Used storage space in bytes.",
+                                    "optional" : 1,
+                                    "renderer" : "bytes",
+                                    "type" : "integer"
+                                 },
+                                 "used_fraction" : {
+                                    "description" : "Used fraction (used/total).",
+                                    "optional" : 1,
+                                    "renderer" : "fraction_as_percentage",
+                                    "type" : "number"
+                                 }
+                              },
+                              "type" : "object"
+                           },
+                           "links" : [
+                              {
+                                 "href" : "{storage}",
+                                 "rel" : "child"
+                              }
+                           ],
+                           "type" : "array"
+                        }
+                     }
+                  },
+                  "leaf" : 0,
+                  "path" : "/nodes/{node}/storage",
+                  "text" : "storage"
+               },
+               {
+                  "children" : [
+                     {
+                        "info" : {
+                           "GET" : {
+                              "description" : "List LVM Volume Groups",
+                              "method" : "GET",
+                              "name" : "index",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Audit",
+                                       "Datastore.Audit"
+                                    ],
+                                    "any",
+                                    1
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "properties" : {
+                                    "children" : {
                                        "items" : {
                                           "properties" : {
-                                             "volid" : {
+                                             "children" : {
+                                                "description" : "The underlying physical volumes",
+                                                "items" : {
+                                                   "properties" : {
+                                                      "free" : {
+                                                         "description" : "The free bytes in the physical volume",
+                                                         "type" : "integer"
+                                                      },
+                                                      "leaf" : {
+                                                         "type" : "boolean"
+                                                      },
+                                                      "name" : {
+                                                         "description" : "The name of the physical volume",
+                                                         "type" : "string"
+                                                      },
+                                                      "size" : {
+                                                         "description" : "The size of the physical volume in bytes",
+                                                         "type" : "integer"
+                                                      }
+                                                   },
+                                                   "type" : "object"
+                                                },
+                                                "optional" : 1,
+                                                "type" : "array"
+                                             },
+                                             "free" : {
+                                                "description" : "The free bytes in the volume group",
+                                                "type" : "integer"
+                                             },
+                                             "leaf" : {
+                                                "type" : "boolean"
+                                             },
+                                             "name" : {
+                                                "description" : "The name of the volume group",
                                                 "type" : "string"
+                                             },
+                                             "size" : {
+                                                "description" : "The size of the volume group in bytes",
+                                                "type" : "integer"
                                              }
                                           },
                                           "type" : "object"
                                        },
-                                       "links" : [
-                                          {
-                                             "href" : "{volid}",
-                                             "rel" : "child"
-                                          }
-                                       ],
                                        "type" : "array"
+                                    },
+                                    "leaf" : {
+                                       "type" : "boolean"
                                     }
                                  },
-                                 "POST" : {
-                                    "description" : "Allocate disk images.",
-                                    "method" : "POST",
-                                    "name" : "create",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "filename" : {
-                                             "description" : "The name of the file to create.",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "format" : {
-                                             "enum" : [
-                                                "raw",
-                                                "qcow2",
-                                                "subvol"
-                                             ],
-                                             "optional" : 1,
-                                             "requires" : "size",
-                                             "type" : "string"
-                                          },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "size" : {
-                                             "description" : "Size in kilobyte (1024 bytes). Optional suffixes 'M' (megabyte, 1024K) and 'G' (gigabyte, 1024M)",
-                                             "pattern" : "\\d+[MG]?",
-                                             "type" : "string"
-                                          },
-                                          "storage" : {
-                                             "description" : "The storage identifier.",
-                                             "format" : "pve-storage-id",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "vmid" : {
-                                             "description" : "Specify owner VM",
-                                             "format" : "pve-vmid",
-                                             "minimum" : 1,
-                                             "type" : "integer",
-                                             "typetext" : "<integer> (1 - N)"
-                                          }
-                                       }
+                                 "type" : "object"
+                              }
+                           },
+                           "POST" : {
+                              "description" : "Create an LVM Volume Group",
+                              "method" : "POST",
+                              "name" : "create",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "add_storage" : {
+                                       "default" : 0,
+                                       "description" : "Configure storage using the Volume Group",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
                                     },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/storage/{storage}",
-                                          [
-                                             "Datastore.AllocateSpace"
-                                          ]
-                                       ]
+                                    "device" : {
+                                       "description" : "The block device you want to create the volume group on",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
-                                    "protected" : 1,
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "description" : "Volume identifier",
-                                       "type" : "string"
+                                    "name" : {
+                                       "description" : "The storage identifier.",
+                                       "format" : "pve-storage-id",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
-                              "leaf" : 0,
-                              "path" : "/nodes/{node}/storage/{storage}/content",
-                              "text" : "content"
-                           },
-                           {
-                              "info" : {
-                                 "GET" : {
-                                    "description" : "Read storage status.",
-                                    "method" : "GET",
-                                    "name" : "read_status",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "storage" : {
-                                             "description" : "The storage identifier.",
-                                             "format" : "pve-storage-id",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          }
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Modify",
+                                       "Datastore.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "type" : "string"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/disks/lvm",
+                        "text" : "lvm"
+                     },
+                     {
+                        "info" : {
+                           "GET" : {
+                              "description" : "List LVM thinpools",
+                              "method" : "GET",
+                              "name" : "index",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Audit",
+                                       "Datastore.Audit"
+                                    ],
+                                    "any",
+                                    1
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "items" : {
+                                    "properties" : {
+                                       "lv" : {
+                                          "description" : "The name of the thinpool.",
+                                          "type" : "string"
+                                       },
+                                       "lv_size" : {
+                                          "description" : "The size of the thinpool in bytes.",
+                                          "type" : "integer"
+                                       },
+                                       "metadata_size" : {
+                                          "description" : "The size of the metadata lv in bytes.",
+                                          "type" : "integer"
+                                       },
+                                       "metadata_used" : {
+                                          "description" : "The used bytes of the metadata lv.",
+                                          "type" : "integer"
+                                       },
+                                       "used" : {
+                                          "description" : "The used bytes of the thinpool.",
+                                          "type" : "integer"
                                        }
                                     },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/storage/{storage}",
-                                          [
-                                             "Datastore.Audit",
-                                             "Datastore.AllocateSpace"
-                                          ],
-                                          "any",
-                                          1
-                                       ]
+                                    "type" : "object"
+                                 },
+                                 "type" : "array"
+                              }
+                           },
+                           "POST" : {
+                              "description" : "Create an LVM thinpool",
+                              "method" : "POST",
+                              "name" : "create",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "add_storage" : {
+                                       "default" : 0,
+                                       "description" : "Configure storage using the thinpool.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "device" : {
+                                       "description" : "The block device you want to create the thinpool on.",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "name" : {
+                                       "description" : "The storage identifier.",
+                                       "format" : "pve-storage-id",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     },
-                                    "protected" : 1,
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "properties" : {},
-                                       "type" : "object"
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/storage/{storage}/status",
-                              "text" : "status"
-                           },
-                           {
-                              "info" : {
-                                 "GET" : {
-                                    "description" : "Read storage RRD statistics (returns PNG).",
-                                    "method" : "GET",
-                                    "name" : "rrd",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "cf" : {
-                                             "description" : "The RRD consolidation function",
-                                             "enum" : [
-                                                "AVERAGE",
-                                                "MAX"
-                                             ],
-                                             "optional" : 1,
-                                             "type" : "string"
-                                          },
-                                          "ds" : {
-                                             "description" : "The list of datasources you want to display.",
-                                             "format" : "pve-configid-list",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "storage" : {
-                                             "description" : "The storage identifier.",
-                                             "format" : "pve-storage-id",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "timeframe" : {
-                                             "description" : "Specify the time frame you are interested in.",
-                                             "enum" : [
-                                                "hour",
-                                                "day",
-                                                "week",
-                                                "month",
-                                                "year"
-                                             ],
-                                             "type" : "string"
-                                          }
-                                       }
-                                    },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/storage/{storage}",
-                                          [
-                                             "Datastore.Audit",
-                                             "Datastore.AllocateSpace"
-                                          ],
-                                          "any",
-                                          1
-                                       ]
-                                    },
-                                    "protected" : 1,
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "properties" : {
-                                          "filename" : {
-                                             "type" : "string"
-                                          }
-                                       },
-                                       "type" : "object"
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Modify",
+                                       "Datastore.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "type" : "string"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/disks/lvmthin",
+                        "text" : "lvmthin"
+                     },
+                     {
+                        "info" : {
+                           "GET" : {
+                              "description" : "PVE Managed Directory storages.",
+                              "method" : "GET",
+                              "name" : "index",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/storage/{storage}/rrd",
-                              "text" : "rrd"
-                           },
-                           {
-                              "info" : {
-                                 "GET" : {
-                                    "description" : "Read storage RRD statistics.",
-                                    "method" : "GET",
-                                    "name" : "rrddata",
-                                    "parameters" : {
-                                       "additionalProperties" : 0,
-                                       "properties" : {
-                                          "cf" : {
-                                             "description" : "The RRD consolidation function",
-                                             "enum" : [
-                                                "AVERAGE",
-                                                "MAX"
-                                             ],
-                                             "optional" : 1,
-                                             "type" : "string"
-                                          },
-                                          "node" : {
-                                             "description" : "The cluster node name.",
-                                             "format" : "pve-node",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "storage" : {
-                                             "description" : "The storage identifier.",
-                                             "format" : "pve-storage-id",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "timeframe" : {
-                                             "description" : "Specify the time frame you are interested in.",
-                                             "enum" : [
-                                                "hour",
-                                                "day",
-                                                "week",
-                                                "month",
-                                                "year"
-                                             ],
-                                             "type" : "string"
-                                          }
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Audit",
+                                       "Datastore.Audit"
+                                    ],
+                                    "any",
+                                    1
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "items" : {
+                                    "properties" : {
+                                       "device" : {
+                                          "description" : "The mounted device.",
+                                          "type" : "string"
+                                       },
+                                       "options" : {
+                                          "description" : "The mount options.",
+                                          "type" : "string"
+                                       },
+                                       "path" : {
+                                          "description" : "The mount path.",
+                                          "type" : "string"
+                                       },
+                                       "type" : {
+                                          "description" : "The filesystem type.",
+                                          "type" : "string"
+                                       },
+                                       "unitfile" : {
+                                          "description" : "The path of the mount unit.",
+                                          "type" : "string"
                                        }
                                     },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/storage/{storage}",
-                                          [
-                                             "Datastore.Audit",
-                                             "Datastore.AllocateSpace"
-                                          ],
-                                          "any",
-                                          1
-                                       ]
+                                    "type" : "object"
+                                 },
+                                 "type" : "array"
+                              }
+                           },
+                           "POST" : {
+                              "description" : "Create a Filesystem on an unused disk. Will be mounted under '/mnt/pve/NAME'.",
+                              "method" : "POST",
+                              "name" : "create",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "add_storage" : {
+                                       "default" : 0,
+                                       "description" : "Configure storage using the directory.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
                                     },
-                                    "protected" : 1,
-                                    "proxyto" : "node",
-                                    "returns" : {
-                                       "items" : {
-                                          "properties" : {},
-                                          "type" : "object"
-                                       },
-                                       "type" : "array"
+                                    "device" : {
+                                       "description" : "The block device you want to create the filesystem on.",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "filesystem" : {
+                                       "default" : "ext4",
+                                       "description" : "The desired filesystem.",
+                                       "enum" : [
+                                          "ext4",
+                                          "xfs"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "name" : {
+                                       "description" : "The storage identifier.",
+                                       "format" : "pve-storage-id",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
                                     }
                                  }
                               },
-                              "leaf" : 1,
-                              "path" : "/nodes/{node}/storage/{storage}/rrddata",
-                              "text" : "rrddata"
-                           },
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Modify",
+                                       "Datastore.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "type" : "string"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "path" : "/nodes/{node}/disks/directory",
+                        "text" : "directory"
+                     },
+                     {
+                        "children" : [
                            {
                               "info" : {
-                                 "POST" : {
-                                    "description" : "Upload templates and ISO images.",
-                                    "method" : "POST",
-                                    "name" : "upload",
+                                 "GET" : {
+                                    "description" : "Get details about a zpool.",
+                                    "method" : "GET",
+                                    "name" : "detail",
                                     "parameters" : {
                                        "additionalProperties" : 0,
                                        "properties" : {
-                                          "content" : {
-                                             "description" : "Content type.",
-                                             "format" : "pve-storage-content",
-                                             "type" : "string",
-                                             "typetext" : "<string>"
-                                          },
-                                          "filename" : {
-                                             "description" : "The name of the file to create.",
+                                          "name" : {
+                                             "description" : "The storage identifier.",
+                                             "format" : "pve-storage-id",
                                              "type" : "string",
                                              "typetext" : "<string>"
                                           },
@@ -21642,46 +29654,100 @@ var pveapi = [
                                              "format" : "pve-node",
                                              "type" : "string",
                                              "typetext" : "<string>"
-                                          },
-                                          "storage" : {
-                                             "description" : "The storage identifier.",
-                                             "format" : "pve-storage-id",
-                                             "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",
-                                             "typetext" : "<string>"
                                           }
                                        }
                                     },
                                     "permissions" : {
                                        "check" : [
                                           "perm",
-                                          "/storage/{storage}",
+                                          "/",
                                           [
-                                             "Datastore.AllocateTemplate"
-                                          ]
+                                             "Sys.Audit",
+                                             "Datastore.Audit"
+                                          ],
+                                          "any",
+                                          1
                                        ]
                                     },
                                     "protected" : 1,
+                                    "proxyto" : "node",
                                     "returns" : {
-                                       "type" : "string"
+                                       "properties" : {
+                                          "action" : {
+                                             "description" : "Information about the recommended action to fix the state.",
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "children" : {
+                                             "description" : "The pool configuration information, including the vdevs for each section (e.g. spares, cache), may be nested.",
+                                             "items" : {
+                                                "properties" : {
+                                                   "cksum" : {
+                                                      "optional" : 1,
+                                                      "type" : "number"
+                                                   },
+                                                   "msg" : {
+                                                      "description" : "An optional message about the vdev.",
+                                                      "type" : "string"
+                                                   },
+                                                   "name" : {
+                                                      "description" : "The name of the vdev or section.",
+                                                      "type" : "string"
+                                                   },
+                                                   "read" : {
+                                                      "optional" : 1,
+                                                      "type" : "number"
+                                                   },
+                                                   "state" : {
+                                                      "description" : "The state of the vdev.",
+                                                      "optional" : 1,
+                                                      "type" : "string"
+                                                   },
+                                                   "write" : {
+                                                      "optional" : 1,
+                                                      "type" : "number"
+                                                   }
+                                                },
+                                                "type" : "object"
+                                             },
+                                             "type" : "array"
+                                          },
+                                          "errors" : {
+                                             "description" : "Information about the errors on the zpool.",
+                                             "type" : "string"
+                                          },
+                                          "name" : {
+                                             "description" : "The name of the zpool.",
+                                             "type" : "string"
+                                          },
+                                          "scan" : {
+                                             "description" : "Information about the last/current scrub.",
+                                             "type" : "string"
+                                          },
+                                          "state" : {
+                                             "description" : "The state of the zpool.",
+                                             "type" : "string"
+                                          },
+                                          "status" : {
+                                             "description" : "Information about the state of the zpool.",
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          }
+                                       },
+                                       "type" : "object"
                                     }
                                  }
                               },
                               "leaf" : 1,
-                              "path" : "/nodes/{node}/storage/{storage}/upload",
-                              "text" : "upload"
+                              "path" : "/nodes/{node}/disks/zfs/{name}",
+                              "text" : "{name}"
                            }
                         ],
                         "info" : {
                            "GET" : {
-                              "description" : "",
+                              "description" : "List Zpools.",
                               "method" : "GET",
-                              "name" : "diridx",
+                              "name" : "index",
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
@@ -21690,126 +29756,156 @@ var pveapi = [
                                        "format" : "pve-node",
                                        "type" : "string",
                                        "typetext" : "<string>"
-                                    },
-                                    "storage" : {
-                                       "description" : "The storage identifier.",
-                                       "format" : "pve-storage-id",
-                                       "type" : "string",
-                                       "typetext" : "<string>"
                                     }
                                  }
                               },
                               "permissions" : {
                                  "check" : [
                                     "perm",
-                                    "/storage/{storage}",
+                                    "/",
                                     [
-                                       "Datastore.Audit",
-                                       "Datastore.AllocateSpace"
+                                       "Sys.Audit",
+                                       "Datastore.Audit"
                                     ],
                                     "any",
                                     1
                                  ]
                               },
+                              "protected" : 1,
+                              "proxyto" : "node",
                               "returns" : {
                                  "items" : {
                                     "properties" : {
-                                       "subdir" : {
+                                       "alloc" : {
+                                          "description" : "",
+                                          "type" : "integer"
+                                       },
+                                       "dedup" : {
+                                          "description" : "",
+                                          "type" : "number"
+                                       },
+                                       "frag" : {
+                                          "description" : "",
+                                          "type" : "integer"
+                                       },
+                                       "free" : {
+                                          "description" : "",
+                                          "type" : "integer"
+                                       },
+                                       "health" : {
+                                          "description" : "",
+                                          "type" : "string"
+                                       },
+                                       "name" : {
+                                          "description" : "",
                                           "type" : "string"
+                                       },
+                                       "size" : {
+                                          "description" : "",
+                                          "type" : "integer"
                                        }
                                     },
                                     "type" : "object"
                                  },
                                  "links" : [
                                     {
-                                       "href" : "{subdir}",
+                                       "href" : "{name}",
                                        "rel" : "child"
                                     }
                                  ],
                                  "type" : "array"
                               }
-                           }
-                        },
-                        "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>"
-                              },
-                              "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"
+                           },
+                           "POST" : {
+                              "description" : "Create a ZFS pool.",
+                              "method" : "POST",
+                              "name" : "create",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "add_storage" : {
+                                       "default" : 0,
+                                       "description" : "Configure storage using the zpool.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "ashift" : {
+                                       "default" : 12,
+                                       "description" : "Pool sector size exponent.",
+                                       "maximum" : 16,
+                                       "minimum" : 9,
+                                       "optional" : 1,
+                                       "type" : "integer",
+                                       "typetext" : "<integer> (9 - 16)"
+                                    },
+                                    "compression" : {
+                                       "default" : "on",
+                                       "description" : "The compression algorithm to use.",
+                                       "enum" : [
+                                          "on",
+                                          "off",
+                                          "gzip",
+                                          "lz4",
+                                          "lzjb",
+                                          "zle"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
+                                    },
+                                    "devices" : {
+                                       "description" : "The block devices you want to create the zpool on.",
+                                       "format" : "string-list",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "name" : {
+                                       "description" : "The storage identifier.",
+                                       "format" : "pve-storage-id",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
+                                    "raidlevel" : {
+                                       "description" : "The RAID level to use.",
+                                       "enum" : [
+                                          "single",
+                                          "mirror",
+                                          "raid10",
+                                          "raidz",
+                                          "raidz2",
+                                          "raidz3"
+                                       ],
+                                       "type" : "string"
+                                    }
                                  }
                               },
-                              "type" : "object"
-                           },
-                           "links" : [
-                              {
-                                 "href" : "{storage}",
-                                 "rel" : "child"
-                              }
-                           ],
-                           "type" : "array"
-                        }
-                     }
-                  },
-                  "leaf" : 0,
-                  "path" : "/nodes/{node}/storage",
-                  "text" : "storage"
-               },
-               {
-                  "children" : [
+                              "permissions" : {
+                                 "check" : [
+                                    "perm",
+                                    "/",
+                                    [
+                                       "Sys.Modify",
+                                       "Datastore.Allocate"
+                                    ]
+                                 ]
+                              },
+                              "protected" : 1,
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "type" : "string"
+                              }
+                           }
+                        },
+                        "leaf" : 0,
+                        "path" : "/nodes/{node}/disks/zfs",
+                        "text" : "zfs"
+                     },
                      {
                         "info" : {
                            "GET" : {
@@ -21824,6 +29920,22 @@ var pveapi = [
                                        "format" : "pve-node",
                                        "type" : "string",
                                        "typetext" : "<string>"
+                                    },
+                                    "skipsmart" : {
+                                       "default" : 0,
+                                       "description" : "Skip smart checks.",
+                                       "optional" : 1,
+                                       "type" : "boolean",
+                                       "typetext" : "<boolean>"
+                                    },
+                                    "type" : {
+                                       "description" : "Only list specific types of disks.",
+                                       "enum" : [
+                                          "unused",
+                                          "journal_disks"
+                                       ],
+                                       "optional" : 1,
+                                       "type" : "string"
                                     }
                                  }
                               },
@@ -22350,8 +30462,54 @@ var pveapi = [
                                     "proxyto" : "node",
                                     "returns" : {
                                        "properties" : {
+                                          "action" : {
+                                             "type" : "string"
+                                          },
+                                          "comment" : {
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "dest" : {
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "dport" : {
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "enable" : {
+                                             "optional" : 1,
+                                             "type" : "integer"
+                                          },
+                                          "iface" : {
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "ipversion" : {
+                                             "optional" : 1,
+                                             "type" : "integer"
+                                          },
+                                          "macro" : {
+                                             "optional" : 1,
+                                             "type" : "integer"
+                                          },
                                           "pos" : {
                                              "type" : "integer"
+                                          },
+                                          "proto" : {
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "source" : {
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "sport" : {
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "type" : {
+                                             "type" : "string"
                                           }
                                        },
                                        "type" : "object"
@@ -23093,7 +31251,6 @@ var pveapi = [
                                     "protected" : 1,
                                     "proxyto" : "node",
                                     "returns" : {
-                                       "properties" : {},
                                        "type" : "object"
                                     }
                                  }
@@ -23174,11 +31331,207 @@ var pveapi = [
                                     "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"
+                                          "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>"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/storage",
+                                          [
+                                             "Datastore.Allocate"
+                                          ]
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "string"
+                                    }
+                                 }
+                              },
+                              "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" : {
+                                    "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>"
+                                    }
+                                 }
+                              },
+                              "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>"
+                                          }
+                                       }
+                                    },
+                                    "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>"
+                                          }
+                                       }
+                                    },
+                                    "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.",
@@ -23188,15 +31541,6 @@ var pveapi = [
                                           }
                                        }
                                     },
-                                    "permissions" : {
-                                       "check" : [
-                                          "perm",
-                                          "/storage",
-                                          [
-                                             "Datastore.Allocate"
-                                          ]
-                                       ]
-                                    },
                                     "protected" : 1,
                                     "proxyto" : "node",
                                     "returns" : {
@@ -23205,24 +31549,18 @@ var pveapi = [
                                  }
                               },
                               "leaf" : 1,
-                              "path" : "/nodes/{node}/replication/{id}/schedule_now",
-                              "text" : "schedule_now"
+                              "path" : "/nodes/{node}/certificates/acme/certificate",
+                              "text" : "certificate"
                            }
                         ],
                         "info" : {
                            "GET" : {
-                              "description" : "Directory index.",
+                              "description" : "ACME index.",
                               "method" : "GET",
                               "name" : "index",
                               "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",
@@ -23250,25 +31588,341 @@ var pveapi = [
                            }
                         },
                         "leaf" : 0,
-                        "path" : "/nodes/{node}/replication/{id}",
-                        "text" : "{id}"
+                        "path" : "/nodes/{node}/certificates/acme",
+                        "text" : "acme"
+                     },
+                     {
+                        "info" : {
+                           "GET" : {
+                              "description" : "Get information about node's certificates.",
+                              "method" : "GET",
+                              "name" : "info",
+                              "parameters" : {
+                                 "additionalProperties" : 0,
+                                 "properties" : {
+                                    "node" : {
+                                       "description" : "The cluster node name.",
+                                       "format" : "pve-node",
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    }
+                                 }
+                              },
+                              "permissions" : {
+                                 "user" : "all"
+                              },
+                              "proxyto" : "node",
+                              "returns" : {
+                                 "items" : {
+                                    "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,
+                                          "renderer" : "timestamp",
+                                          "type" : "integer"
+                                       },
+                                       "notbefore" : {
+                                          "description" : "Certificate's notBefore timestamp (UNIX epoch).",
+                                          "optional" : 1,
+                                          "renderer" : "timestamp",
+                                          "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,
+                                          "renderer" : "yaml",
+                                          "type" : "array"
+                                       },
+                                       "subject" : {
+                                          "description" : "Certificate subject name.",
+                                          "optional" : 1,
+                                          "type" : "string"
+                                       }
+                                    },
+                                    "type" : "object"
+                                 },
+                                 "type" : "array"
+                              }
+                           }
+                        },
+                        "leaf" : 1,
+                        "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,
+                                       "renderer" : "timestamp",
+                                       "type" : "integer"
+                                    },
+                                    "notbefore" : {
+                                       "description" : "Certificate's notBefore timestamp (UNIX epoch).",
+                                       "optional" : 1,
+                                       "renderer" : "timestamp",
+                                       "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,
+                                       "renderer" : "yaml",
+                                       "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" : "List status of all replication jobs on this node.",
+                        "description" : "Node index.",
                         "method" : "GET",
-                        "name" : "status",
+                        "name" : "index",
                         "parameters" : {
                            "additionalProperties" : 0,
                            "properties" : {
-                              "guest" : {
-                                 "description" : "Only list replication jobs for this guest.",
-                                 "format" : "pve-vmid",
-                                 "minimum" : 1,
+                              "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}/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" : {
+                           "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" : "integer",
-                                 "typetext" : "<integer> (1 - N)"
+                                 "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.",
@@ -23279,33 +31933,24 @@ var pveapi = [
                            }
                         },
                         "permissions" : {
-                           "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
-                           "user" : "all"
+                           "check" : [
+                              "perm",
+                              "/",
+                              [
+                                 "Sys.Modify"
+                              ]
+                           ]
                         },
                         "protected" : 1,
                         "proxyto" : "node",
                         "returns" : {
-                           "items" : {
-                              "properties" : {
-                                 "id" : {
-                                    "type" : "string"
-                                 }
-                              },
-                              "type" : "object"
-                           },
-                           "links" : [
-                              {
-                                 "href" : "{id}",
-                                 "rel" : "child"
-                              }
-                           ],
-                           "type" : "array"
+                           "type" : "null"
                         }
                      }
                   },
-                  "leaf" : 0,
-                  "path" : "/nodes/{node}/replication",
-                  "text" : "replication"
+                  "leaf" : 1,
+                  "path" : "/nodes/{node}/config",
+                  "text" : "config"
                },
                {
                   "info" : {
@@ -23376,7 +32021,6 @@ var pveapi = [
                         },
                         "proxyto" : "node",
                         "returns" : {
-                           "properties" : {},
                            "type" : "object"
                         }
                      },
@@ -23497,7 +32141,6 @@ var pveapi = [
                         "protected" : 1,
                         "proxyto" : "node",
                         "returns" : {
-                           "properties" : {},
                            "type" : "array"
                         }
                      }
@@ -23654,6 +32297,13 @@ var pveapi = [
                                  "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.",
                                  "optional" : 1,
@@ -23790,6 +32440,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" : {
@@ -23860,7 +32568,7 @@ var pveapi = [
                                  "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).",
+                                 "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 reasonable 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",
@@ -24062,11 +32770,13 @@ var pveapi = [
                               "localtime" : {
                                  "description" : "Seconds since 1970-01-01 00:00:00 (local time)",
                                  "minimum" : 1297163644,
+                                 "renderer" : "timestamp_gmt",
                                  "type" : "integer"
                               },
                               "time" : {
                                  "description" : "Seconds since 1970-01-01 00:00:00 UTC.",
                                  "minimum" : 1297163644,
+                                 "renderer" : "timestamp",
                                  "type" : "integer"
                               },
                               "timezone" : {
@@ -24380,6 +33090,97 @@ var pveapi = [
                   "leaf" : 1,
                   "path" : "/nodes/{node}/migrateall",
                   "text" : "migrateall"
+               },
+               {
+                  "info" : {
+                     "GET" : {
+                        "description" : "Get the content of /etc/hosts.",
+                        "method" : "GET",
+                        "name" : "get_etc_hosts",
+                        "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" : {
+                           "properties" : {
+                              "data" : {
+                                 "description" : "The content of /etc/hosts.",
+                                 "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"
+                              }
+                           },
+                           "type" : "object"
+                        }
+                     },
+                     "POST" : {
+                        "description" : "Write /etc/hosts.",
+                        "method" : "POST",
+                        "name" : "write_etc_hosts",
+                        "parameters" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "data" : {
+                                 "description" : "The target content of /etc/hosts.",
+                                 "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" : {
+                           "check" : [
+                              "perm",
+                              "/nodes/{node}",
+                              [
+                                 "Sys.Modify"
+                              ]
+                           ]
+                        },
+                        "protected" : 1,
+                        "proxyto" : "node",
+                        "returns" : {
+                           "type" : "null"
+                        }
+                     }
+                  },
+                  "leaf" : 1,
+                  "path" : "/nodes/{node}/hosts",
+                  "text" : "hosts"
                }
             ],
             "info" : {
@@ -24434,7 +33235,61 @@ var pveapi = [
             },
             "returns" : {
                "items" : {
-                  "properties" : {},
+                  "properties" : {
+                     "cpu" : {
+                        "description" : "CPU utilization.",
+                        "optional" : 1,
+                        "renderer" : "fraction_as_percentage",
+                        "type" : "number"
+                     },
+                     "level" : {
+                        "description" : "Support level.",
+                        "optional" : 1,
+                        "type" : "string"
+                     },
+                     "maxcpu" : {
+                        "description" : "Number of available CPUs.",
+                        "optional" : 1,
+                        "type" : "integer"
+                     },
+                     "maxmem" : {
+                        "description" : "Number of available memory in bytes.",
+                        "optional" : 1,
+                        "renderer" : "bytes",
+                        "type" : "integer"
+                     },
+                     "mem" : {
+                        "description" : "Used memory in bytes.",
+                        "optional" : 1,
+                        "renderer" : "bytes",
+                        "type" : "string"
+                     },
+                     "node" : {
+                        "description" : "The cluster node name.",
+                        "format" : "pve-node",
+                        "type" : "string"
+                     },
+                     "ssl_fingerprint" : {
+                        "description" : "The SSL fingerprint for the node certificate.",
+                        "optional" : 1,
+                        "type" : "string"
+                     },
+                     "status" : {
+                        "description" : "Node status.",
+                        "enum" : [
+                           "unknown",
+                           "online",
+                           "offline"
+                        ],
+                        "type" : "string"
+                     },
+                     "uptime" : {
+                        "description" : "Node uptime in seconds.",
+                        "optional" : 1,
+                        "renderer" : "duration",
+                        "type" : "integer"
+                     }
+                  },
                   "type" : "object"
                },
                "links" : [
@@ -24508,7 +33363,9 @@ var pveapi = [
                         ]
                      ]
                   },
-                  "returns" : {}
+                  "returns" : {
+                     "type" : "object"
+                  }
                },
                "PUT" : {
                   "description" : "Update storage configuration.",
@@ -24523,6 +33380,49 @@ var pveapi = [
                            "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,
@@ -24563,6 +33463,13 @@ var pveapi = [
                            "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",
@@ -24570,19 +33477,31 @@ var pveapi = [
                            "type" : "string",
                            "typetext" : "<string>"
                         },
-                        "is_mountpoint" : {
-                           "default" : "no",
-                           "description" : "Assume the directory is an externally managed mountpoint. If nothing is mounted the storage will be considered offline.",
+                        "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.",
+                           "description" : "Always access rbd through krbd kernel module.",
                            "optional" : 1,
                            "type" : "boolean",
                            "typetext" : "<boolean>"
                         },
+                        "lio_tpg" : {
+                           "description" : "target portal group for Linux LIO targets",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
                         "maxfiles" : {
                            "description" : "Maximal number of backup files per VM. Use '0' for unlimted.",
                            "minimum" : 0,
@@ -24597,6 +33516,13 @@ var pveapi = [
                            "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",
@@ -24617,6 +33543,13 @@ var pveapi = [
                            "type" : "string",
                            "typetext" : "<string>"
                         },
+                        "password" : {
+                           "description" : "Password for CIFS share.",
+                           "maxLength" : 256,
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "<string>"
+                        },
                         "pool" : {
                            "description" : "Pool.",
                            "optional" : 1,
@@ -24665,6 +33598,16 @@ var pveapi = [
                            "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,
@@ -24677,6 +33620,13 @@ var pveapi = [
                            "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,
@@ -24733,8 +33683,11 @@ var pveapi = [
                   "type" : {
                      "description" : "Only list storage of specific type",
                      "enum" : [
+                        "cephfs",
+                        "cifs",
                         "dir",
                         "drbd",
+                        "fake",
                         "glusterfs",
                         "iscsi",
                         "iscsidirect",
@@ -24799,6 +33752,49 @@ var pveapi = [
                      "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,
@@ -24824,6 +33820,13 @@ var pveapi = [
                      "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",
@@ -24838,13 +33841,19 @@ var pveapi = [
                      "type" : "string",
                      "typetext" : "<string>"
                   },
-                  "is_mountpoint" : {
-                     "default" : "no",
-                     "description" : "Assume the directory is an externally managed mountpoint. If nothing is mounted the storage will be considered offline.",
+                  "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,
@@ -24852,11 +33861,17 @@ var pveapi = [
                      "typetext" : "<string>"
                   },
                   "krbd" : {
-                     "description" : "Access rbd through krbd kernel module.",
+                     "description" : "Always access rbd through krbd kernel module.",
                      "optional" : 1,
                      "type" : "boolean",
                      "typetext" : "<boolean>"
                   },
+                  "lio_tpg" : {
+                     "description" : "target portal group for Linux LIO targets",
+                     "optional" : 1,
+                     "type" : "string",
+                     "typetext" : "<string>"
+                  },
                   "maxfiles" : {
                      "description" : "Maximal number of backup files per VM. Use '0' for unlimted.",
                      "minimum" : 0,
@@ -24872,7 +33887,7 @@ var pveapi = [
                      "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",
@@ -24898,6 +33913,13 @@ var pveapi = [
                      "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",
@@ -24954,12 +33976,28 @@ var pveapi = [
                      "type" : "string",
                      "typetext" : "<string>"
                   },
+                  "share" : {
+                     "description" : "CIFS share.",
+                     "optional" : 1,
+                     "type" : "string",
+                     "typetext" : "<string>"
+                  },
                   "shared" : {
                      "description" : "Mark storage as shared.",
                      "optional" : 1,
                      "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,
@@ -24972,6 +34010,13 @@ var pveapi = [
                      "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,
@@ -25004,8 +34049,11 @@ var pveapi = [
                   "type" : {
                      "description" : "Storage type.",
                      "enum" : [
+                        "cephfs",
+                        "cifs",
                         "dir",
                         "drbd",
+                        "fake",
                         "glusterfs",
                         "iscsi",
                         "iscsidirect",
@@ -25135,13 +34183,19 @@ var pveapi = [
                                  "type" : "string"
                               },
                               "email" : {
+                                 "format" : "email-opt",
                                  "optional" : 1,
                                  "type" : "string"
                               },
                               "enable" : {
+                                 "default" : 1,
+                                 "description" : "Enable the account (default). You can set this to '0' to disable the account",
+                                 "optional" : 1,
                                  "type" : "boolean"
                               },
                               "expire" : {
+                                 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
+                                 "minimum" : 0,
                                  "optional" : 1,
                                  "type" : "integer"
                               },
@@ -25153,6 +34207,7 @@ var pveapi = [
                                  "type" : "array"
                               },
                               "keys" : {
+                                 "description" : "Keys for two factor auth (yubico).",
                                  "optional" : 1,
                                  "type" : "string"
                               },
@@ -25160,7 +34215,8 @@ var pveapi = [
                                  "optional" : 1,
                                  "type" : "string"
                               }
-                           }
+                           },
+                           "type" : "object"
                         }
                      },
                      "PUT" : {
@@ -25188,7 +34244,8 @@ var pveapi = [
                                  "typetext" : "<string>"
                               },
                               "enable" : {
-                                 "description" : "Enable/disable the account.",
+                                 "default" : 1,
+                                 "description" : "Enable the account (default). You can set this to '0' to disable the account",
                                  "optional" : 1,
                                  "type" : "boolean",
                                  "typetext" : "<boolean>"
@@ -25275,7 +34332,44 @@ var pveapi = [
                   "returns" : {
                      "items" : {
                         "properties" : {
+                           "comment" : {
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "email" : {
+                              "format" : "email-opt",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "enable" : {
+                              "default" : 1,
+                              "description" : "Enable the account (default). You can set this to '0' to disable the account",
+                              "optional" : 1,
+                              "type" : "boolean"
+                           },
+                           "expire" : {
+                              "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
+                              "minimum" : 0,
+                              "optional" : 1,
+                              "type" : "integer"
+                           },
+                           "firstname" : {
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "keys" : {
+                              "description" : "Keys for two factor auth (yubico).",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
+                           "lastname" : {
+                              "optional" : 1,
+                              "type" : "string"
+                           },
                            "userid" : {
+                              "description" : "User ID",
+                              "format" : "pve-userid",
+                              "maxLength" : 64,
                               "type" : "string"
                            }
                         },
@@ -25310,7 +34404,7 @@ var pveapi = [
                         },
                         "enable" : {
                            "default" : 1,
-                           "description" : "Enable the account (default). You can set this to '0' to disable the accout",
+                           "description" : "Enable the account (default). You can set this to '0' to disable the account",
                            "optional" : 1,
                            "type" : "boolean",
                            "typetext" : "<boolean>"
@@ -25456,6 +34550,9 @@ var pveapi = [
                               },
                               "members" : {
                                  "items" : {
+                                    "description" : "User ID",
+                                    "format" : "pve-userid",
+                                    "maxLength" : 64,
                                     "type" : "string"
                                  },
                                  "type" : "array"
@@ -25518,7 +34615,12 @@ var pveapi = [
                   "returns" : {
                      "items" : {
                         "properties" : {
+                           "comment" : {
+                              "optional" : 1,
+                              "type" : "string"
+                           },
                            "groupid" : {
+                              "format" : "pve-groupid",
                               "type" : "string"
                            }
                         },
@@ -25620,10 +34722,143 @@ var pveapi = [
                         "permissions" : {
                            "user" : "all"
                         },
-                        "returns" : {}
+                        "returns" : {
+                           "additionalProperties" : 0,
+                           "properties" : {
+                              "Datastore.Allocate" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "Datastore.AllocateSpace" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "Datastore.AllocateTemplate" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "Datastore.Audit" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "Group.Allocate" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "Permissions.Modify" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "Pool.Allocate" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "Realm.Allocate" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "Realm.AllocateUser" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "Sys.Audit" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "Sys.Console" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "Sys.Modify" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "Sys.PowerMgmt" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "Sys.Syslog" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "User.Modify" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "VM.Allocate" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "VM.Audit" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "VM.Backup" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "VM.Clone" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "VM.Config.CDROM" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "VM.Config.CPU" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "VM.Config.Disk" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "VM.Config.HWType" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "VM.Config.Memory" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "VM.Config.Network" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "VM.Config.Options" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "VM.Console" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "VM.Migrate" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "VM.Monitor" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "VM.PowerMgmt" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "VM.Snapshot" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              },
+                              "VM.Snapshot.Rollback" : {
+                                 "optional" : 1,
+                                 "type" : "boolean"
+                              }
+                           },
+                           "type" : "object"
+                        }
                      },
                      "PUT" : {
-                        "description" : "Create new role.",
+                        "description" : "Update an existing role.",
                         "method" : "PUT",
                         "name" : "update_role",
                         "parameters" : {
@@ -25637,6 +34872,7 @@ var pveapi = [
                               },
                               "privs" : {
                                  "format" : "pve-priv-list",
+                                 "optional" : 1,
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
@@ -25681,8 +34917,19 @@ var pveapi = [
                   "returns" : {
                      "items" : {
                         "properties" : {
+                           "privs" : {
+                              "format" : "pve-priv-list",
+                              "optional" : 1,
+                              "type" : "string"
+                           },
                            "roleid" : {
+                              "format" : "pve-roleid",
                               "type" : "string"
+                           },
+                           "special" : {
+                              "default" : 0,
+                              "optional" : 1,
+                              "type" : "boolean"
                            }
                         },
                         "type" : "object"
@@ -25753,9 +35000,13 @@ var pveapi = [
                         "additionalProperties" : 0,
                         "properties" : {
                            "path" : {
+                              "description" : "Access control path",
                               "type" : "string"
                            },
                            "propagate" : {
+                              "default" : 1,
+                              "description" : "Allow to propagate (inherit) permissions.",
+                              "optional" : 1,
                               "type" : "boolean"
                            },
                            "roleid" : {
@@ -25925,6 +35176,25 @@ 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,
@@ -26011,6 +35281,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"
@@ -26100,6 +35377,25 @@ 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,
@@ -26181,6 +35477,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"
@@ -26207,7 +35510,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" : {
@@ -26282,6 +35585,10 @@ var pveapi = [
                            "optional" : 1,
                            "type" : "string"
                         },
+                        "clustername" : {
+                           "optional" : 1,
+                           "type" : "string"
+                        },
                         "ticket" : {
                            "optional" : 1,
                            "type" : "string"
@@ -26303,7 +35610,7 @@ var pveapi = [
                "PUT" : {
                   "description" : "Change user password.",
                   "method" : "PUT",
-                  "name" : "change_passsword",
+                  "name" : "change_password",
                   "parameters" : {
                      "additionalProperties" : 0,
                      "properties" : {